5.2Java 中的静态内部类:静态内部类是 static 修饰的内部类
特点:(1)、 静态内部类不能直接访问外部类的非静态成员,但可以通过 new 外部类().成员的方式访问
(2)、 如果外部类的静态成员与内部类的成员名称相同,可通过“类名.静态成员”访问外部类的静态成员;如果外部类的静态成员与内部类的成员名称不相同,则可通过“成员名”直接调用外部类的静态成员
(3)、 创建静态内部类的对象时,不需要外部类的对象,可以直接创建内部类 对象名= new 内部类();
例子:
5.3Java 中的方法内部类:方法内部类就是内部类定义在外部类的方法中,方法内部类只在该方法的内部可见,即只在该方法内可以使用。
一定要注意哦:由于方法内部类不能在外部类的方法以外的地方使用,因此方法内部类不能使用访问控制符和 static 修饰符。
例子:
三.继承
1.特点:java中的继承是单继承, 一个类只能有一个父类。
2.继承的好处:(1)子类拥有父类所有的属性和方法(不允许用private修饰)
(2)实现代码的复用
3.方法的重写:子类重写继承父类的方法。规则:返回值类型,方法名,参数类型及个数都要与
父类继承的方法相同。
4.继承的初始化顺序:(1)先初始化父类再初始化子类
(2)先执行初始化对象中的属性,再执行构造方法中的初始化
5.final修饰属性:则该类的属性不会进行隐式的初始化(类的初始化属性必须有值)或在构造方法
中进行初始化(二者选其一)。如果final修饰了属性,则不能在其它位置修改属性的值。
6.super的应用:
(1)如果子类的构造方法中没有显示调用父类的构造方法,则系统默认调用父类无参的构造方法。
(2)子类调用父类的构造方法必须放在子类构造方法的第一行。
(3)如果子类构造方法中既没有显示调用父类的构造方法,而父类又没有无参的构造方法,则编译出错。
7.Object类中equals()方法:比较的是对象的应用是否指向同一块内存地址。只要new一个对象,就为对象开辟一块儿内存区域。equals相当于“==“。
四.多态:对象的多种形态
1.引用的多态
(1)父类的引用可以指向本类的对象
(2)父类的引用可以指向子类的对象
例如:Dog是Animal的子类
Animal obj1=new Animal();(1)
Animal obj2=new Dog();(2)
2.方法的多态
(1)创建本类对象时,调用的是本类的方法
(2)创建子类对象时,调用的对象为子类继承的方法或者是子类重写的方法
注意:如果子类有自己的方法,是不能通过父类引用来调用子类的方法
例如:子类中有自己写的Watch()方法,则不能obj2.Watch();这样是错的
3.引用类型的转换:
(1)向上类型的转换(自动类型转换),是小类型到大类型的转换。
(2)向下类型的转换(强制类型转换),是大类型到小类型的转换。这种转换存在风险,可以用instanceof运算符来解决引用对象的类型,避免类型转换的安全性问题。
4.接口,java中的类是单继承的,而接口是可以多继承的。接口中定义的变量都是常量。如果要继承父类,继承父类必须在实现接口之前。
5.UML中“-”表示属性是私有的,“+“表示属性是共有的
6.两个类必须是继承关系,才能用多态
网友评论