小码哥-任小龙Java笔记-面向对象的全部笔记
Java学习笔记-面向对象
for循环增强 :
依次输出数组中的元素 :
for( nt var : Num)
{
System.out.pr ntln(var);
}
可变参数 :
面向对象编程 :
1.成员变量 :定义在类中 ,方法外面。包括类成员变量 (stat c修饰 )和实例成员变量 (非stat c修饰 )。
成员变量在整个类中都有效 ,而局部变量从定义的位置开始 ,到下一个花括号为止。
2.stat c方法中只能调用stat c成员。
非stat c方法可以访问静态成员也可以访问实例成员。
stat c修饰 被所有对象所共享。
类成员 :直接属于类 ,可以通过类来访问stat c字段和方法。
实例成员 :只属于对象 ,通过对象来访问非stat c字段和方法。
3.package
4.封装
5.权限
6.th s的使用场景
7.构造器重载互调中使用th s
8.继承
父类 :存放共性 (状态和方法 );
子类 :存放自有的特性 ;
作用 :1.解决代码重复问题 ,2.表示出一个体系问题。
9.覆盖方法
@overr de 用来判断紧跟后面的当前子类方法是否覆盖了父类的方法。
9.2.隐藏
方法前面加了stat c就不是覆盖了 ,而是隐藏。
10.子类的初始化
在创建子类对象之前会先创建父类对象。调用子类构造器之前会先调用父类构造器 ,且默认调用父类无参数构造器。
th s (当前对象 )和super (父类对象 )都要作为第一行语句。
stat c不能和th s、super共存 ,因为stat c是类级别的 ,th s和super是对象级别的。
11.多态
1.把子类对象赋给父类变量 ,在运行时会表现出具体子类的特性 (调用相应的之类的方法 )。An mal (父类 )a=new (子
类 )dog ();
2.多态的作用 :把不同的子类对象都当着父类来看 ,可以屏蔽不同之类之间的现实差异 ,从而写出通用代码达到通用编程。
3.多态主要用在接口上。
11.2.多态调用的问题
例如调用dowork ()方法
情况1 :父类没有dowork ()方法 ,子类有dowork ()方法 ,编译报错 ,父类一定要有dowork ()方法才能够编译通过。
情况2 :父类有dowork ()方法 ,子类没有dowork ()方法 ,调用的是父类的dowork ()方法。
情况3 :父类有dowork ()方法 ,子类也有dowork ()方法 ,调用子类的dowork ()方法。
情况4 :父类有stat c修饰的dowork ()方法 ,子类也有stat c修饰的dowork ()方法 ,调用的是父类的dowork ()方法。
现在假如父类没有dowork ()方法 ,而子类有dowork ()方法 ,我想调用子类的dowork ()方法 ,可以先把父类强制转换成子类再调
用子类的dowork ()方法 ,例如 :Dog d= (Dog )a; (a是An mal类 ,d是Dog类 ,//这是把An mal类的a强制转换成Dog类)
12.静态代码块 (使用stat c修饰的初始化代码块 )
类中的stat c修饰的静态代码块在主方法之前就执行 ,且只执行一次。
13.f nal修饰
f nal修饰的类没有子类 ;
f nal修饰的方法只能调用而不能修改 ;
f nal修饰的变量是最终的变量 ,该变量只能赋值一次。
14.单例设计模式
15.包装类型的操作
包装类型的数据比较用equals 不要用==
16.Str ng和基本类型的相互转换
17.接口
类来实现接口。
18.抽象类
接口和抽象类的区别 :
19.内部类
实例内部类就是不加stat c修饰符的内部类 ,静态内部类就是加stat c修饰的内部类。
创建实例内部类前 ,必须存在外部类对象 ,通过外部类对象创建内部类对象。 (当存在内部类对象时 ,一定存在外部类对象 )
实例内部类 :
静态内部类
匿名内部类
20.枚举
枚举的单例模式 ,左边是之前的单例模式设计 ,右边是优于左边的枚举单例模式。