- 浏览: 605402 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
niuqiang2008:
谢了谢了 就是要找这个问题
struts2的<s:set><s:if>标签应用 -
love_zongming:
赞一个! 谢谢分享
向eclipse中添加user library的方式 -
MyPointOne:
后面的异常为什么出现?好像没说清楚!
Jboss中的web-console与jmx-console的配置 -
nysin:
顶一个,现在明白了...
JAVA静态和非静态内部类 -
chenhua_1984:
很不错!
Cause: net.sf.cglib.beans.BulkBeanException异常
一致对java的静态和非静态内部类的东东理解不清楚,今天测试了一下,下面把测试结果记录一下,加深印象。用于以后查找。
直接上代码。
直接上代码。
package com.test.xml; /** * @author <a href="mailto:dq201@126.com">du.qiang</a> * @version $Revision 1.1 $ 2010-6-23 上午06:48:28 */ public class OutClassTest { static int a; int b; public static void test() { System.out.println("outer class static function"); } public static void main(String[] args) { OutClassTest oc = new OutClassTest(); // new一个外部类 OutClassTest oc1 = new OutClassTest(); // 通过外部类的对象new一个非静态的内部类 OutClassTest.InnerClass no_static_inner = oc1.new InnerClass(); // 调用非静态内部类的方法 System.out.println(no_static_inner.getKey()); // 调用静态内部类的静态变量 System.out.println(OutClassTest.InnerStaticClass.static_value); // 不依赖于外部类实例,直接实例化内部静态类 OutClassTest.InnerStaticClass inner = new OutClassTest.InnerStaticClass(); // 调用静态内部类的非静态方法 System.out.println(inner.getValue()); // 调用内部静态类的静态方法 System.out.println(OutClassTest.InnerStaticClass.getMessage()); } private class InnerClass { // 只有在静态内部类中才能够声明或定义静态成员 // private static String tt = "0"; private int flag = 0; public InnerClass() { // 三.非静态内部类的非静态成员可以访问外部类的非静态变量和静态变量 System.out.println("InnerClass create a:" + a); System.out.println("InnerClass create b:" + b); System.out.println("InnerClass create flag:" + flag); // System.out.println("InnerClass call outer static function"); // 调用外部类的静态方法 test(); } public String getKey() { return "no-static-inner"; } } private static class InnerStaticClass { // 静态内部类可以有静态成员,而非静态内部类则不能有静态成员。 private static String static_value = "0"; private int flag = 0; public InnerStaticClass() { System.out.println("InnerClass create a:" + a); // 静态内部类不能够访问外部类的非静态成员 // System.out.println("InnerClass create b:" + b); System.out.println("InnerStaticClass flag is " + flag); System.out.println("InnerStaticClass tt is " + static_value); } public int getValue() { // 静态内部类访问外部类的静态方法 test(); return 1; } public static String getMessage() { return "static-inner"; } } public OutClassTest() { // new一个非静态的内部类 InnerClass ic = new InnerClass(); System.out.println("OuterClass create"); } }
/** * 总结: * 1.静态内部类可以有静态成员(方法,属性),而非静态内部类则不能有静态成员(方法,属性)。 * 2.静态内部类只能够访问外部类的静态成员,而非静态内部类则可以访问外部类的所有成员(方法,属性)。 * 3.实例化一个非静态的内部类的方法: * a.先生成一个外部类对象实例 * OutClassTest oc1 = new OutClassTest(); * b.通过外部类的对象实例生成内部类对象 * OutClassTest.InnerClass no_static_inner = oc1.new InnerClass(); * 4.实例化一个静态内部类的方法: * a.不依赖于外部类的实例,直接实例化内部类对象 * OutClassTest.InnerStaticClass inner = new OutClassTest.InnerStaticClass(); * b.调用内部静态类的方法或静态变量,通过类名直接调用 * OutClassTest.InnerStaticClass.static_value * OutClassTest.InnerStaticClass.getMessage() */
发表评论
-
Tomcat6.x + p6spy + IronTrackSQL 监控sql性能
2013-05-15 17:41 1314具体内容见附件!!! <script> (f ... -
说说Statement、PreparedStatement和CallableStatement的异同.
2012-05-15 16:22 22981.Statement、PreparedStatement和C ... -
JSP中Session对象的由来
2012-02-10 16:39 1623如果JSP没有显示的使用 <% @page sessio ... -
Jave的autoboxing与autounboxing
2012-02-03 13:21 1212Java 自动装箱与拆箱 一 ... -
ASCII码表图片
2011-12-08 10:10 3911ASCII对照码表 -
Linux上的Cron命令集合
2011-09-22 10:43 1140关于linux下的Cron 查看当前用户的cron列表命 ... -
Eclipse或MyEclipse设置启动JVM时的字符集
2011-08-31 22:34 3630Eclipse或MyEclipse设置启动JVM时的字符集 ... -
Ajax与JSP防止缓存介绍
2011-06-22 20:36 3178一:清除AJAX缓存的方法介绍: 1.在ajax发送请求前加上 ... -
Eclipse下怎么打jar包 jar怎么运行
2011-01-31 18:05 2785一、怎么打jar包 第一步:选中要打jar包的工程 第二步 ... -
Jboss中的web-console与jmx-console的配置
2010-10-10 15:34 9877JBoss安装成功后,一般 ... -
使用jboss服务器时遇到的相关问题
2010-09-27 23:50 4271Eclipse启动Jboss服务器,如何指定JVM虚拟内存大小 ... -
设置Tomcat,Jboss应用服务器的端口
2010-09-27 13:13 2247Tomcat,Jboss,Oracle端口号的修改 转载于ht ... -
向eclipse中添加user library的方式
2010-09-22 22:33 35512以前做项目都是把需要的jar包直接copy到工程的lib目录下 ... -
用LinkedList实现队列和栈
2010-07-13 11:01 1692队列实现: package com.test.unicode; ... -
摘抄一段关于HashSet的描述
2010-07-13 10:20 1077HashSet介绍: 1.只有类的实例对象要被采用哈希算法进 ... -
找不到 java 类: org.apache.catalina.startup.Bootstrap
2010-06-18 10:55 17584今天启动服务器时,在catalina.out文件日志中出现了异 ... -
BigDecimal
2010-06-12 17:30 1164前段时间看见一个关于 2.0-1.9非0.1结果的文章。 在此 ... -
设置ECLIPSE自动编译
2010-06-11 12:34 8237设置eclipse自动编译的2中方式: 1. 确保 proje ... -
代码自我审查的一些体会
2010-05-24 14:20 1093代码自我审查的一些体 ... -
DecimalFormat与ORACLE中字符格式化的一点点关系
2010-05-24 10:56 18241.java中DecimalFormat 在java中Dec ...
相关推荐
java静态内部类(嵌套类)的实例 。嵌套类意味着: 1. 要创建嵌套类的对象,并不需要其外围类的对象。 2. 不能从嵌套类的对象中访问非静态的外围类对象。
上次有朋友问我,java中的类可以是static吗?我给他肯定的回答是可以的,在java中我们可以有静态实例变量、...当然类也可以是静态的,下面小编整理了些关于java中的static class相关资料分享在脚本之家平台供大家参考
Java 1.1通过对Java语言规范进行修改,显着简化了...为实现这一行为,非静态内部类存储着对外部类的实例的一个隐式引用。所以,对一个非静态内部类进行实例化需要采用不同语法的new语句: 2、引用内部类 内部类
文章目录简介内部类静态内部类非静态内部类静态方法内部类非静态方法的内部类匿名类内部接口总结 简介 一般来说,我们创建类和接口的时候都是一个类一个文件,一个接口一个文件,但有时候为了方便或者某些特殊的原因...
内部类基本概述语法格式成员内部类局部内部类匿名内部类静态嵌套类静态嵌套类和非静态嵌套类的区别 内部类 基本概述 当一个类的定义放在另一个类的实体时,则该类叫做内部类,该类所在的类叫做外部类 在一个类体中...
内部类一般情况下, 类与类之间是相互独立的,内部类的意思是打破这样的独立,让一个类成为另一个类的内部信息,和成员变量,成员方法同等级别。非静态内部类的使用就是将
示例描述:本章学习对象和类。 accessMember.java 访问成员变量示例 constructNoPara.java 无参数的构造方法 constructWithPara.java 带参数的构造方法 declareDefault.java 缺省访问权限的使用 declarePrivate...
在“静态方法”的内部不能调用“非静态方法”,反过来倒是可以的。而且你可以在没有创建任何对象的前提下,仅仅通过类本身来调用静态方法。这实际上正是静态方法存在的主要原因。它很象是C语言中的全局函数。Java中...
第6章 Java的类(Class)和对象(Object) 132 教学视频:59分钟 6.1 驾驶汽车向类(Class)的世界进发 132 6.1.1 汽车带来的问题 132 6.1.1 类的组成 134 6.1.3 使用自定义的Car类 136 6.1.4 类和对象 139 ...
学生提问:非静态内部类对象和外部类对象的关系是怎样的? 206 6.7.2 静态内部类 207 学生提问:为什么静态内部类实例方法也不能访问外部类的实例属性呢? 207 学生提问:接口里是否能定义内部接口? 208 6.7.3 ...
第6章 Java的类(Class)和对象(Object) 132 教学视频:59分钟 6.1 驾驶汽车向类(Class)的世界进发 132 6.1.1 汽车带来的问题 132 6.1.1 类的组成 134 6.1.3 使用自定义的Car类 136 6.1.4 类和对象 139 ...
7.3.6 java.security.Key和java.security. spec.KeySpec 126 7.3.7 java.security.KeyFactory和java. security.cert.CertificateFactory 128 7.3.8 KeyPair和KeyPairGenerator 129 7.3.9 java.security.KeyStore ...
要掌握Collection相关的接口和类的使用 56.使用StringBuffer类与String类进行字符串连接时有何区别? 57.调用Thread类的destroy()方法有什么后果? 58.多线程,用什么关键字修饰同步方法?stop()和suspend()方法...
咳咳咳!!!!! 博主真的是正儿八经的...定义在类的内部,成员位置上的非静态类 例子: package untl1; public class outer { private static int a = 1; private int b = 2; class inner { public int c=3; pu
(1) 非静态对象的初始化 在创建对象时,对象所在类的所有数据成员会首先进行初始化。 基本类型:int型,初始化为0。 如果为对象:这些对象会按顺序初始化。 ※在所有类成员初始化完成之后,才调用本类的构造方法...
8.1.1 非静态成员内部类203 8.1.2 局部内部类206 8.1.3 静态内部类209 8.1.4 匿名内部类211 8.2 对象包装器213 8.3 装箱和拆箱216 8.4 本章习题218 第9章 9.1 String类220 9.1.1 字符串常量221 9.1.2 字符串对象操作...
232 11.7 习题 232 第12章 内部类(精彩视频:71分钟) 234 12.1 非静态内部类 234 12.1.1 创建非静态内部类 234 12.1.2 在外部类中访问内部类 235 12.1.3 在外部类外访问内部类 236 12.1.4 在内部类中访问外部类 ...
final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。 finally是异常处理语句结构的一部分,表示总是执行。 finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的...