C#——属性读写

来源:互联网 发布:北京通州淘宝运营培训 编辑:程序博客网 时间:2024/06/07 06:07
【前言】

C#是面向对象的一门语言,对象是实实在在存在的具体的特指的事物,他有本身的行为即属性,有他的动作操作即方法,把具有共同特征的对象进行抽象,就得到类。所以类是抽象的,对象是实际存在的,对象是类的实例化结果。

【内容】

思维导图:


1.类的组成包括字段,属性和方法。

字段:
为什么用private定义?

定义类的变量成员,描述对象的状态信息。
所以类的字段最好以私有的方式提供给类的外部,否则不适的操作将造成不必要的错误方式,破坏对象的状态信息,数据安全性和可靠性无法保证。所以字段用private定义。并且是不对外暴露,也就是说是私有或者是保护变量。

假如:给字段赋值:zsStu.age=800,显然张三的年龄不可能是800,这样存入数据库会破坏数据库的数据的完整性,如果随意改更会破坏数据的安全性。所以我们将字段定义为private。字段已经设为私有变量,那外部如何访问及对其操作?并且可以保证数据的完整性呢?所以要定义共有的属性,供外部访问。

属性:
定义一个public的变量,在这个方法中含有get/set方法。标明这个属性是可读还是可写。外部如果要操作(读、写)这些字段,需要通过对外暴露出来的属性(ID)的get(读)、set(写)操作。
作用:用public定义,供外部函数访问,这样可以保护私有的字段不被随意更改。

下面代码是在Person类中为私有变量age定义了共有属性Age.

当对属性Age赋值时,会自动调用set方法,当读取属性Age的值时,会自动调用get方法。
在get/set方法中也可以添加判断,保证读写的合法准确性。
<span style="font-family:SimSun;"> private int age;        public int Age        {            get            {                if (age >= 0 && age <= 150)                {                    return age;                }                else                {                    return 18;                }            }            //读值                        set            {                //age = 10;                //在写的里面判断                if (value >= 0 && value <= 150)                {                    age = value;                }                else                {                    age = 18;                }                age = value;            }//赋值</span>


方法:

方法是对象可以实现的操作。在定义的类中定义方法,可供外部的函数直接调用。

  //定义类的方法操作        public void SayHello()        {                        Console.WriteLine("hello,大家好,我是人,年龄是{0}",Age);        }        public void Walk()        {            Console.WriteLine("我走着呢");        }


缺点:

当我们访问类的属性的时候,需要多次赋值,出现了冗余的代码;当我们对zsStu.Age=-88,当对写入操作没有限制的时候,就破坏了数据的完整性,并且不安全。

 static void Main(string[] args)        {            student zsStu = new student();            zsStu.Name = "张三";            zsStu.Age = 18;            zsStu .Gender ='男';            zsStu .Chinese =90;            zsStu .Math =95;            zsStu .English =80;            zsStu .sayhello ();            zsStu .score ();            //冗余            Console.WriteLine("==============================");            student xlStu = new student();            xlStu.Name = "小兰";            xlStu.Age = 16;            xlStu.Gender = '女';            xlStu.Chinese = 95;            xlStu.Math = 85;            xlStu.English = 60;            xlStu.sayhello();            xlStu.score();            Console.ReadKey();        }


【总结】
试着用思维导图,这样条例很清晰,并且可以找到各部分之间的联系,会明白为什么要学习这块内容,就像为什么变量用private生命,而属性用public定义?以及属性的读写操作是怎么使用的。类只有实例化为对象之后才可以使用,类的字段是私有的变量,这时我们要想访问类就需要定义类的属性,为public.供外部的方法访问。



0 0