1 内部类即在类中再定义类,分为外部类和内部类,内部类又分为成员内部类(外部内,方法外)和局部内部类(方法中的类)。
2 成员内部类:可有修饰符(default,private,protected,public );
可用static final abstract修饰;
可调用外部类属性方法。
(1)如何创建成员内部类对象
1)创建静态内部类对象,可通过外部类直接调用静态内部类构造器
Person.Dog s=new Person.Dog();
2)创建非静态内部类的对象,要先创建外部类对象,通过外部类对象调用内部类构造器;
Person p=new Person();
Person.Bird b=p.new Bird();
3 局部内部类:
方式一:
(1)创建一个实现实现接口的类 class Camera implements Product{}
(2)返回一个实现类对象: return new Camera();
//局部内部类的使用 public Product getProduct(){ //方式一:实现Product接口的类的对象, class Camera implements Product{ @Override public void getName() { // TODO Auto-generated method stub System.out.println("数码相机"); } @Override public void getPrice() { // TODO Auto-generated method stub System.out.println("¥6798"); } } return new Camera();
方式二:
直接返回重写:
return new Product(){....重写....}
接上 //方式二:实现Product接口的匿名局部内部类 return new Product(){ @Override public void getName() { // TODO Auto-generated method stub System.out.println("电子书"); } @Override public void getPrice() { // TODO Auto-generated method stub System.out.println("¥899"); } };