Day17
P1 内部类和常用类概述
P2 内部类分类
成员内部类:把 一个类 定义在 另一个类当中,作为他的成员存在,叫成员内部类
静态内部类:内部类前边加一个static修饰符关键字
局部内部类:把一个类定义在 一个方法 内部
匿名内部类:没有名字的类,用在接口和抽象类比较多
P3 内部类概念
内部类也会生成class文件
P4 成员内部类
//main主程序
package com.changyonglei.chengyuanneibulei;
public class TestOuter {
public static void main(String[] args) {
//如何调用内部类的方法?
// 1、创建外部类对象
// Outer outer = new Outer();
// 2、创建内部类对象
// Outer.Inner inner = outer.new Inner();
// 3、调用内部类方法show()
// inner.show();
/*输出:
张三
20
北京
110
*/
//简单的方法:1、2、3合成一步
Outer.Inner inner = new Outer().new Inner();
inner.show();
}
}
//外部类 和 内部类
package com.changyonglei.chengyuanneibulei;
public class Outer {
//定义几个实例变量:
private String name ="张三";
private int age=20;
//写一个内部类
class Inner{
private String address="北京";
private String phone="110";
//内部类的属性和外部类的属性名字相同,要想在内部类访问
//这个重名的外部类属性要在前面加 Outer.this
private String name = "李四";
// private static String country="美国";报错了,因为
//成员内部类里不能定义静态成员
//但成员内部类里可以定义 静态常量 常量final
private static final String ccc="中国";
//内部类方法
public void show(){
//打印属性
System.out.println(name);//这个打印的是内部类的name
System.out.println(age);
System.out.println(Outer.this.name);//这个打印的是外部类的name
//打印内部类中的属性
System.out.println(address);
System.out.println(phone);
}
}
}