5类的属性和字段

字段

用于存储数据,一般在类中访问权限设置为private,仅在本类中可以访问,防止外界直接访问。

属性

属性的作用就是保护字段、对字段的赋值和取值进行限定。
外部需要访问或者设置字段的值都应该通过属性来设置或者访问,属性就是为了保护字段
属性的本质就是两个方法组成的(get,set)。
在属性的get里判断的是字段的值,在set里是判断value的值,如果属性有get和set我们称为可读可写属性,只有get我们称为只读属性

字段和属性一般都是搭配使用,格式如下:

 	private string _name;//姓名字段,字段 就是用来存数据的,属性是用来设置字段的访问或者修改权限的

        public string Name  //姓名 字段的属性
        {
            get { return _name; }
            set { _name = value; }

        }

get { return _name; } 的内部原理如下:

        public string get_Name()
        {
            return this._name;
        }

set { _name = value; }的 内部原理如下:

        public void set_Name(string value)
        {
            this._name = value;
        }

在外部实例化一个类的实例,在对属性赋值的时候,是通过属性的set方法来对字段进行设置的,而输出属性的时候是通过调用get方法来读取字段的值。

一般可以在属性的get或者set里做一些限定,防止错误数据存入字段。

比如:创建一个人的类

 private string _name;//姓名字段,字段 

        public string Name  //姓名 字段的属性
        {
            get { return _name; }
            set { _name = value; }

        }
		
		private int _age;//年龄字段

        public int Age//年龄字段的属性
        {
            get { return _age; }
            set//设置修改set的时候的权限
            {
                if (value < 0 || value > 100)
                {
                    value = 0;
                }

                _age = value;
            }
        }
		
		private char _sex;//性别字段

        public char Sex//性别字段的 属性
        {
            get//设置读取get的时候的权限
            {
                if (_sex != '男' && _sex != '女')
                {
                    _sex = '男';
                }
                return _sex;
            }
            set { _sex = value; }
        }
		
		//人的方法,吃喝拉撒睡
		public void CHLSS()
        {
            Console.WriteLine("我叫{0},我今年{1}岁了,我是{2}生,我会吃喝拉撒睡", this.Name, this.Age,this.Sex);
        }
		

在外面实例化一个对象的时候,即使年龄和性别乱写,也会有默认值

 Person Zhang = new Person();    //类的实例化

            Zhang.Name = "张三";  //对象的初始化
            Zhang.Age = -18;        //对象的初始化
            Zhang.Sex = '椿';
            Zhang.CHLSS();//输出结果;;我叫张三,我今年0岁了,我是男生,我会吃喝拉撒睡

在外面尽量使用属性来访问字段。

posted @ 2021-09-30 20:00  青仙  阅读(373)  评论(0编辑  收藏  举报