JavaSe学习总结_形式参数与返回值、内部类篇
(一)形式参数和返回值
1 形式参数
1.1 基本数据类型:直接调用
1.2 引用类型:
a 具体类:需要创建该类对象
代码:
运行结果:
b 抽象类:需要创建该抽象类子类对象(抽象类多态)
代码:
运行结果:
c 接口:需要创建该接口子实现类对象(接口多态)
代码:
运行结果:
2 返回值:
2.1 基本类型:用对应基本类型直接接收
2.1 引用类型:
a 具体类:返回的是该具体类的对象
代码:
运行结果:
b 抽象类:返回的是该抽象类的子类的对象
代码:
运行结果:
c 接口:返回的是该接口的子实现类的对象
代码:
运行结果:
(二)内部类
1 定义:在一个类中定义另一个类
2 特点:
a 内部类可以去访问外部类的成员(包括私有)
b 外部类的成员访问内部类的成员:创建内部类对象,由内部类对象访问内部的成员
3 分类:
3.1 成员内部类:在外部类的成员位置
3.1.1 非静态:
外部类访问成员内部类的成员方法:外部类名.内部类名 对象名 = 外部类对象.内部类对象 ;
代码:
运行结果:
3.1.2 静态:
外部类访问成员内部类的成员方法:外部类名.内部类名 对象名 = new 外部类.内部类() ;
代码:
运行结果:
3.2 局部内部类:在方法中定义的类
3.2.1外部类访问成员内部类的成员方法:在外部类的成员方法中创建内部类对象,然后对象名.局部内部类的成员方法来调用
代码:
运行结果:
3.2.2 局部内部类访问局部变量呢(jdk版本是1.8以下)?
局部内部类访问局部变量的,该变量必须被final修饰
原因:局部变量随着方法调用而存在的,随着方法的调用完毕而消失.
有一个局部内部类,在外部类的成员方法中在使用内部类对象(对象的创建完毕,不会立即被垃圾回收器回收掉),使用内部类对象,调用内部类的成员方法,就需要去访问局部变量,那么这个变量需要常驻内存(变成常量),所以它必须被final修饰
3.3 匿名内部类:内部类的简化版
3.3.1 前提:存在一个类或接口
格式:
new 类名/接口名(){
重写/实现一些方法()..
} ;
代码:
运行结果: