package exer1; //面向对象成员内部类的使用 public class TestProduct { public static void main(String[] args) { TestProduct t=new TestProduct(); //方式一:创建一个实现product接口的类的对象,并将此对象传入方法中 NoteBook n=new NoteBook(); t.show(n); //方式二:创建一个实现product接口的匿名类的对象,有对象名 Product p=new Product(){ public void getName(){ System.out.println("联想笔记本"); } public void getPrice(){ System.out.println("¥3000"); } }; //方式三:创建一个实现product接口的匿名类的匿名对象 t.show(new Product(){ public void getName(){ System.out.println("iPhone6s"); } public void getPrice(){ System.out.println("¥5000"); } }); System.out.println(); Product p1=t.getProduct(); p1.getName(); p1.getPrice(); } //局部内部类的使用 public Product getProduct(){ //方式一:实现product接口的局部内部类 // class Camera implements Product{ // public void getName(){ // System.out.println("数码相机"); // } // public void getPrice(){ // System.out.println("5000"); // } // } // return new Camera();//返回一个对象 //方式二:实现product接口的匿名局部内部类 return new Product(){ public void getName(){ System.out.println("数机"); } public void getPrice(){ System.out.println("6000"); } }; } public void show(Product p){ p.getName(); p.getPrice(); } } interface Product{ void getName(); void getPrice(); } class NoteBook implements Product{ public void getName(){ System.out.println("HP笔记本"); } public void getPrice(){ System.out.println("¥5000"); } }