using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 封装{ public class Person { //字段:存储数据 string _name; //类中的成员,如果不加访问修饰符,默认private int _age; char _gender; //属性:保护字段,对字段的取值和设置进行限定(get()和 set()) public string Name { get { return _name; } set { if ( value != "John") //在set中限定(姓名) { value="John"; } _name = value; } } public int Age { get { if (_age < 0 || _age > 100) //在get中限定(年龄) { return _age=0; } return _age; } set { _age = value; } } public char Gender { get { return _gender; } set { _gender = value; } } //方法:描述对象的行为 //实例方法: public void SayHello() { string Name = "Lucy"; int Age = 20; char Gender = '女'; //this作用1:代表当前类的对象 Console.WriteLine("{0},{1},{2}", this.Name, this.Age, this.Gender); Console.WriteLine("{0},{1},{2}", Name, Age, Gender); } //静态方法: public static void SayHello2() { Console.WriteLine("Hello 我是静态的"); } /* 构造函数: * 初始化对象(给对象的每个属性依次赋值) * 1、没有返回值,void也没有 * 2、构造函数的名称跟类名一样 */ public Person(string name, int age, char gender) { this.Name = name; this.Age = age; if (gender != '男' && gender != '女') //在构造函数中限定(性别) { gender = '男'; } this.Gender = gender; } //this作用2:调用当前类的构造函数 public Person(string name,char gender):this(name,0,gender) { } } }
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 封装{ class Program { static void Main(string[] args) { /* * new: * 1、在内存中开辟一块空间 * 2、在开辟的空间中创建对象 * 3、调用对象的构造函数 */ //调用非静态的方法:(先要实例化对象) Person zsPerson = new Person("张三",-19,'中'); zsPerson.SayHello(); //调用静态的方法:(类名.方法名) Person.SayHello2(); Console.ReadLine(); } }}