C# 封装
封装 被定义为"把一个或多个项目封闭在一个物理的或者逻辑的包中"。
C# 封装根据具体的需要,设置使用者的访问权限,并通过 访问修饰符 来实现。
一个 访问修饰符 定义了一个类成员的范围和可见性。C# 支持的访问修饰符如下所示:
public所有对象都可以访问;
Public 访问修饰符允许一个类将其成员变量和成员函数暴露给其他的函数和对象。任何公有成员可以被外部的类访问。
private:对象本身在对象内部可以访问;
Private 访问修饰符允许一个类将其成员变量和成员函数对其他的函数和对象进行隐藏。只有同一个类中的函数可以访问它的私有成员。即使是类的实例也不能访问它的私有成员。
protected:只有该类对象及其子类对象可以访问
Protected 访问修饰符允许子类访问它的基类的成员变量和成员函数。
internal:同一个程序集的对象可以访问;
Internal 访问说明符允许一个类将其成员变量和成员函数暴露给当前程序中的其他函数和对象。换句话说,带有 internal 访问修饰符的任何成员可以被定义在该成员所定义的应用程序内的任何类或方法访问。
protected internal:访问限于当前程序集或派生自包含类的类型。
Protected Internal 访问修饰符允许在本类,派生类或者包含该类的程序集中访问。这也被用于实现继承。
封装的快捷键: Ctrl + R + E
Child.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace LeiheDuixiang
{
/// <summary>
/// 小朋友
/// </summary>
class Child
{
//隐藏信息,private不能在类外进行访问
private string name; //字段
private string sex;
private int age;
private int height;
/// <summary>
/// 完成字段的对外访问接口
/// 属性,属性的名字首字母应该大写
/// </summary>
public string Name
{
get { return name; }//读访问器,返回字段的值
set { name = value; } //写访问器,给字段赋值
}
public string Sex
{
get { return sex; }
set { sex = value; }
}
public int Age
{
get { return age; }
set { age = value; }
}
public int Height
{
get { return height; }
set { height = value; }
}
public void PlayBall()
{
Console.WriteLine("Hello,我是帅哥");
}
}
}
Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace LeiheDuixiang
{
class Program
{
static void Main(string[] args)
{
Child xiaoming = new Child();//实例化了Child类的对对象
xiaoming.Name = "马晓明";
xiaoming.Sex = "男";
xiaoming.Age = 6;
xiaoming.Height = 120;
Console.WriteLine("我叫" + xiaoming.Name + "今年" + xiaoming.Age + "岁。");
xiaoming.PlayBall();
}
}
}