封装:打包
可以把程序按某种规则分成很多“块“,块与块之间可能会有联系,每个块都有一个可变部分和一个稳定的部分。我们需要把可变的部分和稳定的部分分离出来,将稳定的部分 暴露给其他块,而将可变的部分隐藏起来,以便于随时可以让它修改。这项工作就是封装.
面向对象的封装就是把事物的状态和行为封装在类中,使用类的人不需要知道类内部是怎么实现的,只要调用其中的属性和方法实现功能就行。
类和对象本身就是封装的体现。
1.属性封装了字段、
2.方法的多个参数封装成了一个对象、
3.将一堆代码封装到了一个方法中、
4.将一些功能封装到了几个类中、
5.将一些具有相同功能的代码封装到了一个程序集中(dll、exe),并且对外提供统一的访问接口。(属性名、方法名等。)
1 namespace _01封装 2 { 3 class Program 4 { 5 static void Main(string[] args) 6 { 7 8 Person p = new Person(); 9 p.Name = "王宇"; 10 p.Age = 22; 11 p.Gender = "男"; 12 Show(p); 13 Console.ReadKey(); 14 } 15 /// <summary> 16 /// 方法的多个参数封装为一个对象 17 /// </summary> 18 /// <param name="p"></param> 19 public static void Show(Person p) 20 { 21 Console.WriteLine("name:{0},age:{1},gender:{2}", p.Name,p.Age,p.Gender); 22 } 23 } 24 public class Person 25 { 26 //属性封装字段 27 private string name; 28 29 public string Name 30 { 31 get { return name; } 32 set { name = value; } 33 } 34 private int age; 35 36 public int Age 37 { 38 get { return age; } 39 set { age = value; } 40 } 41 private string gender; 42 43 public string Gender 44 { 45 get { return gender; } 46 set { gender = value; } 47 } 48 } 49 }
1 namespace _03将多个参数封装到一个对象 2 { 3 public partial class Form1 : Form 4 { 5 public Form1() 6 { 7 InitializeComponent(); 8 } 9 10 private void Form1_Load(object sender, EventArgs e) 11 { 12 13 Prov p1 = new Prov(); 14 p1.Name = "山东"; 15 p1.Id = 1; 16 Prov p2 = new Prov(); 17 p2.Name = "广州"; 18 p2.Id = 2; 19 Prov p3 = new Prov(); 20 p3.Name = "河南"; 21 p3.Id = 3; 22 cob.Items.Add(p1); 23 cob.Items.Add(p2); 24 cob.Items.Add(p3); 25 cob.DropDownStyle = ComboBoxStyle.DropDownList; 26 cob.SelectedIndex = 0; 27 } 28 29 private void btnResult_Click(object sender, EventArgs e) 30 { 31 Prov p = (Prov)cob.SelectedItem; 32 MessageBox.Show(p.Name + "---" + p.Id); 33 } 34 } 35 36 } 37 class Prov 38 { 39 private string name; 40 41 public string Name 42 { 43 get { return name; } 44 set { name = value; } 45 } 46 private int id; 47 48 public int Id 49 { 50 get { return id; } 51 set { id = value; } 52 } 53 public override string ToString() 54 { 55 return Name; 56 } 57 }