内部类:当我们在描述一个事物时,发现该事物当中有存在另一个事物-------我们把当前事物称为外部类,另外一个称为内部类
package part02.内部类;
public class InnerDemo {
public static void main(String[] args) {
/*1.如何调用内部类的成员
首先想要点用内部类的成员,必须先创建内部类的对象 new Inner()
但是直接new Inner()发现找不到Inner这个类
因为Inner是Outter的非静态成员
所以Inner这个类想要存在的前提是创建Outter对象new Outter()
*/
//Outter.Inner inner=new Outter().new Inner();
//System.out.println(inner.num);
//inner.show();
/*
2.如何区分内部类成员和外部类成员
System.out.println(Outter.this.num+":"+this.num);
*/
/*
3.如何调用内部类的静态成员
静态的东西是优先于对象加载尽方法区
haha在一个非静态的类当中,必须先创建Inner对象haha才存在
如果内部类中有静态,那么内部类必须是静态的,此时就产生内部类当中无法访问外部类的非静态,但是可以访问内部类的非静态
*/
System.out.println(Outter.Inner.haha);
}
}
class Outter{
int num=10;
void show() {
System.out.println("Outter show.....");
}
//非静态
static class Inner{
int num=20;
//静态
static int haha=100;
void show() {
System.out.println("Inner show.....");
//Outter.this.num指的是Outter.(这个类的)this(对象的).num(的num)
//System.out.println(Outter.this.num+":"+this.num);
System.out.println(num+":"+num);
}
}
}