【Java练习题】Java程序的输出 | 第十五套(内部类)

1,670 阅读4分钟

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

难度级别: 困难

程序

程序一

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

public class Outer
{
	public static int temp1 = 1;
	private static int temp2 = 2;
	public int temp3 = 3;
	private int temp4 = 4;
	
	public static class Inner
	{
		private static int temp5 = 5;
		
		private static int getSum()
		{
			return (temp1 + temp2 + temp3 + temp4 + temp5);
		}
	}
	
	public static void main(String[] args)
	{
		Outer.Inner obj = new Outer.Inner();
		System.out.println(obj.getSum());
	}
	
}

a) 15
b) 9
c) 5
d) 编译错误

点此跳转到答案


程序二

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

public class Outer
{
	private static int data = 10;
	private static int LocalClass()
	{
		class Inner
		{
			public int data = 20;
			private int getData()
			{
				return data;
			}
		};
		Inner inner = new Inner();
		return inner.getData();
	}
	
	public static void main(String[] args)
	{
		System.out.println(data * LocalClass());
	}
}

a) 编译错误
b) 运行时错误
c) 200
d) 以上都不是

点此跳转到答案


程序三

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

interface Anonymous
{
	public int getValue();
}
public class Outer
{
	private int data = 15;
	public static void main(String[] args)
	{
		Anonymous inner = new Anonymous()
				{
					int data = 5;
					public int getValue()
					{
						return data;
					}
					public int getData()
					{
						return data;
					}
				};
		Outer outer = new Outer();
		System.out.println(inner.getValue() + inner.getData() + outer.data);
	}
}

a) 25
b) 编译错误
c) 20
d) 运行时错误

点此跳转到答案


程序四

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

public class Outer
{
	private int data = 10;
	
	class Inner
	{
		private int data = 20;
		private int getData()
		{
			return data;
		}
		public void main(String[] args)
		{
			Inner inner = new Inner();
			System.out.println(inner.getData());
			
		}
	}
	private int getData()
	{
		return data;
	}
	public static void main(String[] args)
	{
		Outer outer = new Outer();
		Outer.Inner inner = outer.new Inner();
		System.out.printf("%d", outer.getData());
		inner.main(args);
	}
}

a) 2010
b) 1020
c) 编译错误
d) 这些都不是

点此跳转到答案


程序五

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

interface OuterInterface
{
	public void InnerMethod();
	public interface InnerInterface
	{
		public void InnerMethod();
	}
}
public class Outer implements OuterInterface.InnerInterface, OuterInterface
{
	public void InnerMethod()
	{
		System.out.println(100);
	}
	
	
	public static void main(String[] args)
	{
		Outer obj = new Outer();
		obj.InnerMethod();
	}
}

a) 100
b) 编译错误
c) 运行时错误
d) 以上都不是

点此跳转到答案


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

f5366b0c39333abddb209c05bfb329f4.jpg


输出及解析

程序一输出

答案

(d)

说明

静态内部类不能访问外部类的非静态字段。


程序二输出

答案

(C)

说明

LocalClass() 方法定义了一个局部内部类。此方法创建类 Inner 的对象并返回驻留在其中的变量数据的值。


程序三输出

答案

(b)

说明

方法 getData() 在 Anonymous 类中未定义,导致编译错误。


程序四答案

回答 :

(b)

说明

上面定义的内部类虽然可以访问外部类的私有变量数据,但是在内部类中声明变量数据使其特定于内部类,在变量声明方面没有冲突。


程序五答案

回答 :

(a)

说明:

嵌套接口是在java中定义的。由于两个接口都有 InnerMethod() 的声明,因此实现它一次对 InnerInterface 和 OuterInterface 都有效。


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

相关文章:

【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 程序的输出 | 第十三套(集合)
【Java练习题】Java 程序的输出 | 第十四套(构造函数)

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

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