1. 内部类的作用
2. Java成员内部类
3. java 静态内部类
4. java 中的方法内部类
5. Java继承关系
内部类的作用
1. 隐藏,提供更好的封装,不允许同一个包中的其他类访问该类。
2. 内部类可以直接访问外部类的数据,包括私有数据。
3. 内部类所实现的功能使用外部类同样可以实现,但有时使用内部类更加方便。
- 内部类可以分为
1. 成员内部类
2. 静态成员内部类
3. 方法内部类
4. 匿名内部类
public class HelloWorld{
public class inner{ // 定义一个内部类
public void show(){ // 创建一个内部类方法
System.out.println("我爱中国");
}
}
public static void main(String[]args){
// 创建外部类对象
HelloWorld hello = new HelloWorld();
// 创建内部类对象
inner i = hello.new inner();
// 调用内部类对象
i.show();
}
}
Java成员内部类
public class Outer {
// 外部类私有属性
private String name = "China";
int age = 20;
// 成员内部类
public class inner{
String name="我爱中国";
// 内部类中的方法
public void show(){
// 在内部类中使用类关键字this,区分内部类变量和外部类相同变量
System.out.println("外部类中的name:"+Outer.this.name);
System.out.println("内部类中的name"+name);
// 在内部类中可以直接访问外部类变量
System.out.println("外部类中的age:"+age);
}
}
// 测试成员内部类
public static void main(String[] args){
// 创建外部类对象
Outer O = new Outer();
// 创建内部类对象
inner inn = O.new inner();
// 调用内部类对象的show方法
inn.show();
}
}
java 静态内部类
public class SOuter {
private int a = 99; //外部私有变量
static int b = 1; //外部静态变量
// 静态内部类
public static class SInner{
int b = 2; // 内部类的变量
public void test(){
System.out.println("访问外部类的b:"+ SOuter.b); // 通过类名.静态成员名访问外部变量
System.out.println("访问内部类的b:"+ b);
}
}
public static void main(String [] args){
SInner si = new SInner();
si.test();
}
}
java 中的方法内部类
方法内部类就是定义在外部类的方法中的类,该类只能在方法内部使用,
注意:由于方法内部类不能在外部类的其他地方使用,因此方法类不能使用访问控制修饰符和static。
//外部类
public class HelloWorld {
private String name = "中国梦";
// 外部类中的show方法
public void show() {
// 定义方法内部类
class MInner {
int score = 83;
public int getScore() {
return score + 10;
}
}
// 创建方法内部类的对象
MInner mi = new MInner();
// 调用内部类的方法
mi.getScore();
int Newscore = mi.getScore();
System.out.println("姓名:" + name + "\n加分后的成绩:" + Newscore);
}
// 测试方法内部类
public static void main(String[] args) {
// 创建外部类的对象
HelloWorld mo = new HelloWorld();
// 调用外部类的方法
mo.show();
}
}
Java继承关系
class 子类 extends 父类 ,父类当中的变量如果是private,那么将不能继承。- Java方法的重写
如果子类对父类的方法不满意,可以重写父类的方法,调用时优先调用子类方法。
- 语言规则
a. 返回值类型
b. 方法名
c. 参数类型及个数
都要与父类相同,才叫重写。
- 语言规则