一:定义
把一个类写到另一个类或者方法中
二:内部类的分类
(1)成员内部类:直接定义在外部类的内部
1.可以拥有private ,protected访问权限修饰符,
2.如果外部类和内部类属性重名,就近原则使用内部类的属性;
3.如果外部类和内部类属性重名,想访问外部类的属性:
外部类名.this.属性/方法();
4.想访问内部类,必须先创建外部类对象。
(2)静态内部类:成员内部类用static修饰
1.成员内部类 加载 static
2.不依赖外部类可以直接创建对象
3.不能访问外部类非静态的属性和方法;
(3)局部内部类 : 被定义在某个方法或代码块中
1.仅限于方法体内部使用,相当于局部变量;
(4)匿名内部类
1.没有名称,看不到累的定义;
2.所有匿名内部类必须继承一个类或者实现一个接口;
3.如果匿名内部类需要类外部参数,这个参数需要用final修饰;
public static void main(String[] args) { // TODO Auto-generated method stub new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub System.out.println("线程名字:" + Thread.currentThread().getName()); } }, "线程一").start(); }