課程
/后端開發(fā)
/C#
/用C#實現(xiàn)封裝
比方說上面的性別,怎么寫代碼能讓Main里賦值一次后就不允許第二次賦值或第二次無效
就像已經被賦值為男,下面在給同一個人賦值為女,下面的這個賦值命令無效
2018-10-24
源自:用C#實現(xiàn)封裝 2-4
正在回答
將屬性設置為私有變量,然后只聲明公有get方法,然后通過設置一個有參的構造方法,將你要設置的屬性值在構造方法中賦值,這樣在外部類訪問的時候只能賦值一次且不可修改,可以通過公有的訪問器方法獲取屬性值
我簡寫一點代碼示例
前面頭部和命名空間我省略
class Child{
? private string name;
? private char sex;
? public Childern(string name,char sex){
? ? this.name = name;//將傳進來的值賦值給當前對象
? ? this.sex = sex;
? }
? public string Name{
? ? get {return name;}//只聲明get訪問器,不要聲明set訪問器
? public char getSex(){
? ? get{return sex;}//只聲明get訪問器,不要聲明set訪問器
}
這樣你在其他的類中創(chuàng)建該對象時只有一次賦值操作,但是你要是在Child中寫Main方法訪問該值,那仍然是可以修改的,因為private的限制范圍為“類私有”,只要不出了本類的作用域還是可以修改,但是在其他類新建了Child對象就不可以修改了,比如你在一個叫People的類中new了一個Child對象,這時通過構造器賦值的屬性就不可以再修改了
你最重要79
舉報
C#視頻教程教大家,用C#語言實現(xiàn)面向對象的封裝
1 回答Sex只讀怎么能賦值?
1 回答2017版的visual studio怎么對封裝字段后讀取的值進行限制
3 回答值類型得引用
3 回答c#lambda的格式怎么做約束屬性賦值
4 回答return;后面的Console不能訪問怎么辦?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2018-10-26
將屬性設置為私有變量,然后只聲明公有get方法,然后通過設置一個有參的構造方法,將你要設置的屬性值在構造方法中賦值,這樣在外部類訪問的時候只能賦值一次且不可修改,可以通過公有的訪問器方法獲取屬性值
我簡寫一點代碼示例
前面頭部和命名空間我省略
class Child{
? private string name;
? private char sex;
? public Childern(string name,char sex){
? ? this.name = name;//將傳進來的值賦值給當前對象
? ? this.sex = sex;
? }
? public string Name{
? ? get {return name;}//只聲明get訪問器,不要聲明set訪問器
? }
? public char getSex(){
? ? get{return sex;}//只聲明get訪問器,不要聲明set訪問器
? }
}
這樣你在其他的類中創(chuàng)建該對象時只有一次賦值操作,但是你要是在Child中寫Main方法訪問該值,那仍然是可以修改的,因為private的限制范圍為“類私有”,只要不出了本類的作用域還是可以修改,但是在其他類新建了Child對象就不可以修改了,比如你在一個叫People的類中new了一個Child對象,這時通過構造器賦值的屬性就不可以再修改了