【Java练习题】Java程序的输出 | 第六套(含解析)

举报
海拥 发表于 2022/03/21 17:30:38 2022/03/21
【摘要】 面向对象与面向过程相信很多Java开发者,在最初接触Java的时候就听说过,Java是一种面向对象的开发语言,那么什么是面向对象呢?面向对象编程(OOP: object-oriented programming)首先,面向对象就是:把数据及对数据的操作方法放在一起,作为一个相互依存的整体——对象。对同类对象抽象出其共性,形成类。类中的大多数数据,只能用本类的方法进行处理。类通过一个简单的外...

难度等级: 中等

预测以下 Java 程序的输出:

问题一

class First
{
	public First() { System.out.println("a"); }
}

class Second extends First
{
	public Second() { System.out.println("b"); }
}

class Third extends Second
{
	public Third() { System.out.println("c"); }
}

public class MainClass
{
	public static void main(String[] args)
	{
		Third c = new Third();
	}
}

点此跳转到答案


问题二

class First
{
	int i = 10;

	public First(int j)
	{
		System.out.println(i);
		this.i = j * 10;
	}
}

class Second extends First
{
	public Second(int j)
	{
		super(j);
		System.out.println(i);
		this.i = j * 20;
	}
}

public class MainClass
{
	public static void main(String[] args)
	{
		Second n = new Second(20);
		System.out.println(n.i);
	}
}

点此跳转到答案


问题三

import java.util.*;
class I
{
	public static void main (String[] args)
	{
		Object i = new ArrayList().iterator();
		System.out.print((i instanceof List) + ", ");
		System.out.print((i instanceof Iterator) + ", ");
		System.out.print(i instanceof ListIterator);
	}
}

点此跳转到答案


问题四

class ThreadEx extends Thread
{
	public void run()
	{
		System.out.print("Hello...");
	}
	public static void main(String args[])
	{
		ThreadEx T1 = new ThreadEx();
		T1.start();
		T1.stop();
		T1.start();
	}
}

点此跳转到答案


放张可爱妹子的图缓解一下眼睛疲劳,文章后半部分是程序的输出及解析

9992fc8fbcb7d37eac355b3c01f68bb3.jpg


输出及解析

问题一答案

输出:

a
b
c

说明:创建一个新的’Third’类型的对象时,在调用Third类的默认构造函数之前,先调用超类的默认构造函数,即Second class,然后在超类的默认构造函数,First class的默认构造函数之前再次调用叫做。因此给出这样的输出。

问题二答案

输出:

10 
200 
400

说明:由于在 ‘Second’ 类中它没有自己的 ‘i’,该变量是从超类继承的。此外,当我们创建 Second 的对象时,会调用 parent 的构造函数。

问题三答案

输出:

false, true, false

说明:iterator() 方法以适当的顺序返回对列表中元素的迭代器,它不返回 List 或 ListIterator 对象。ListIterator 可以通过调用 listIterator 方法获得。

问题四答案

输出:
Run Time Exception

说明:
线程“main”中的异常 java.lang.IllegalThreadStateException at java.lang.Thread.start
线程不能启动两次。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。