`
tanzek
  • 浏览: 52963 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

一个Java问题贴子

阅读更多

[问题引出]:

public class Parent
{
	public void test()
	{}
	
	public Parent()
	{
		test();
	}
	
	public static void main(String [] args)
	{
		new Child();
	}
}

class Child extends Parent
{
	private int instanceValue = 20;
	
	public void test()
	{
		System.out.println("instance value is: " + instanceValue);
	}
}

执行Parent的main结果是什么,并说出理由

[回复]:
我试着分析下哦:

很显然,程序是从Main开始执行的,不过执行之前肯定是装载了Parent类的.
当执行new Child();语句时,肯定也会去装载Child类(记住,这是只是装载,装载的同时会完成类的静态成员的初始化工作).这里是请求创建Child的实例,因为Child是Parent的子类,那么肯定是要去先去创建Parent的一个实例的,那么在这个过程中,就会执行了Child的覆盖方法test(),这时,子类中的instanceValue还没有被赋值.因为这时候还没有进行Child的实例创建.
看一下我加入一些状态的程序和执行结果哦.
程序清单:

public class Parent 
{ 
	public void test() { 
		System.out.println("In Parent Class."); 
	} 

	public Parent() { 
		System.out.println("In Parent Constructor"); 
		test(); 
	} 

	public static void main(String [] args) { 
		System.out.println("In Main Function."); 
		new Child(); 
	} 
} 

class Child extends Parent { 
	private int instanceValue = 20; 

	public void test() { 
		System.out.println("In Child Class."); 
		System.out.println("instance value is: " + this.instanceValue); 
	} 
	
	public Child() { 
		System.out.println("In Child Constructor."); 
	} 
}
执行结果(主要是看执行顺序哦):
In Main Function.
In Parent Constructor
In Child Class.
instance value is: 0
In Child Constructor.

嘿嘿,应该懂了吧!~ 你可以试着把instanceValue的修饰符改为static试试哦.

分享到:
评论

相关推荐

    锦集499篇关于java学习的帖子

    此外,这些帖子可能还会涵盖实战项目,例如构建一个简单的Web应用、实现一个数据库管理系统或者参与开源项目。通过实践,学习者能更好地理解如何将理论应用于实际开发中,从而提升解决问题的能力。 对于Java开发者...

    我的第一个Java程序

    【标题】:“我的第一个Java程序” 在编程世界中,编写“我的第一个程序”通常是学习新语言的第一步。Java,作为一种广泛使用的面向对象编程语言,也不例外。这个标题“我的第一个Java程序”暗示了我们即将探讨的是...

    有java 开发的一个BBS论坛实例

    本实例中的"有java 开发的一个BBS论坛实例"是一个完整的BBS(Bulletin Board System,电子公告板)源代码,它展示了如何使用Java Web技术来创建一个功能完备的在线讨论平台。下面将详细介绍这个实例涉及的主要知识点...

    一个java的开源bbs

    【标题】:“一个Java的开源BBS” 【描述】:“一个Java的开源BBS,对于想要学习Java的人来说非常不错,采用SSH架构,简单易懂。” 【标签】:Java、BBS、SSH 在这个项目中,我们关注的是一个基于Java语言开发的...

    一个java写的简单bbs

    项目核心是利用Java语言,结合JSP(JavaServer Pages)、JSTL(JavaServer Pages Standard Tag Library)、Servlet和Filter等技术来构建一个基本的在线讨论板。 1. **JSP(JavaServer Pages)**:JSP是Java平台上的...

    java编写bbs源码

    通过深入研究这个名为 "FlyBBS" 的压缩包,你可以了解到如何使用 Java 语言构建一个功能完备的在线论坛系统,同时也能学习到 Web 开发中的一些核心技术和最佳实践。这对于提升你的 Java Web 开发技能是非常有价值的...

    BBS.rar_BBS java_新建帖子

    "BBS.rar_BBS java_新建帖子" 提供了一个基于Java技术实现的简单论坛系统,该系统涵盖了基本的帖子管理功能,包括回复帖子、新建帖子、删除帖子和修改帖子。下面将详细解释这些知识点。 1. **BBS(Bulletin Board ...

    java开源包6

    Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...

    java 论坛 项目中用过

    首先,`jsprun.jsp` 文件很可能是论坛中的一个关键页面,可能是用户论坛首页或者帖子详情页。JSP是Java Web开发中用于创建动态网页的工具,它将HTML代码与Java代码结合在一起,使得服务器端能够处理数据并返回给...

    java开源包9

    Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...

    java开源包101

    Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...

    java开源包4

    Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...

    java编写的一个简单bbs网站完整代码

    这是一个基于Java技术构建的简单BBS(Bulletin Board System,电子公告板)网站的完整源代码。这个项目非常适合Java初学者进行学习和研究,虽然注释可能不多,但是基础功能完善,便于理解。以下是对这个BBS网站源码...

    java开源包5

    Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...

    Java典型应用彻查1000例第一卷:Java入门(源码.PPT.习题)

    1. "Java500_.chm" 可能是一个包含了500个Java编程问题及其解答的合集,这将帮助你巩固和扩展你的Java知识库。 2. "Java编程思想第四版完整中文高清版(免费).pdf" 是上述提及的权威教材的电子版,便于随时查阅和学习...

    java开源包8

    Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...

    java论坛经典整理

    在Java这个广受欢迎的编程语言领域,论坛是一个充满活力的学习和交流平台,众多开发者在此分享经验、探讨技术问题。"java论坛经典整理"这个压缩包文件显然汇集了论坛中的精华内容,旨在为学习和研究Java的朋友们提供...

    java开源包10

    Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...

    Java版精华帖java讨论

    - Java认证是衡量开发者技术水平的一种方式,主要包括Oracle Certified Associate (OCA), Oracle Certified Professional (OCP),以及更高级别的Oracle Certified Master (OCM)。 - 考试内容包括Java语法、面向...

Global site tag (gtag.js) - Google Analytics