社区
Java EE
帖子详情
关于类继承初始化问题
chjwin
2009-08-19 04:46:41
对于由引用类变量(class field)所引发的初始化,只会初始化真正定义该field的class。
这句话怎么去理解?有什么样的例子可以证明这一句话的正确性!请高手帮忙写个简单例子!
请高手指教,先谢为主,谢谢大家!
...全文
119
5
打赏
收藏
关于类继承初始化问题
对于由引用类变量(class field)所引发的初始化,只会初始化真正定义该field的class。 这句话怎么去理解?有什么样的例子可以证明这一句话的正确性!请高手帮忙写个简单例子! 请高手指教,先谢为主,谢谢大家!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
humanity
2009-08-19
打赏
举报
回复
哦,还是拼写错误啊,^_^, 我的 CLASSPATH 环境变量中有 CLASSPATH=.; 这是安装 JDK 时自动设置的,所以没出错,你也可以把 java.exe X 改成 java -cp . X 来运行。
humanity
2009-08-19
打赏
举报
回复
纠正拼写错误:
2.我们不用 eclipse,我们打开 cmd.exe 去 X.class 对应的目录,手工输入 java.exe X 来运行程序,注意,我没有给 -classpath,当然这个 Advice 类就在当前类路径中找不到,但是你会发现我的程序没有报告 ClassNotFoundException。
humanity
2009-08-19
打赏
举报
回复
楼主可能在看 JVM 相关的书籍,我猜测你的问题可以通过下面这个实验了解方向在哪儿,当然我是在猜测,不一定猜对了。
用下面这个类,楼主做个实验,按如下步骤:
1.先在 classpath 中添加 Advice 对应的 jar 包,让编译通过,当然我只是随便找一个类,你可以不用Advice而用任何在 JDK 中没有自带的类并且类路径中只包含这个对应的 jar 包,这一步你只要让程序编译通过就行了。
2.我们不用 eclipse,我们打开 cmd.exe 去 X.class 对应的目录,手工输入 java.exe -cp X 来运行程序,注意,我没有给 -classpath,当然这个 Advice 类就在当前类路径中找到,但是你会发现我的程序没有报告 ClassNotFoundException。
通过这个实验,我们证实了 JVM 规范里的一句话,当我们事实上没有用到一个类时 JVM 实现不必初始化这个类,但是你提前初始化也没关系,只不过有一点要注意,在事实上没有用到这个类时我们不能抛出因为用到这个类才会产生的异常,在我们例子,JVM 实现不能抛出 Advice ClassNotFoundException, 因为事实上并没有用到 Advice 类。
3.我们再把 X() 这个构造方法改成下面这个样子,然后再重复上面第1步和第2步来试试看结果是否不一样?
public X() {
System.out.println("Constructor");
advice = new Advice(){};
)
<我们先假设没有包名,这个不重要>
import org.aopalliance.aop.Advice;
public class X {
private Advice advice = null;
public static void hello() {
System.out.println("Hello");
}
public X() {
System.out.println("Constructor");
}
public static void main(String[] args) {
hello();
X x = new X();
}
}
woming66
2009-08-19
打赏
举报
回复
?没明白
bean
2009-08-19
打赏
举报
回复
我咋觉得这句话是错的呢,
python3 多重
继承
类
初始化
函数调用顺序 super解决重复
初始化
问题
(钻石
继承
)
本文探讨了Python3中多重
继承
的
类
初始化
函数调用顺序,特别是钻石
继承
结构下的
问题
。通过示例解释了如何使用super()方法避免子
类
重复
初始化
,有效地管理
类
层次结构。
python
类
继承
父
类
初始化
_python之子
类
继承
父
类
时进行
初始化
的一些
问题
本文介绍了Python中的
类
继承
机制,特别是如何正确地
初始化
子
类
和父
类
的构造方法。此外,还详细解释了如何在Python中实现私有属性和方法,包括如何在子
类
中访问这些私有成员。
类
继承
的
初始化
问题
本文详细解析了CompilerErrorC2614错误,即非法成员
初始化
:指定的
类
并非基
类
或成员。通过一个示例展示了如何避免此错误,强调只有成员或基
类
才能出现在
类
或结构体的
初始化
列表中。
问题
D:
类
及其
继承
类
的
初始化
这篇博客探讨了Java中
类
的
初始化
块、静态
初始化
块、构造方法以及它们在对象创建过程中的执行顺序。通过一个Father
类
和Son
类
的例子,展示了如何在Son
类
实例化时调用Father
类
的相关构造和
初始化
块,并输出相应的执行信息。
Java EE
67,535
社区成员
225,849
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章