面向对象笔记总结

常用字体 Courier New
1.String[ ] a=new String [ ] {"1","s","d" }; //注意后面的中括号不要写元素个数3,否则错
2.String[ ] b=new String[3];
for(int i=0;i<b.length;i++){
System.out.println(b[i].equals("aa")); //报错,空指针异常,因为b里面的元素为空,调用方法就是空指针异常
}
3 对于String 引用型 ==比较地址,equals 比较内容。

4 封装:保护属性,get set ;公用代码封装到一个工具类
5 重载: 方法名相同;方法的参数个数不同或参数类型不同;方法的返回类型,修饰符可以相同,可以不同。
6 方法:: return 只能返回一次,不能写在循环里,遇到return,方法调用结束;方法不能嵌套
7 方法的重载和覆盖(重写)是Java中体现多态的直接方式
8 非静态方法可以直接访问静态和非静态属性;
静态方法如main 只可以访问静态属性,访问非静态用实例.
访问静态方法不能使用this;静态方法不能被非静态方法覆盖
9 重写:需要有继承关系,子类重写父类的方法
  1.方法名必须相同
  2.参数列表必须相同
  3.修饰符,范围可以扩大,但不能缩小,public >protected>Default>private
  4.抛出的异常,范围可以缩小,但不能扩大
重写,子类的方法和父类一样,方法体不同

为什么需要重写?
  1.父类的功能子类不一定需要,或者不一定满足

10.抽象类 (约束,单继承)
  1.抽象类不能new ,子类必须实现父类的所有抽象方法,除非这个子类也是抽象类
  2.抽象类可以有写普通的方法,含有抽象方法的类必须是抽象类
  3.抽象类有构造方法吗?虽然抽象类不能被实例化,但可以有构造函数。由于抽象类的构造函数在实例化派生类之前发生,
所以,可以在这个阶段初始化抽象类字段或执行其它与子类相关的代码。
存在的意义:提高开发效率
11.接口,只有规范(可以实现多个接口)(接口的方法和变量都默认是public)
  1.接口使用interface关键字来定义,不是class
  2.接口中定义的变量都是公共!!!静态的最终变量,访问形式:接口名/类名/对象名.变量名
  3.接口中没有构造函数,都是抽象方法,只提供方法定义。(jdk1.8后可以有一个方法有方法体,default修饰)
*** 4.接口不能继承其他类,可以同时继承多个接口。
接口不是类分级结构的一部分,没有联系的类可以实现相同的接口。

12.静态修饰符:修饰成员方法,成员变量,,不能修饰局部变量!!

13.对象初始化过程:
  1.从顶级父类开始加载,每个类加载后执行static代码
  2.从顶级父类构造方法开始执行,如果某个类有非静态初始化代码块,先执行这个非静态代码块然后再执行这个构造方法


猜你喜欢

转载自www.cnblogs.com/codezxy/p/12968716.html