【Java练习题】Java 程序的输出 | 第十四套(构造函数)

2,959 阅读4分钟

这是我参与8月更文挑战的第16天,活动详情查看:8月更文挑战

难度级别: 简单

程序

程序一

1) 以下程序的输出是什么?

class Helper
{
	private int data;
	private Helper()
	{
		data = 5;
	}
}
public class Test
{
	public static void main(String[] args)
	{
		Helper help = new Helper();
		System.out.println(help.data);
	}
}

a) 编译错误
b) 5
c) 运行时错误
d) 这些都不是

点此跳转到答案


程序二

2) 以下程序的输出是什么?

public class Test implements Runnable
{
	public void run()
	{
		System.out.printf(" 线程正在运行 ");
	}

	try
	{
		public Test()
		{
			Thread.sleep(5000);
		}
	}
	catch (InterruptedException e)
	{
		e.printStackTrace();
	}
	
	public static void main(String[] args)
	{
		Test obj = new Test();
		Thread thread = new Thread(obj);
		thread.start();
		System.out.printf(" juejin ");
	}
}

a) juejin 线程正在运行
b) 线程正在运行 juejin
c) 编译错误
d) 运行时间错误

点此跳转到答案


程序三

3) 以下程序的输出是什么?

class Temp
{
	private Temp(int data)
	{
		System.out.printf("构造函数调用");
	}
	protected static Temp create(int data)
	{
		Temp obj = new Temp(data);
		return obj;
	}
	public void myMethod()
	{
		System.out.printf("方法调用");
	}
}

public class Test
{
	public static void main(String[] args)
	{
		Temp obj = Temp.create(20);
		obj.myMethod();
	}
}

a) 构造函数调用方法调用
b) 编译错误
c) 运行时错误
d) 以上都不是

点此跳转到答案


程序四

4) 以下程序的输出是什么?

public class Test
{
	public Test()
	{
		System.out.printf("1");
		new Test(10);
		System.out.printf("5");
	}
	public Test(int temp)
	{
		System.out.printf("2");
		new Test(10, 20);
		System.out.printf("4");
	}
	public Test(int data, int temp)
	{
		System.out.printf("3");
		
	}
	
	public static void main(String[] args)
	{
		Test obj = new Test();
		
	}
	
}

a) 12345
b) 编译错误
c) 15
d) 运行时错误

点此跳转到答案


程序五

5) 以下程序的输出是什么?

class Base
{
	public static String s = "超类";
	public Base()
	{
		System.out.printf("1");
	}
}
public class Derived extends Base
{
	public Derived()
	{
		System.out.printf("2");
		super();
	}
	
	public static void main(String[] args)
	{
		Derived obj = new Derived();
		System.out.printf(s);
	}
}

a) 21超类
b) 超类 21
c) 编译错误
d) 12超类

点此跳转到答案


文章后半部分是程序的输出及解析

ef0db78e99c84c19ec33f6497895ccec.jpg


输出及解析

程序一输出

答案

(a)

说明

私有构造函数]不能被用来初始化类之外的对象,它是内,因为它已不再是可见的外部类中定义。


程序二输出

答案

(C)

说明

构造函数不能包含在 try/catch 块中。


程序三输出

答案

(a)

说明

当构造函数被标记为私有时,从某个外部类创建该类的新对象的唯一方法是使用创建新对象的方法,如上面程序中定义的那样。方法 create() 负责从其他一些外部类创建 Temp 对象。一旦创建了对象,就可以从创建对象的类中调用它的方法。


程序四答案

回答 :

(a)

说明

构造函数可以链接和重载。当调用 Test() 时,它会创建另一个调用构造函数 Test(int temp) 的 Test 对象。


程序五答案

回答 :

(c)

说明:

对超类的构造函数调用必须是派生类的构造函数中的第一条语句。


以上就是本篇文章的所有内容了

相关文章:

【Java练习题】Java程序的输出 | 第一套(含解析)
【Java练习题】Java程序的输出 | 第二套(含解析)
【Java练习题】Java程序的输出 | 第三套(含解析)
【Java练习题】Java程序的输出 | 第四套(含解析)
【Java练习题】Java程序的输出 | 第五套(含解析)
【Java练习题】Java程序的输出 | 第六套(含解析)
【Java练习题】Java程序的输出 | 第七套(含解析)
【Java练习题】Java程序的输出 | 第八套(含解析)
【Java练习题】Java程序的输出 | 第九套(含解析)
【Java练习题】Java 程序的输出 | 第十套(垃圾回收)
【Java练习题】Java 程序的输出 | 第十一套(含解析)
【Java练习题】Java 程序的输出 | 第十二套(含解析)
【Java练习题】Java 程序的输出 | 第十三套(集合)

我已经写了很长一段时间的技术博客,这是我的一篇技术文章/教程。希望你们会喜欢!这里汇总了我的全部原创及作品源码:GitHub,还有这是我最近刚搭建的博客:haiyong.site,里面还没啥内容,放了一些HTML小游戏,有兴趣的可以尝试一下,源码可以自己F12复制,或者直接找我要。

如果你真的从这篇文章中学到了一些新东西,喜欢它,收藏它并与你的小伙伴分享。🤗最后,不要忘了❤或📑支持一下哦。