java中四种静态内部类总结(仅供参考)
2013-03-18 12:12
239 查看
下面通过一个例子来对这四种内部类的使用方法进行总结:
/** * @author zhenglulu * 通过在Test类中定义四种内部类并在main方法中分别进行调用来加深对内部类的理解 */ public class Student { private int id = 2010; //id默认为2010 String name = "student"; //name默认为student static String schoolName = "湖南大学"; //定义一个面向湖南大学学生的类,所以所有的学生对象共享一个学校名称对象 public void setName(String n){ name = n; System.out.println("name = " + name); } /* * 普通的内部类(非静态内部类),当然前面可加public,protected,缺省的,private范围修饰符 */ class InnerClass{ String name = "InnerStudent"; public void print(){ //因为普通内部类(非静态内部类)默认保存有指向外部类对象的引用,所以可以访问外部类中的任何成员变量及方法 System.out.println("schoolName:"+schoolName + ", name:" + name + ", id:" + id); //如果想得到父类中的name,使用Student.this.name System.out.println("parent's name:" + Student.this.name); } } /* * 静态内部类,他跟非静态内部类相比,区别就在于他不保存有指向外部类对象的引用,所以,从狭义上讲,他不是内部类, * 这种类在运行时的行为和功能与普通类没什么区别, */ static class StaticClass{ String name = "StaticStudent"; public void print(){ System.out.println("name:" + name); System.out.println("schoolName:" + Student.schoolName); //只能访问父类中的静态成员 } } /* * 局部内部类,他是定义在方法中的类,如果我们在用一个内部类的时候仅需要创建它的一个对象并返回给外部,就可以这样做 */ public Student method(){ class PartClass extends Student{ String name; public PartClass(String name){ this.name = name; System.out.println("PartClass's name:" + name); } } return new PartClass("PartStudent"); } /* * 匿名内部类,当你只需要创建一个类的对象而且用不上它的名字时,使用匿名内部类可以使代码看上去简洁清楚 */ public Student method1(){ return new Student(){ public void setName(String name){ System.out.println("name = " + name); } }; } public static void main(String[] args){ Student s = new Student(); //创建一个外部类Student类的对象 Student.InnerClass sic = s.new InnerClass(); //得到一个内部类的对象 sic.print(); //调用InnerClass内部类对象的print方法 StaticClass sc = new StaticClass(); //创建一个静态内部类对象 sc.print(); //调用该静态内部类对象的print方法 s.method(); //调用Student类中的method方法,得到一个PartClass类的对象 //调用Student类中的method1方法,返回一个继承了Student类的对象,并调用它的setName方法 s.method1().setName("lulu"); } }
相关文章推荐
- JAVA四种基本排序的总结
- Java中遍历Map的四种方法总结
- Java基础学习总结(85)——Java中四种线程安全的单例模式实现方式
- Java中四种访问权限总结
- JAVA四种基本排序的总结
- Java中四种遍历List的方法总结(推荐)
- Java基础学习总结(85)——Java中四种线程安全的单例模式实现方式
- Java四种访问控制修饰符知识点总结
- 手动执行java命令的四种方法总结(类,jar包的手动执行)
- 总结分析Java常见的四种引用
- java map遍历的四种方法总结
- Java中四种访问权限总结
- JAVA四种基本排序的总结
- JAVA四种基本排序的总结
- java四种List接口实现类的对比总结
- JAVA四种基本排序的总结
- JAVA四种基本排序的总结
- JAVA四种基本排序的总结
- java--javadoc--Javadoc转换chm帮助文档的四种方法总结
- 【学习总结】java高级特性之四种JAVA内部类总结