Java内部类的调用
2015-10-27 13:01
513 查看
首先,Java显示的内部类分为两种,静态内部类和非静态内部类。而两者的区别和用static修饰的变量或方法相同,即该内部类是属于类还是属于类的实例对象。
对静态内部类来说,该静态内部类可由其外部类直接调用,之前新建类实例的时候需要
而非静态内部类,它的调用者为外部类的实例,所以应该使用
测试代码如下:
对静态内部类来说,该静态内部类可由其外部类直接调用,之前新建类实例的时候需要
new Class(),而现在只需要
new OuterClass.InnerClass()即可。
而非静态内部类,它的调用者为外部类的实例,所以应该使用
new OuterClass().new InnerClass()。
测试代码如下:
/** * 创建时间:2015年10月27日 下午12:47:07 * @author donghl * 类说明:Java内部类的测试 */ public class StaticTest { public static void main(String[] args) { /* * 外部类本身的调用 */ // 静态方法 StaticTest.test1(); // new StaticTest().test2(); 正确,不建议使用 // 非静态方法 new StaticTest().test2(); /* * 静态内部类的调用 */ // 静态方法 StaticTest.T1.test1(); // new StaticTest.T1().test1(); 正确,不建议使用 // 非静态方法 new StaticTest.T1().test2(); /* * 非静态内部类的调用 */ // 静态方法 不支持 // 非静态方法 new StaticTest().new T2().test2(); } public static void test1() { System.out.println("StaticTest.test1"); } public void test2() { System.out.println("StaticTest.test2"); } /** * 静态内部类 */ public static class T1 { // 静态方法 public static void test1() { System.out.println("T1.test1"); } // 非静态方法 public void test2() { System.out.println("T1.test2"); } } /** * 非静态内部类 */ public class T2 { // 不支持静态方法 // public static void test1() {} // 非静态方法 public void test2() { System.out.println("T2.test2"); } } }
相关文章推荐
- spring mvc-文件上传
- Maven运行Java main方法区别: exec:java 和exec:exec
- shiro、SpringMVC权限控制
- 关于java命名规范及注释,并将javadoc的生成html
- 37-java数字猜大小
- java.net.SocketException: Unconnected sockets not implemented 解
- shiro、SpringMVC权限控制
- java之ssh
- ajaxfileupload.js、struts2、ajax、json异步上传图片
- 韩顺平循序渐进学java从入门到精通视频教程在线观看(总汇),1-94集全,以及视频和ppt,课后笔记
- 深入理解java虚拟机之java内存模型与线程,主要参考《深入理解java虚拟机》
- eclipse设置格式化模板
- java ftp操作
- java动态代理(JDK和cglib)
- 9个Java性能优化工具汇总
- detachedCriteria: java.lang.integer cannot be cast to Long
- 深入理解Java:注解(Annotation)自定义注解入门
- spring相关文档下载地址更新
- struts,如何让一个json数据传出到前台
- java接口同抽象类的区别联系