JavaSE——day8内部类

接口类型作为形式参数的问题

1)提供给接口的子实现类

2)内部类的方式


这里就2)进行展开书写。

什么叫内部类?

内部类顾名思义,在一个类的内部存在的类就叫做内部类。

内部类的特点

内部类可以直接访问外部类的 所有,包括私有。
内部类如果需要被外部类访问,那么,需要外部类创建内部类的对象间接访问。(内部类好像更懂外部类。。。)
外部类要访问内部类(非静态的内部类)的成员方法:
    格式:外部类名.内部类名 对象名 = 外部类对象.内部类对象
    例子:
//需求:访问内部类中的成员方法
class Outer{
	int a = 10 ;
	class Inner{
		public void show() {
			System.out.println(a);//内部类可以直接访问外部类的成员位置
		}
	}
}
public class TestDemo1 {
	public static void main(String[] args) {
		Outer.Inner s = new Outer().new Inner();
		s.show();
	}
}

内部类的分类

内部类又可以分成:
  成员内部类:内部类在外部类的成员位置。
  成员外部类:内部类在外部类的局部位置(在外部类的某一个方法中)。

关于成员内部了的修饰符

private可以保证安全!我们知道外部类可以创建内部了对象,这对于内部类来说有失安全,被private修饰的内部类不能被外部类创建对象。
static可以把静态的内部类看成是外部类的成员。

匿名内部类

new 类名或者接口名{
 
    方法重写();
  }
匿名内部类本质:是继承了该类或者实现了该子类对象


猜你喜欢

转载自blog.csdn.net/weixin_38930706/article/details/80006110