面向对象学习第四天笔记整理
一、带包编译
1.手动方式
1). 首先创建一个Java带包类. Javac 类名.Java 编译生成.class文件
2). 手动创建包文件夹 将.class文件拷贝到包文件夹中
3). java 类名 运行文件
2.自动编译
1). 首先创建一个Java带包类. javac -d . 类名.Java文件编译
2). java 类名 运行文件
二、访问权限
publicprotected默认(default)private
同一个类中√√√√
同一个包中√√√
不同包中的子类√√
不同包中的其他类√
三、内部类
成员内部类
1.可以无限制的访问外部类中的成员,包括静态成员和私有成员
2. 成员内部类中不能定义静态成员
3. 如何访问内部类中的成员,需要创建内部类的对象
外部类名.内部类名 对象名 = new 外部类名().new 内部类名();
4.外部类中如何访问内部类的成员(包含私有成员): 创建内部类的对象
5. 如何在内部类中访问外部类中的同名成员: 外部类名.this.成员;
局部内部类
1. 只能在方法中认识
2. 不能用public private protected修饰
3. 局部内部类中的变量在jdk1.7之前必须声明为final的,1.8之后可以不能写final
静态内部类
1. 静态内部类中既可以定义静态成员,也可以定义非静态成员
2.有静态成员的内部类一定是静态内部类
3. 如何调用静态内部类中的成员
静态的: 外部类名.内部类名.静态成员
非静态的: new 外部类名.内部类名().非静态成员
匿名内部类***
本质: 实现了接口或者继承了类的子类对象
格式:
创建方式一:
类名/接口名 变量名 = new 类名/接口名(){
//要重写的方法
};
创建方式二:
new 类名/接口名(){
//要重写的方法
}.方法名();