/*
内部类
01 类中定义的类就是内部类
02 内部类中的成员 和普通类的成员一样
03 内部类可以直接访问 外部类的成员 包括私有对象
04 外部类访问内部类需要创建内部类的对象
05 当内部类被static修饰的时候 只能访问外部类的static成员
06 当内部类定义了静态成员 内部类必须是static的
07 当外部的静态方法访问内部类 内部类也必须是static的
*/
class Demo1
{
//private int num=1;
内部类
//class Demo2
//{
//private int num=2;
//public void show()
//{
//System.out.println("我是内部类");
打印的是Demo2的 2
//System.out.println(num);
打印的是Demo2的 2
//System.out.println(this.num);
编译出错 提示无法无法从静态上下文引用非静态变量 当变量是 static不会报错 (你懂得)
System.out.println(Demo1.num);
打印输出1 外部类的
//System.out.println(Demo1.this.num);
//}
//}
static class IntClass
{
public static void funtion()
{
System.out.println("我是内部类的静态方法");
}
}
public static void funtion()
{
IntClass d=new IntClass();
d.funtion();
}
}
class Demo
{
public static void main(String[] args)
{
//01无法创建 内部类
// Demo2 d=new Demo2();
//02 无法通过实例外部类访问内部类的方法
//Demo1 d=new Demo();
//d.show();
//03 在外部类中通过方法实例内部类 可以访问内部类的成员
//Demo1 d=new Demo1();
//d.funtion();
//04 直接访问内部类的方式
//Demo1.Demo2 dd=new Demo1().new Demo2();
//dd.show();
//05访问静态内部类的成员的格式 newDemo1.Demo2().show();
//Demo1.IntClass d=new Demo1().new IntClass();
//d.funtion();
Demo1 d=new Demo1();
d.funtion();
}
}