一、什么叫做面向对象封装?
封装的概念:隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读取和修改的访问级别。
二、面向对象封装有什么好处(为什么要封装)?
封装的目的:是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,以特定的访问权限来使用类的成员。
三、如何使用面向对象封装?
1、属性器 2、实例与静态方法 3、构造函数 4、重载 5、访问修饰符
1、常用访问修饰符的介绍
(1) public 该类的实例可以被任何其他类访问
(2) private 嵌套类,只能在定义它的类中使用
(3) protected 嵌套类,只能从定义它的类中和自此派生的类中使用
(4) internal 该类只能从同一个程序集的其他类中访问。这是嵌套类的默认访问方式。
2、属性器的定义和构造函数的定义
下面定义一个Person类!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Saiyan
{
public class Person
{
private string _name;
private int _age;
private string _sex;
public string Name
{
get { return _name; } //只读属性
}
public int Age
{
get { return _age; }
set { _age = value; } //可读可写
}
public string Sex
{
get { return _sex; }
set { _sex = value; } //可读可写
}
//1、类的构造函数
public Person() //不带参数的构造函数
{
}
public Person(int Age, string Sex) //带参数的构造函数
{
this._age = Age;
this._sex = Sex; //this就是该类的实例化
}
public static string SayHi() //2、静态方法
{
return "大家好";
}
public static string SayHi(string Name) //3、重载
{
return Name + "大家好";
}
public string SayGoodBye() //实例方法
{
return "再见";
}
}
}
类的属性器,方法,构造函数的使用。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Saiyan
{
class Program
{
static void Main(string[] args)
{
Person p = new Person(16, "男"); //带参数的构造函数的使用
p.Sex = "男"; // 属性器的使用
p.SayGoodBye();//实例方法的使用
Person.SayHi();//静态方法的使用
}
}
}
实例方法的使用需要实例化,静态方法的使用直接调用类的方法即可!
3、重载
概念:就是方法名称相同,参数不同的两个以上的方法叫做重载
优点:给类的使用者带来很大的方便!