c#物件導向中的get和set的用法
物件導向程式設計的一個規則是:使使用者只需要指定物件能做什麼,而不需要去指定或者瞭解物件是如何完成該的。
屬性是物件內部的資料,使用者如果能夠直接訪問物件內部資料,顯然就違反了上述規則。(這也有點類似Windows系統對記憶體的保護,可以通過API來操作,但不推薦直接訪問記憶體,那樣就可能把記憶體搞亂了。)
通過get和set訪問器來訪問,就保持了這種規則,而且還提供了額外的功能,如對值進行檢查,實現只讀或只寫屬性等。
總的來說就是可以通過set get
來對類的屬性進行封裝,物件導向的程式是不可以直接用類自己定義的屬性的
剛剛學C#的時候,很多人都不明白屬性的訪問器有什麼用呢,我上網見了不少的評論,拉下來給大家看看
一般物件導向程式語言都要求成員變數不能直接暴露給外部訪問,如下: public class A { public int Age; //這是不好的,待會有程式設計師可能把-1賦給Age } 為了防止亂賦值,C#設計了一個屬性機制,要求把成員變數設為私有,在通過屬性來控制成員變數的讀寫,如下: public class B { private int age; //私有成員變數 public int Age //age的屬性 { get{ return age; } //讀取器 set{ //寫入器 if(value>0) age = value; //value是準備寫入的值 } } } 這樣Age就像保安一樣,擋在age的前面。訪問age的時候需要通過Age許可,如下: B b = new B(); b.Age = -1; //這是不行的,-1被帶入value,value<0,判斷不成立 b.Age = 10; //這是可行的
如果還有不懂的話可以留言,我儘量教會你,下面是我一個簡單是例子
//-------------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication2
{
public class Myclass
{
private string id="";
private string name="";
public string ID
{
get
{
return id;
}
set
{
id =value;
}
}
public string Name
{
get
{
return name;
}
set
{
name =value;
}
}
}
class Program
{
static void Main(string[] args)
{
Myclass clazz = new Myclass ();
clazz.ID ="BH001";
clazz.Name="MR01";
Console.WriteLine(clazz.ID,clazz.Name);
Console.ReadLine();
}
}
}
相關文章
- php中的程式導向與物件導向PHP物件
- C#中類的屬性訪問器--get和set分析C#
- Golang 中的物件導向Golang物件
- C# Get SetC#
- “程序導向”和“物件導向”物件
- JavaScript中的物件導向----類JavaScript物件
- 物件導向中類和物件的定義是什麼?物件
- Javascript 物件導向中的建構函式和原型物件JavaScript物件函式原型
- JavaScript物件導向—物件的建立和操作JavaScript物件
- JS 中的物件導向 prototype classJS物件
- C#學習筆記(一)--- 物件導向的思想和類的定義、物件的建立C#筆記物件
- java物件導向(中)Java物件
- 【C#之物件導向總結】C#物件
- 程式導向和麵向物件的對比(轉)物件
- 物件導向和麵向過程的區別物件
- 困惑:程式導向和麵向物件的結合?物件
- 物件導向-物件導向思想物件
- C#中?和??及?:的用法C#
- JavaScript 遊戲中的物件導向的設計JavaScript遊戲物件
- JavaScript遊戲中的物件導向的設計JavaScript遊戲物件
- 物件導向的基本理論1:類和物件物件
- 解釋下什麼是物件導向?物件導向和麵向過程的區別?物件
- PHP中物件導向的分頁類PHP物件
- JavaScript 中的物件導向程式設計JavaScript物件程式設計
- php 物件導向中的魔術方法PHP物件
- day08 Go中的物件導向Go物件
- java的物件導向Java物件
- JavaScript的物件導向JavaScript物件
- 從物件導向到模式再到真正的物件導向 (轉)物件模式
- 物件導向和麵向過程物件
- Python中set的用法Python
- shell中set指令的用法
- Java中物件導向的設計原則Java物件
- 現代新的簡化”物件“和”物件導向“的定義物件
- 物件導向程式設計之super內建函式的用法物件程式設計函式
- JavaScript 的物件導向(OO)JavaScript物件
- 更多物件導向的JavaScript物件JavaScript
- Java:Java的物件導向Java物件