C# 类的属性、对象

写好类后,需要创建对象,给类创建对象,称为类的初始化; 给对象(属性)赋值,称为对象的初始化。

类由字段(Field)、属性(Properity)、方法(Method)组成


属性的本质是两个方法:set() 和get() 

属性的作用就是保护字段,对字段的赋值和取值进行判定

可读可写属性指的是两种方法(get()  and set())都包括;

只有get() 称之为可读属性;只有set()称之为可写属性。


字段私有,赋值是给属性赋值

set给属性赋值(value--->属性),get赋值给字段(属性值--->字段)。  

整个过程属性没有赋值,起到了中间的作用(相当于访问不到字段,将字段保护起来)。

属性由两个方法组成:set () and get()

private string    _name;
public string   Name
{
get { return  _name;}  // 当输出属性的值时,会执行get;返回字段的值,可以进行判断字段;
set { _name=value;}  // 当给属性赋值时,会执行set;属性的值----->赋值给字段,可以进行判断value;
}
其中:
st.Name="hello" ;    // 初始化时,执行的是set方法,这里相当于value为"hello"
Console.WriteLine(" {0}", this.Name);  //  这时候执行的是get方法,通过调用Name属性,调用字段_name;
Console.WriteLine("{0}",this._name);  // 这时候执行的是set方法,没有执行get方法,直接通过将属性的值赋值给字段,调用字段。若get中进行了限定,则不会发生改变。

举例

namespace demo1
{
    class Program
    {
        static void Main(string[] args)
        {
            Object_Person person1=new Object_Person() ;

            person1.Name = "Sasu";  // 给属性赋值相当于给字段赋值,属性不赋值,只起到了中间的作用。
            person1.Home="China";
            person1.Gender='男';
            person1.Age =12;
            person1.ShowDetail();
            Console.ReadLine();
        }
    }
}

namespace demo1
{
    class Object_Person
    {
        private string  _name;     //这里的访问修饰符private,可以不加,若不加的话,默认也为private。只要当前类可以访问。字段不可以直接访问,利用访问属性来处理。
        public string Name  // 所以,每个字段都应该有属性
        {
            get { return _name;}
            set{ // 在set中进行限定,在赋值时进行判断。
                if (value == "")
                    _name = "空";
                else
                  _name=value;
            }
        }
        int  _age;
        public int Age
        {
            set {_age=value;}
            get {
                if (_age < 0 || _age > 100)  // 在get中进行限定,在输出时进行判断
                    _age = 0;
                return _age; }
        }
        private string  _home;
        public string Home
        {
            get { return _home; }
            set { _home = value; }
        }
        private char  _gender;
        public char Gender
        {
            set { _gender = value; }
            get { return _gender; }
        }
        public  void ShowDetail()
        {
            Console.WriteLine("The imformation is:Name is {0},Home is {1},Gender is{2},Age is {3}",   //C#中随便换行输入
                this.Name,this.Home,this.Gender,this.Age);// 这里的打印执行的是属性。
        }
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一枚努力的程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值