首页 > 代码库 > 面向对象 封装和继承
面向对象 封装和继承
今天,我主要学习了访问修饰符、类的封装性和继承性。
访问修饰符主要分为4个:
pubulc:公共的,只要引用了命名空间,就可以随意进行访问。
private:私有的,只有当前类内部才可以访问。
internal:内部的,当前程序集内可以访问,此修饰符是默认的。
protected:被保护的,当前类和它的子类才可以访问。
接下来,我学习了类的封装。
封装主要是指将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过 外部接口,以特定的访问权限来使用类的成员。这个概念就是“不要告诉我你是怎么做的,只要做就可以了。”
封装的原则是:1.把尽可能多的东西藏起来.对外提供简捷的接口。2.把所有的属性藏起来。
可以看到通过封装使一部分成员充当类与外部的接口,而将其他的成员隐蔽起来,这样就达到了对成员访问权限的合理控制,使不同类之间的相互影响减少到最低限度,进而增强数据的安全性和简化程序的编写工作。
封装的基本格式:
private int _Ids; - 私有的成员变量
public int Ids - 属性,封装基本结构
{
get{ return _Ids; }
set{ _Ids = value; }
}
注:一个成员变量可以有很多个属性;属性返回类型可以是任意类型,不是必须要与成员变量类型相同;属性可以是只读的,也可以是只写的,也可以两者都有。
例:把学生学号进行非空限制
private string _code;
public string code
{
get { return _code; }
set {
if (value =http://www.mamicode.com/="")
{
Console.WriteLine("学生编号不能为空!");
}
else
{
_code = value;
}
}
}
最后,我学习了类的继承。
子类可以继承父类所有的public方法和属性;父类不可以调用子类的方法和属性,哪怕是public的;子类可以转换成父类,转换成的这个父类也可以转换回相应子类;子类转换成父类,这个父类不可以转换成其它的子类。
继承可以使现有的代码具有可重用性和可扩展性。
任何一个类都可以派生出一个新类,派生类也可以再派生出新类,因此,基类和派生类是相对而言的。
两类关系
具体化
延续化
派生类
成员调整
重定义
面向对象 封装和继承