学习过程中经常搞不清匿名类&匿名对象怎么用,今天就把常用的方式总结一遍。
1.创建了非匿名实现类的非匿名对象
1 //定义USB接口 2 interface USB{ 3 void inputInofo(); 4 void outputInfo(); 5 } 6 //USB接口的实现类 7 class Computer implements USB{ 8 9 public void inputInofo() { 10 System.out.println("MyComputer输入信息[^L^]。。。。。。"); 11 } 12 13 public void outputInfo() { 14 System.out.println("MyComputer输出信息[^_^]。。。。。。"); 15 } 16 } 17 18 public class mainTest { 19 @Test 20 public void show(){ 21 //1.创建了非匿名实现类的非匿名对象(有实现类名,有对象名) 22 Computer computer = new Computer(); // ==> USB usbImpl = new Computer(); 23 streamData(computer); 24 } 25 26 public void streamData(USB usbImpl){ 27 usbImpl.inputInofo(); 28 usbImpl.outputInfo(); 29 } 30 }
2.创建了非匿名实现类的匿名对象
1 //定义USB接口 2 interface USB{ 3 void inputInofo(); 4 void outputInfo(); 5 } 6 //USB接口的实现类 7 class Computer implements USB{ 8 9 public void inputInofo() { 10 System.out.println("MyComputer输入信息[^L^]。。。。。。"); 11 } 12 13 public void outputInfo() { 14 System.out.println("MyComputer输出信息[^_^]。。。。。。"); 15 } 16 } 17 18 public class mainTest { 19 @Test 20 public void show(){ 21 //2.创建了非匿名实现类的匿名对象(有实现类名,没有对象名),通常作为参数,不用定义变量名了 22 streamData(new Computer()); 23 } 24 25 public void streamData(USB usbImpl){ 26 usbImpl.inputInofo(); 27 usbImpl.outputInfo(); 28 } 29 }
3.创建了匿名实现类的非匿名对象
1 //定义USB接口 2 interface USB{ 3 void inputInofo(); 4 void outputInfo(); 5 } 6 //USB接口的实现类 7 class Computer implements USB{ 8 9 public void inputInofo() { 10 System.out.println("MyComputer输入信息[^L^]。。。。。。"); 11 } 12 13 public void outputInfo() { 14 System.out.println("MyComputer输出信息[^_^]。。。。。。"); 15 } 16 } 17 18 public class mainTest { 19 @Test 20 public void show(){ 21 //3.创建了匿名实现类的非匿名对象(没有实现类名,有对象名) 22 USB usbImpl = new USB() { 23 public void inputInofo() { 24 System.out.println("[匿名实现类,非匿名对象]输入。。。。"); 25 } 26 27 public void outputInfo() { 28 System.out.println("[匿名实现类,非匿名对象]输出。。。。"); 29 } 30 }; 31 32 streamData(usbImpl); 33 } 34 35 public void streamData(USB usbImpl){ 36 usbImpl.inputInofo(); 37 usbImpl.outputInfo(); 38 } 39 }
4.创建了匿名实现类的匿名对象
1 //定义USB接口 2 interface USB{ 3 void inputInofo(); 4 void outputInfo(); 5 } 6 //USB接口的实现类 7 class Computer implements USB{ 8 9 public void inputInofo() { 10 System.out.println("MyComputer输入信息[^L^]。。。。。。"); 11 } 12 13 public void outputInfo() { 14 System.out.println("MyComputer输出信息[^_^]。。。。。。"); 15 } 16 } 17 18 public class mainTest { 19 @Test 20 public void show(){ 21 //4.创建了匿名实现类的匿名对象(没有实现类名,没有对象名),通常作为参数,不用定义变量名了 22 streamData( 23 new USB() 24 { 25 public void inputInofo() { 26 System.out.println("[匿名实现类,匿名对象]输入。。。。"); 27 } 28 29 public void outputInfo() { 30 System.out.println("[匿名实现类,匿名对象]输出。。。。"); 31 } 32 } 33 ); 34 } 35 36 public void streamData(USB usbImpl){ 37 usbImpl.inputInofo(); 38 usbImpl.outputInfo(); 39 } 40 }