java学习——关于java课件上动手动脑问题简单的分析
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java学习——关于java课件上动手动脑问题简单的分析,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2226字,纯文字阅读大概需要4分钟。
内容图文
![java学习——关于java课件上动手动脑问题简单的分析](/upload/InfoBanner/zyjiaocheng/850/df957421e1a84cb09939fa80a49f8eae.jpg)
问题一:关于以下的代码为什么会产生错误的问题的简单分析、
第一个动手动脑提供了一下的代码,可以发现,在Foo的这个类中只定义了一个Foo(int)类型的构造函数,在之前的学习工程中,我们并没有接触到java的构造函数的声明过程,因此,在类中没有书写构造函数的方法的时候,编译器默认继承Object类,并在编译的时候会产生一个参数为空的构造函数,然而在定义的Foo这个类的时候,给予了一个Foo(int)类型的构造方法,所以在上述Test的调用过程中,obj1并不能够调用到new Foo()这个构造函数的方法。
问题二:
TestStaticInitializeBlock.java的代码如下所示:
class Root { static{ System.out.println("Root的静态初始化块"); } { System.out.println("Root的普通初始化块"); } public Root() { System.out.println("Root的无参数的构造器"); } } class Mid extends Root { static{ System.out.println("Mid的静态初始化块"); } { System.out.println("Mid的普通初始化块"); } public Mid() { System.out.println("Mid的无参数的构造器"); } public Mid(String msg) { //通过this调用同一类中重载的构造器 this(); System.out.println("Mid的带参数构造器,其参数值:" + msg); } } class Leaf extends Mid { static{ System.out.println("Leaf的静态初始化块"); } { System.out.println("Leaf的普通初始化块"); } public Leaf() { //通过super调用父类中有一个字符串参数的构造器 super("Java初始化顺序演示"); System.out.println("执行Leaf的构造器"); } } public class TestStaticInitializeBlock { public static void main(String[] args) { new Leaf(); } }
其运行结果如下所示:
通过上面的实验可以看到,调用一个类的构造方法,会首先从最开始的子类往基类方向执行,并且最开始的执行的初始化块总是静态的,并且在执行完静态的初始化块之后,又从子类开始按普通,无参,有参的顺序开始往基类方向执行。
问题三:
题目要求根据以上的代码,及其下面所提供的代码,测试实验并得出结论。
综合上面的代码:
package firsttest; public class Test { public static void main(String[] args) { InitializeBlockClass obj=new InitializeBlockClass(); System.out.println(obj.field);//? obj=new InitializeBlockClass(300); System.out.println(obj.field);//? } } class InitializeBlockClass { { field=200; } public int field=100; public InitializeBlockClass(int value) { this.field=value; } public InitializeBlockClass() { } }
得出以下的测试结果。
通过结果可以得出以下的结论:
当存在初始化块和初始化值的时候,初始化值是变量最终的结果。
当初始化块,初始化值,还有一个构造函数可以设置变量的值的时候,构造函数中的值将是变量的值。
内容总结
以上是互联网集市为您收集整理的java学习——关于java课件上动手动脑问题简单的分析全部内容,希望文章能够帮你解决java学习——关于java课件上动手动脑问题简单的分析所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。