文章目录
1. 方法参数及返回值类型
特点:
(1)当一个方法的形参或者返回值类型要一个类类型时,就传一个该类的对象。
(2)当一个方法的形参或者返回值类型要一个抽象类类型时,就传一个继承该抽象类的子类对象。
(3)当一个方法的形参或者返回值类型要一个接口类型时,就传一个实现该接口的子类对象。
- 实例
2. 修饰符总结
2.1 修饰类
(1)public :默认修饰符,一个java的源文件中只能有一个被public修饰的类,且此类名与文件名相同。
(2)final:被修饰的类不能被继承。
(3)abstract:可以有构造方法,但不能实例化,只能由其子类进行实例化。抽象类的子类要么是抽象类,要么重写父类中的所有抽象方法。
2.2 修饰成员变量
(1)private:被修饰的成员只能在本类中访问,需提供对应的getXX()和setXX()方法。
(2)static :被修饰的成员变量属于类,被类中的所有对象享用。
(3)final :被修饰的变量为常量,不能重新赋值。
2.3 修饰成员方法
(1)private:被修饰的成员方法只能在本类中访问。
(2)static:被修饰的成员方法可通过类名直接调用。格式:类名.方法名();静态方法只能访问静态成员;静态方法能被继承,不能被重写。
(3)final:被修饰的成员方法能被继承,但不能被重写。
(4)abstract:被修饰的成员方法没有具体的方法体,子类必须重写父类的所有抽象方法来具体实现各自的功能。
2.4 接口的成员
(1)成员变量:只能是静态的常量。默认修饰符:public static final
(2)成员方法:只能是抽象方法。默认修饰符:public abstract
3. 内部类
划分:
内部类分为成员内部类和局部内部类。内部类也会生成.class文件。
特点:
(1)内部类可以访问外部类的所有成员,包括私有的。
(2)外部类若要访问内部类的成员,需要创建内部类对象。格式:外部类类名.内部类类名 对象名=new 外部类类名().new 内部类类名()
(3)内部类如果被private修饰,则无法创建其对象
(4)内部类如果被static 修饰,则外部创建对象的格式发生改变,格式:外部类类名.内部类类名 对象名=new 外部类类名.内部类类名()
(5)当局部内部类去访问外部类的局部变量时,该成员变量必须是final 修饰
一个内部类对象可以访问创建它的外部类对象的内容,内部类如果不是 static 的,那么它可以访问创建它的外部类对象的所有属性;内部类如果是 static 的,即为 nested class,那么它只可以访问创建它的外部类对象的所有 static 属性。
什么时候使用内部类?
如果一个事物里包含着其他事物,其他事物,可以创建一个内部类。
3.1 成员内部类
定义在外部类中的成员位置,与类中的成员变量相似,可通过外部类对象进行访问。
内部类可以使用外部类的成员,包括私有成员。但是外部类要使用内部类的成员,必须建立内部类变量。
3.2 局部内部类
定义:在方法里面有一个内部类。
只有在内部类所属的方法中创建内部类对象,方可访问局部内部类。而测试类中只需要创建外部类对象,然后调用外部类方法即可。
-
实例
-
运行结果
4. 匿名内部类
4.1 定义
是一个继承了某个类或是实现某个接口的子类对象,其本质上是一个对象。
4.2 格式
注意:最后要加分号,表示一个子类对象的建立,必须与父类有继承关系,且匿名内部类只能写在方法中。
- 实例
- 运行结果
4.3 应用
常用于作为参数传递或作为返回值返回