c#入门-嵌套类

嵌套类

类也可以声明在其他的类中,这称为嵌套类。
(不能在函数内再声明类,不存在局部类)

public class 弓箭手
{
	public int hp;
	public 弓箭 武器;
	public 护甲 防具;

	public class 弓箭
	{
		public int atk;
	}
}
public class 护甲
{
	public int def;
}

声明为嵌套类,通常意味着只有这个类会使用他。
例如,火枪手和骑士都会装备护甲,但除了弓箭手不会再有人使用弓箭了。

外部使用嵌套类

嵌套类也是类成员,默认访问权限为private。要想让外部访问首先要更改访问权限。
然后,使用嵌套类需要把他的声明类写全。

弓箭手.弓箭 a = new 弓箭手.弓箭();

声明类不是命名空间,无法通过引用命名空间的方式来省略此步骤。

嵌套类对声明类的访问权限

嵌套类作为声明类的成员,也具有声明类完全的访问权限。即便是private成员。

public class 弓箭手
{
	private int hp;
	private 弓箭 武器;
	private 护甲 防具;

	public class 弓箭
	{
		public int atk;
		public void 治疗祝福(弓箭手 主人)
		{
			主人.hp += 10;
			主人.武器.atk -= 2;
		}
	}
}

但只能访问直属的声明类,因为成员的所属类只能有一个。

此外,声明类也不能直接访问嵌套类的成员。
因为只有嵌套类本身是他的成员,他可以访问private的嵌套类。
但嵌套类的成员不是声明类的成员,和声明类没有关系。
(我附庸的附庸不是我的附庸)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值