匿名内部类
作用: 假如某个类只使用一次,则可以使用匿名内部类,无需再新建该类
我们上下代码:
package com.learn.chap03.sec16; /** * 定义接口 */ public interface A { public void a(); }
package com.learn.chap03.sec16; public class B implements A{ @Override public void a() { // TODO Auto-generated method stub System.out.println("只使用一次"); } }
package com.learn.chap03.sec16; public class Test { public void test(A a) { a.a(); } public static void main(String[] args) { Test t = new Test(); t.test(new B()); // 使用匿名内部类 咱不用再建B类 t.test(new A(){ @Override public void a() { System.out.println("匿名内部类,一次性使用!"); } }); } }
运行结果:
只使用一次
匿名内部类,一次性使用!
包装类
每个基本类型都有一个类,此类即为包装类。如图:
下面通过代码说明下:装箱与拆箱、自动装箱与自动拆箱、包装类的作用
1 package com.learn.chap03.sec17; 2 3 public class Demo1 { 4 public static void main(String[] args) { 5 int a = 1; 6 Integer i = new Integer(a); // 装箱 把基本变量变成对象变量 7 int b = i.intValue(); // 拆箱 把对象变量变成基本变量 8 System.out.println("a="+a+",i="+i+",b="+b); 9 } 10 }
运行结果
a=1,i=1,b=1
1 package com.learn.chap03.sec17; 2 3 public class Demo2 { 4 // 自动装箱和自动拆箱 从JDK1.5开始 引入 5 public static void main(String[] args) { 6 Integer i = 1; // 自动装箱的过程 自动把基本数据转换成对象 7 int m = i; // 自动拆箱 自动把对象转成基本数据 8 System.out.println("i="+i+",m="+m); 9 } 10 }
运行结果
i=1,m=1
1 package com.learn.chap03.sec17; 2 3 public class Demo3 { 4 // 包装类的作用 5 public static void main(String[] args) { 6 String a = "1"; 7 String b = "2"; 8 System.out.println("a+b="+(a+b)); 9 int m = Integer.parseInt(a); 10 int n = Integer.parseInt(b); 11 System.out.println("a+b="+(m+n)); 12 } 13 }
运行结果
a+b=12
a+b=3