Java面向对象知识点

时间:2023-07-29 19:50:32

对象:一切客观存在的事物都是对象
语法部分:
类的概念:1.类是对象的抽象
2.类是客观事物在人脑中的主观反应
3.类是对象的模板
类的设计:
属性:定义位置:类以内,方法以外
实例变量:1 有默认值,
2 至少在本类的内部有效,
3 可以和局部变量重复命名,局部变量优先
方法:功能 去掉static
声明部分:修饰符 返回值类型 方法名称 参数表 异常
实现部分 {}方法

构造方法:特殊方法
a.构造方法必须和类名相同
b.没有返回值类型组成部分,修饰符 方法名称 参数表 异常
c.不能手动调用,创建对象时,调用构造方法

作用:有参的构造方法,给属性赋值

注意:如果没有写出任何构造方法,默认的是公开的无参的构造方法
如果是写出有参数的构造方法,系统不再默认无参的构造方法

创建对象:
语法:new 构造方法(构造参数);
Student student1 = new Student();//调用无参数的构造方法
Student student2 = new Student(1, "yy");//调用有参数的构造方法
this关键字:
a.语法比较严格,
this(参数);调用本类的构造方法,必须在构造方法的第一句
注意:不要递归调用构造方法

b.类的内部,调用实例变量时加 this

当局部变量和实例变量重复命名时,局部变量优先,
如果是想使用实例变量加 this.属性名
方法的重载(overLoad)
作用:屏蔽了使用者使用的差异,调用方法时更加灵活

语法要求:
1.方法名称相同
2.参数列表不同(类型不同,个数,顺序);
3.返回值不要求

面向对象的三大特性:
1、封装
代码实现:对属性私有,提供公开的set/get方法
2、继承
关键字: extends
如:A extends B ---> B是A的父类
①私有的方法不可以继承
②构造方法不可以继承
关键字: super
①super.属性名、方法名表示访问父类的属性,或者调用父类的方法
②super(),传入实参代指调用父类的构造方法,必须放在构造方法的第一行
在构造方法中如果没有this,也没有super,那么系统会默认添加一个
方法的覆盖:子类继承父类的方法中有特殊的实现
语法要求:1、函数名必须相同,参数表一样,返回值类型一样(声明一样)
2、修饰符:和父类的相同或者更宽
修饰符的访问权限由窄到宽:
private----> default--->protected--->public
从一般到特殊的关系:父类是子类共性的抽象
instanceof 表示从属关系,是...的一种
3、多态
①父类的引用指向子类的对象
Animal a = new Dog();
②编译时多态:引用只能调用其引用下的方法或者访问引用下的属性
③运行时多态:运行的时候会根据实际类型调用其覆盖后的方法
多态的实质:方法的重载和方法的覆盖
①多态用在返回值上
public A m(){} 返回值是A类或者其子类
多态用在参数表中
public 返回值类型 m(A a){} 参数表可以是A类,或者是A的子类