C#中方法和屬性有什么區(qū)別啊 新人傻傻分不清啊 能不能具體一點(diǎn)解釋一下。
C#中方法和屬性有什么區(qū)別啊 新人傻傻分不清啊 能不能具體一點(diǎn)解釋一下。
方法和屬性都是類(lèi)型的成員。屬性的本質(zhì)是方法。
屬性分為普通屬性(無(wú)參)和有參屬性(也叫“索引器”)。
從語(yǔ)義上講,屬性封裝的是對(duì)象的數(shù)據(jù),它用來(lái)獲取對(duì)象私有字段的值;方法封裝的是對(duì)象的行為,它用來(lái)改變對(duì)象的行為。
java屬性和方法的區(qū)別
1、Java中的屬性和字段有什么區(qū)別? 答:Java中的屬性百科,通??梢岳斫鉃間et和set方法。而字段,通常叫做“類(lèi)成員”。
這兩個(gè)概念是完全不同的。
屬性只局限于類(lèi)中方法的聲明,并不與類(lèi)中其他成員相關(guān)。例如:void setA(String s){}String getA(){}當(dāng)一個(gè)類(lèi)中擁有這樣一對(duì)方法時(shí),我們可以說(shuō),這個(gè)類(lèi)中擁有一個(gè)可讀寫(xiě)的a屬性(注意是小寫(xiě)a)。如果去掉了set的方法,則是可讀屬性,反之亦然。類(lèi)成員(字段),通常是在類(lèi)中定義的類(lèi)成員變量,例如:public class A{private String s = \”123\”;}我們可以說(shuō)A類(lèi)中有一個(gè)成員變量叫做s。
計(jì)算屬性與方法的區(qū)別
計(jì)算屬性和方法都可以完成同樣的操作,其寫(xiě)法及效果很相似,例如: 兩者不同在于,計(jì)算屬性是基于它們的響應(yīng)式依賴進(jìn)行緩存的。只在相關(guān)響應(yīng)式依賴發(fā)生改變時(shí)它們才會(huì)重新求值。
這就意味著只要 message 還沒(méi)有發(fā)生改變,多次訪問(wèn) reversedMessage 計(jì)算屬性會(huì)立即返回之前的計(jì)算結(jié)果,而不必再次執(zhí)行函數(shù)。
相比之下,每當(dāng)觸發(fā)重新渲染時(shí),調(diào)用方法將總會(huì)再次執(zhí)行函數(shù)。
java 屬性和方法的區(qū)別
通俗地說(shuō),屬性就是一個(gè)對(duì)象(萬(wàn)物皆對(duì)象)所具有的特征或者是特點(diǎn),比如一個(gè)帶著紅色帽子的站在馬路邊的小女孩,其中“戴著紅色帽子的”以及“站在馬路邊的”就是她的屬性;方法就是一個(gè)對(duì)想所能完成的行為,比如那個(gè)女孩會(huì)走路、會(huì)說(shuō)話、會(huì)哭、會(huì)笑等等,這些都是她所具有的方法;另外就是事件,表示外部驅(qū)動(dòng),比如那個(gè)女孩被媽媽打屁屁了,小女孩就哭了,媽媽給小女孩吃糖了,小女孩就笑了,其中“媽媽打小女孩屁屁”以及“媽媽給小女孩糖吃”就是事件,這兩個(gè)事件分別使小女孩(對(duì)象)“哭”以及“笑”(哭笑為方法),即事件驅(qū)動(dòng)方法的發(fā)生。
編程中怎么區(qū)別屬性和方法 知乎
屬性的嚴(yán)格寫(xiě)法是public class a{ public string a; public int b;}這個(gè)才叫屬性,屬性是一個(gè)類(lèi)的變量,屬性作為變量不承擔(dān)任何計(jì)算過(guò)程。而屬性過(guò)程則不同屬性過(guò)程的寫(xiě)法public class a{ private string a; private int b; public string a { get { return this.a; } set { this.a=value; } } public int b { get { return this.b; } set { this.b=value; } }}屬性過(guò)程則不同,屬性過(guò)程可以理解為特殊的方法或函數(shù),這個(gè)方法只有一個(gè)參數(shù)并且只能返回一個(gè)值。
屬性過(guò)程的作用在于,對(duì)輸入數(shù)據(jù)的有效性處理設(shè)想一下用戶注冊(cè)這個(gè)功能用戶注冊(cè)有一個(gè)用戶類(lèi)用戶類(lèi)有一個(gè)屬性用戶名public class user{ public string username;}而通常限制用戶注冊(cè)用戶名不能為空要在用戶界面去限制。
user Objus=new user();if(Objus.username==null){ throw new Exception(\”用戶名不能為空\(chéng)”); }這樣寫(xiě)的確沒(méi)錯(cuò),但是如果你登陸里也要限制用戶名不能為空,用戶修改資料里也得限制,這時(shí)候還得寫(xiě)一遍上面的代碼,而這樣就會(huì)有很多重復(fù)的代碼。就算你能**粘貼,這些代碼也是重復(fù)的每回你也要**粘貼才可以。如果用屬性過(guò)程public class user{ private string _username; public string username { get { return this._username; } set { if(value==null) { throw new Exception(\”用戶名不能為空\(chéng)”); } this._username=value; } }}這時(shí)你登陸界面只需兩行代碼就驗(yàn)證了用戶名不能為空user Objus=new user();Objus.username=this.Textbox1.Text;就兩行就可以,其他地方也是一樣,這就是屬性過(guò)程。