从头认识java-8.5 在方法和作用域里的内部类

这一章节我们来聊一下在方法和作用域里的内部类。

1.为什么需要在方法和作用域里的内部类?

(1)隐藏代码。

(2)处理复杂的问题,需要辅助类。

package com.ray.ch10;

public class Test {
	{
		class PDestination {
		}
	}

	public Destination test() {
		class PDestination implements Destination {

			private String target = "abc";

			@Override
			public String read() {
				return target;
			}
		}
		return new PDestination();
	}

	public static void main(String[] args) {

	}
}

interface Destination {
	String read();
}

上面的代码就是在方法里面加上一个类来辅助这个方法。


2.特性

(1)可以放在代码里面的任意地方。

package com.ray.ch10;

public class Test {
	{
		class PDestination {
		}
	}

	public Destination test() {
		Destination destination = null;
		if (true) {
			class PDestination implements Destination {

				private String target = "abc";

				@Override
				public String read() {
					return target;
				}
			}
			destination = new PDestination();
		}
		return destination;
	}

	public static void main(String[] args) {

	}
}

interface Destination {
	String read();
}

我们修改一下上面的代码,把class放到了if里面去,只有某些条件成立,才执行class里面的东西。


(2)在方法或者作用域这些地方放置类,是不影响外部类的命名。

从上面的代码可以看见,在代码块里面和方法里面的类的名称都是相同的,大家之间毫不影响。

因为PDestination都只是在各自的作用域里面起作用。到了外部,就没有这个类了。


(3)更加能够隐藏代码的实现。

在方法或者作用域里面,只能是里面的代码能够读取或者执行这个内部类,其他所有的地方都不可以。


总结:这一章节主要讲述了为什么需要在方法和作用域里的内部类,和这些内部类的一些特性。


这一章节就到这里,谢谢。

-----------------------------------

目录


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值