67 Java 内部类
来源:互联网 发布:千牛设置淘宝分流 编辑:程序博客网 时间:2024/06/12 20:50
package new20140512;class Out {// 定义一个内部类,不使用访问控制符// 即只有同一个包中得其他类可访问该类的内部类class InClass {public InClass(String msg) {System.out.println(msg);}}}public class Test3 {public static void main(String[] args) {// Out.InClass in=new Out().new InClass("测试信息");Out.InClass in;Out out=new Out();in =out.new InClass("测试信息");//输出:测试信息}}
package new20140512;class Out {// 定义一个内部类,不使用访问控制符// 即只有同一个包中得其他类可访问该类的内部类class InClass {public InClass(String msg) {System.out.println(msg);}}}public class Test3 {public static void main(String[] args) {// Out.InClass in=new Out().new InClass("测试信息");Out.InClass in;Out out=new Out();in =out.new InClass("测试信息");//输出:测试信息}}
package new20140512;class Out {// 定义一个内部类,不使用访问控制符// 即只有同一个包中得其他类可访问该类的内部类class InClass {public InClass(String msg) {System.out.println(msg);}}}public class Test3 {public static void main(String[] args) {// Out.InClass in=new Out().new InClass("测试信息");Out.InClass in;Out out=new Out();in =out.new InClass("测试信息");//输出:测试信息}}
局部内部类
package new20140513;/** * 局部内部类 * ——如果一个类放在方法里定义,则这个内部类就是一个局部内部类,局部内部类仅在该方法里有效。 * —— 如果需要局部内部类定义变量、创建实例或派生子类,那么都只能在局部内部类所在的方法内进行 * @author x * */public class Test1 {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stub//定义局部内部类class InnerBase{int a;}//定义局部内部类的子类class InnerSub extends InnerBase{int b;}//创建局部内部类的对象InnerSub is=new InnerSub();is.a=5;is.b=8;System.out.println("InnerSub 对象的a和b Field是:"+is.a+","+is.b);}}
匿名内部类
package new20140513;/** * 匿名内部类 * ——适合创建那种只需要一次使用的类 * ——语法特点:创建匿名内部类时会立即创建一个该类的实例,这个类定义立即消失, * 匿名内部类不能重复使用 * * @see 定义格式: * new 父类构造器(实参列表)|实现接口() * { * //匿名内部类的类体部分 * } * ——匿名内部类必须继承一个父类,或实现一个接口,但最多只能继承一个父类,或实现一个接口 * ——匿名内部类不能时抽象类 * ——匿名内部类不能定义构造器 * @author x * */interface Product{public double getPrice();public String getName();}public class Test2 {public void test(Product p){System.out.println("购买:"+p.getName()+",单价:"+p.getPrice());}/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubTest2 test2=new Test2();//调用test方法时,需要传入一个Product参数//参数传入其匿名实现类的实例test2.test(new Product() {@Overridepublic double getPrice() {// TODO Auto-generated method stubreturn 4999;}@Overridepublic String getName() {// TODO Auto-generated method stubreturn "联想PC";}});}}
package new20140513;/** * 匿名内部类 * ——适合创建那种只需要一次使用的类 * ——语法特点:创建匿名内部类时会立即创建一个该类的实例,这个类定义立即消失, * 匿名内部类不能重复使用 * * @see 定义格式: * new 父类构造器(实参列表)|实现接口() * { * //匿名内部类的类体部分 * } * ——匿名内部类必须继承一个父类,或实现一个接口,但最多只能继承一个父类,或实现一个接口 * ——匿名内部类不能时抽象类 * ——匿名内部类不能定义构造器 * @author x * */interface Product{public double getPrice();public String getName();}public class Test2 {public void test(Product p){System.out.println("购买:"+p.getName()+",单价:"+p.getPrice());}/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubTest2 test2=new Test2();//调用test方法时,需要传入一个Product参数//参数传入其匿名实现类的实例test2.test(new Product() {@Overridepublic double getPrice() {// TODO Auto-generated method stubreturn 4999;}@Overridepublic String getName() {// TODO Auto-generated method stubreturn "联想PC";}});InTest2 inTest2=new InTest2();System.out.println("购买:"+inTest2.getName()+",单价:"+inTest2.getPrice());}}//可以拆分成一下代码class InTest2 implements Product{@Overridepublic double getPrice() {// TODO Auto-generated method stubreturn 4999;}@Overridepublic String getName() {// TODO Auto-generated method stubreturn "联想PC";}}
0 0
- 67 Java 内部类
- 【Java】【内部类】Java 内部类简介
- [Java] Java 内部类
- Java 内部类(成员内部类、局部内部类、静态内部类和匿名内部类)
- Java内部类(成员内部类、静态内部类、局部内部类、匿名内部类)小结
- Java内部类(成员内部类、静态内部类、局部内部类、匿名内部类)小结
- Java内部类(成员内部类、局部内部类、静态内部类、匿名内部类)
- Java内部类(成员内部类、静态内部类、局部内部类、匿名内部类)小结
- Java内部类(成员内部类、静态内部类、局部内部类、匿名内部类)小结
- Java内部类(成员内部类、静态内部类、局部内部类、匿名内部类)小结
- java的内部类、匿名内部类、局部内部类
- java内部类之成员内部类、静态内部类
- java 成员内部类 局部内部类,匿名内部类
- Java 静态内部类/内部类
- java内部类、静态内部类 小结
- Java内部类,静态内部类
- JAVA 内部类与静态内部类
- java内部类--局部内部类
- hdu 2673
- crtmpserver常用基本类介绍
- 数据挖掘系列(6)决策树分类算法
- 性能loadrunner--常用函数
- http://bbs.csdn.net/topics/390025630
- 67 Java 内部类
- TCP/IP、Http、Socket的区别
- linux文件访问权限配置
- Unit12--problem3-摩托车继承自行车和机动车
- 搭建ADF开发环境
- 堆栈
- ruby无++,--运算符
- 如何在MySql中记录SQL日志
- PHP面向对象杂谈二