面向对象编程的三大特点:封装,继承,多态。
一、封装
封装就是把数据组合在一起,形成一个对象。将类封装了以后,对外提供可访问的属性和方法,外部对象通过这些属性和方法访问此对象的信息。
类是支持对象封装的工具,对象则是封装的基本单元。
封装的好处:
1、良好的封装能够减少耦合。
2、类内部的实现可以自由地更改。
3、类具有清晰的对外接口。
封装性主要由访问修饰符来控制。
在这里有五个访问修饰符,public,private,protected,internal,protected internal。
public是“公共”的意思,若被这个访问修饰符所修饰,那么它会被任何地方访问到。
private是“私有”的意思,被这个访问修饰符所修饰的只能在它所在的类中被访问。
protected是“保护”的意思,被这个访问修饰符修饰的只能在它所在的类及其子类中被访问。
internal是“内部”的意思,被这个访问修饰符修饰的只能在它所在的项目内部被访问。其他项目无法访问。
protected internal是“内部受保护”的意思,被这个访问修饰符修饰的只能在项目内该元素所在类及其子类中被访问。
私有等级:private>protected internal>protected>internal>public
枚举类型(enum)的默认修饰符为public,不可被其他访问修饰符修饰。
类中的字段,属性,方法等成员的默认修饰符为private可被其他任意修饰符修饰。
类(class)的默认修饰符为internal,可被其他任意修饰符修饰。
接口(interface)的默认修饰符为public,不可被其他修饰符修饰。
{关于接口}
//private interface Interface1错误在命名空间中定义的元素无法显式地声明为 private、protected 或 protected internal
//internal interface Interface1 Internal虽然可以修饰接口,但是不建议去用internal。因为我们的接口是要对外通信的,使用public以便于其他项目能够重复利用此接口的代码
public interface Internal1
{
//接口可以是方法、属性和事件,但是不能有任何成员变量,也不能在接口中实现接口成员。接口不能被实例化。接口的成员默认都是公共的,因此不允许成员加修饰符。
//void Interface() { }错误“面向对象篇.Internal1.Interface()”: 接口成员不能有定义
void Interface();
}
结构体(struct)的默认修饰符为private可被public,internal,private修饰。
public class ClassFather
{
private struct Date { public int day; public int month; public int year;};//结构成员默认为private,在声明结构体的时候对结构体内部元素前加上访问修饰符
//这是一个私有的字段,表明字段可以被private修饰
private int fieldPrivate;
//这是一个公有的属性,表示属性可以被public修饰
public int FieldPrivate
{
//这是属性的get方法,即取值方法,将私有字段fieldPrivate的值取出来。
get
{
return fieldPriv