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

这是我参与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复制,或者直接找我要。

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

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享