我知道get set的作用这是属性,get具有读取功能,set是写入功能,你可以看C#里的属性。1.作用就是对字段进行封装,类似javabean的用途。没有也可以,但是破坏了OO的封装性。 2.如果只有get和set其中之一的方法的话就实现了对字段的保护。只读或者只写。
get/set为获取或者设置类中的属性 比如: private int _count; 定义私有变量 public int Count 设置类中的变量(数据字段)属性 { set { //value是属性中的关键字 //代表你传入的值 this._count=value; } get { return this._count; } } 可以在属性中做验证或者通过属性对某个属性进行保护..........但是有的程序里 private string strName; public string StrName { get { return strName; } set { strName = value; } }这个get set段里,也没有判断 过滤什么的!get只是取出strName的值set只是设置strName的值这和public string strName;有什么区别?还是为了以后修改做准备?这里在属性声明中要用到的: 如: class ClassA { private int _a; public A(int a) { this._a = a; } public int A { get { return this._a; } set { this._a = value; } } } 在类ClassA里面有一个私有的变量_a,我们通过声明属性A,用GET来返回_a的值,用隐藏参数value来为_a赋值,这样就可以实现外部成员对其值的获取(int val = ClassA.A;)和赋值(ClassA.A = 1;)操作了. 当get和set同时存在时表示这个属性是可写可读的,当然也可以只存在get也就是说只能访问而不能更改其值,如果只存在set那么就刚好相反只能对其进行赋值操作了. 同果我们也可以通过属性来增加一层逻辑,比如说我们有优秀学员的类,其分数必需大于60分,那么我们可以在set下面加一层限制 public int A { get { return this._a; } set { if(value >= 60) this._a = value; } }
.............................
这是C#中的属性 public string UserName { get { return this._username; } set { this._username = value; } } 通俗来讲..get是获取值 set是设置值 比如这句:get { return this._username; } 如果调用这个get方法 就能获得方法return的 this._username(返回的值) 调用方法:Console.Write(对象.UserName);(输出该属性的值) 比如这句:set { this._username = value; } 如果调用这个set方法 就可以重新设置username的值 value就是你新设置的值 调用方法:对象.UserName="新值";(为该属性附新值) 个人理解: 1.在封装数据库字段的时候非常有用,相信大家都这么用。 2.你可以吧UserName当成一个这个类的一个属性,这个属性由字段_username的值确定,也可能不是_username,而是经过_username变化的。你可以在GET、SET中作相应的处理。比如这样: public string UserName { get { if(string.IsNullOrEmpty(_username)) return ERRORCODE; return this._username; } set { if(string.IsNullOrEmpty(_username)) this._username = defaultusername; this._username = value; } } 所以,封装以后,比没有封装更加方便。如果你要做条件判断、转换等 操作,在GET、SET你做会更方便。而且还保护了原字段。 假设_username是数据库字段,如果程序员不想公开这个属性,而是做一些变换,这样数据安全性更高。
............