面向对象

1、类与对象

面向对象:

  • 类:就是图纸

    属性:这一类的共同属性
    动作方法:这一类事务共同能执行的功能

  • 对象使用类创建的某一个东西

    对象能干什么,完全于类是如何定义的

  • 写代码
    类要使用class来定义

public class Car {
}

属性:用成员变量来描述,直接写在类中的变量

public class Car {String color; //颜色int speed;//

写在方法里的变量,局部变量

public class Car {String color; //颜色int speed;//速度public static void main(String[] args) {//写在 方法里的变量,局部变量int a = 10;

动作:成员方法,不写static就是成员方法

public class Car {String color; //颜色int speed;//// 动作,成员方法public void run(){System.out.println("车能跑");}
  1. main方法是程序运行的入口
  2. 面向对象里变量被称为引用,java的两种数据类型:1、基本数据类型/2、引用数据类型这里就是Car类,可以由自己定义这个类
  3. 建立一个对象车,通过实例化的c来调用方法动作

2、this关键字

this在调用方法的时候,java会自动把创建的对象,传递给方法,在方法中由this来接收对象,this也就是调用成员变量的属性
this在类的方法中获取对象中的属性信息
this也可以区分成员变量和局部变量,如果局部变量与成员变量有同名的变量,用this 点 来调用成员变量的变量

3、构造方法

在创建对象时,自动调用的方法
语法:
public 类名(传参){
};
注意:
1、构造方法没有返回值
2、我们在new 类名();的时候,自动调用构造方法 类名() 就是构造方法

public class Car {String color; //颜色int speed;//构造方法语法:  public Car( String color,int speed){//传参//设置属性信息this.color = color;this.speed == speed;
}

作用:在创建对象的时候,给对象设置属性信息

4、构造方法重载

5、static静态

static 修饰类中的属性
static的内容会在内容中保留一份,并且供对象修改后也会共享修改内容,
对象中 修改语法:
类名 .属性=“修改内容”
Person.country = “民国”;

static修饰属性
特点:
1、数据共享
2、属于类的,不属于对象
3、优先于对象产生

6、访问权限

1、public 公共点,所以人都可以访问,在包内或别的包都可以访问
2、defaulf 包访问权限。仅限在自己的包里随意访问
3、private 私有的

7、getter和setter

成员变量在使用private来声明时,保护成员变量不被乱赋值时使用 getter和setter
setter:主要是给成员变量赋值,做一定的保护
getter:从成员变量中获取数据

getter和setter自动生成:
空白位置->单机右键->generate自动生成->getter and setter -> 全选 ->ok

getter和setter自动生成


8、 继承

关键字:继承 extends
子类可以拥有父类的所有内容,私有内容除外,私有的内容是不可以继承的
当A属于字母的时候可以生成继承关系
语法:
public class 子类 extends 父类{
}
作用:
简化代码开发

//父类public class Yaoguai{public void eat(){System.out.println("妖怪吃人")} //私有的private void pasi(){System.out.println("妖怪怕死")}
---------------------------------------------
//子类:继承黑熊精属于妖怪
public class Heixiongjing extends Yaoguai{}
---------------------------------------------
//测试
public class Test{public static void main(String [] args){Heixiongjing hei =new Heixiongjing();hei.eat;//子类没有赋值可以调到父类中的方法//hei.pasi  私有的是钓调不到的
}

9、super关键字

1、super代表父类中的内容
2、This 代表自己类中的内容
3、super 或 This 可以区分父类和子类中的重名内容
4、在创建对象时,先创建父类的对象然后再创建子类的对象
5、super可以调用父类中的构造方法,必须写在子类构造方法的第一行,如果父类的构造方法无参数,可以不写,如果有参数的构造,必须写super

要先创建父类构造方法

子类构造方法

super可以调用父类中的构造方法,必须写在子类构造方法的第一行,如果父类的构造方法无参数,可以不写,如果有参数的构造,必须写super;

10、方法的重写

重写:子类对父类中提供的方法进行重新定义
语法:
子类和父类的方法的声明完全一致

 super.方法 这里可以调用父类的方法.
父类方法:
public class Dongwu {public void eat(){System.out.println("父类方法:吃东西");};
}
----------------------------------------------------------
子类方法重写:
public class Cat extends Dongwu {@Overridepublic void eat(){super.eat(); super这里也可以调用父类的方法System.out.println("子类重写;猫吃鱼");}
}
-----------------------------------------------------------
测试:
public class DongwuTest {@Testpublic  void Test(){//创建一个猫调用猫的方法Dongwu cat=new Cat() ;cat.eat();}
}
运行:
父类方法:吃东西//super.调用的父类方法
子类重写;猫吃鱼//子类覆盖的方法

11、多态

同一个对象拥有多种形态
作用:把不同的数据类型进行统一
把子类的对象赋值给父类的变量->向上转型
把父类的变量转化回子类的变量->向下转型必须写强制类型转换(转换之后的数据类型)变量

子类方法
public class Cat extends Dongwu {//子类继承父类的方法@Overridepublic void eat(){System.out.println("子类重写;猫吃鱼");}
}
--------------------------------------------------------
测试:
public class DongwuTest {@Testpublic  void Test(){Dongwu cat=new Cat() ;//把猫当成动物来看,把子类的对象赋值给父类的引用(变量)向上转型cat.eat();

把子类的对象赋值给父类的变量->向上转型
把父类的变量转化回子类的变量->向下转型必须写强制类型转换(转换之后的数据类型)变量

面向对象1---this、构造方法、方法重载,静态,权限、getter和sett、继承、super、方法重写、多态相关推荐

  1. java方法重载编程_学java教程之普通方法重载

    学编程吧学java教程之普通方法重载发布了,欢迎通过xuebiancheng8.com来访问 先来看什么是普通方法重载呢,先来看一个例子 public class Person{ String use ...

  2. java构造方法可以重载吗_Java基础教程之构造器与方法重载

    在方法与数据成员中,我们提到,Java中的对象在创建的时候会初始化(initialization).初始化时,对象的数据成员被赋予初始值.我们可以显式初始化.如果我们没有给数据成员赋予初始值,数据成员 ...

  3. Java中方法签名signature、方法重载以及“两同两小一大”的方法覆盖(方法重写)总结

    1. 方法 1.1 方法 实现了某一功能,代码可以复用 1.2 方法签名 java中每个方法都有一个签名,包含方法名和参数列表(类型.个数以及顺序),只要其中一个不同,方法的签名不同,也就是属于不同的 ...

  4. python类的继承super方法_Python类的继承super相关原理解析

    看了网上许多关于super.mro.C3的介绍感觉没有一份很容易初学者理解的文档,直接看C3算法的话,比较难理解,也没必要,如果掌握一套规律的话,会轻松许多.我将网上这些博主的文章进行一个梳理总结,最 ...

  5. Java:封装的概念,UML类图,构造方法,this关键字,static关键字,方法重载,包package

                     oop三大特性:封装,继承,多态 oop一般指面向对象程序设计(一种计算机编程架构) 一.封装的概念:    将东西包在一起,然后以新的完整形式呈现出来       ...

  6. java 面向对象 重载_Java方法重载

    在同一类中具有多个具有相同名称的方法称为方法重载.类中具有相同名称的方法可以是声明的方法,继承的方法或两者的组合. 重载方法必须具有不同数量的参数,不同类型的参数或两者.方法的返回类型,访问级别和th ...

  7. 面向对象基础——方法重载

    小结 方法重载是指多个方法的方法名相同,但各自的参数不同: 重载方法应该完成类似的功能,参考String的indexOf(): 重载方法返回值类型应该相同. 在一个类中,我们可以定义多个方法.如果有一 ...

  8. Java刷题知识点之方法覆盖(方法重写)和方法重载的区别

    https://www.nowcoder.com/ta/review-java/review?query=&asc=true&order=&page=6 方法重写的原则: 重写 ...

  9. 【Java2】一维数组,家庭收支界面,/属性和方法,方法重载,变量分类,可变参数,包

    文章目录 1.一维数组:int[ ] a = { } 1.1 数组的内存分析(静态):数组名=首地址 1.2 数组的内存分析(动态):元素默认值 1.3 数组相关算法: 1.3.1 找最值:array ...

  10. C#方法重载(overload)方法重写(override)隐藏(new)

    一.重载:同一个作用域内发生(比如一个类里面),定义一系列同名方法,但是方法的参数列表不同.这样才能通过传递不同的参数来决定到底调用哪一个. 值得注意的是,方法重载只有通过参数不同来判断调用哪个方法, ...

最新文章

  1. 用CFree写的Windows SDK 画线程序
  2. Javascript 变量、函数的声明
  3. Android O限制系统全屏进一步遏制手机勒索
  4. 大数据集群问题排查:时间不同步导致hbase regionserver只启动了部分节点的进程
  5. SAP WebClient UI删除搜索条件的后台处理,以及max hit的处理逻辑
  6. 字符流读取,乱码问题
  7. leetcode python3 简单题35. Search Insert Position
  8. [WPF]WPF Data Virtualization和UI Virtualization
  9. Jsrender初体验
  10. [Selenium]怎样验证页面是否有无变化
  11. 电大计算机绘图三锥图形,电大机械制图课程教学辅导
  12. 35KV变电站及10KV供配电系统倒闸操作屏QY-PGD09
  13. 【电子商务法】北邮国际学院大三上期末复习
  14. 怎样打开VOIP与SIP
  15. 为什么计算机无法打开扫描机,为什么打印机无法扫描 打印机无法扫描是什么原因 - 云骑士一键重装系统...
  16. 【面试官一定会问的几题】视觉过关挑战赛 - 附源码
  17. c语言怎么加中文注释,谁能对我的C语言程序作出中文注释
  18. 操作指南和最佳实践:使用 DVWA 了解如何防止网站漏洞
  19. 如图,甲乙两人分别在AB两地同时相向而行,于E处相遇后,甲继续向B地行走,乙则休息了14分钟,在继续向A地行走,甲和乙到达B和A后立即折返,又在E处相遇,已知甲每分钟行走60米,乙每分钟行走80米
  20. py2neo直接调用cypher操作程序【不用每次都要输入cypher操作命令】

热门文章

  1. html5打包在ios上发布,第二篇 HTML5打包发布IOS APP之苹果开发者账号申请流程
  2. 程序员修炼之道—摘录
  3. 日语能力考试N2级核心词汇必备—形容词
  4. iframe target属性
  5. 分享两个漂亮的色彩设计工具
  6. Tornado框架基础
  7. 为什么Java能这么流行
  8. 【每日一题】打卡 3
  9. DataTable 自定义搜索条件 _ 自定义查询参数
  10. C语言中的sin()函数和输入输出