JavaSE:3min讲解成员内部类的常见修饰符

今天我们花3min学习一下成员内部类的常见修饰符,通过private确保数据的安全性,通过static确保访问的方便性。

有了之前的基础,我们先学习private修饰内部类,现在先定义身体类和他的内部类心脏类,显然内部类心脏是不能随便让外部访问的,因此我们将其定义为私有。

class Body{
	private class Heart{
		public void operator(){
			System.out.println("心脏搭桥手术.");
		}
	}
···

那么私有后我们如何从外部调用他的operator方法呢?我们可以在其内部在定义一个method方法,在method方法中可以进一步校验是否符合条件,从而确保了数据的安全性。

class Body{
	//一般内部类不让外界直接访问
	//private 为了数据的安全性
	private class Heart{
		public void operator(){
			System.out.println("心脏搭桥手术.");
		}
	}
	
	public void method(){
		//if 校验
		Heart h = new Heart();
		h.operator();
	}
···	

接下来我们在main中调用:

	public static void main(String[] args) {
		Body b = new Body();
		b.method();
···

输出:

心脏搭桥手术.


接下来我们学习static修饰内部类,

我们定义一个静态成员numStatic和一个静态内部类HeartStatic以及它的静态方法showStatic:

	static int numStatic = 1;
	
	//内部类 static 外部类的成员
	//static 为了访问的方便性
	public static class HeartStatic{
		public static void showStatic(){
			System.out.println(numStatic);
		}
	}

然后我们先通过常规方法在main中调用showStatic:

		//外部类名.内部类名 对象名 = new 外部类名.内部类名();
		Body.HeartStatic heartStatic = new Body.HeartStatic();
		heartStatic.showStatic();

但是,它可是static,必须要有不一样的地方,还真有:

		Body.HeartStatic.showStatic();

都能成功输出:

1


内部类用 static 修饰,可看成是外部类的成员,static 确保了访问的方便性。


ps:

成员内部类不是静态的:
外部类名.内部类名 对象名 = new 外部类名.new 内部类名();
成员内部类是静态的:
外部类名.内部类名 对象名 = new 外部类名.内部类名();
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值