1. 程式人生 > >get和set的作用

get和set的作用

    從學習《大話設計模式》開始,就一直和get、set打交道,但是直到寫這篇部落格之前,對它還不甚明白。get、set到底起到一個什麼作用呢?

   【舉例】

<strong><span style="font-family:KaiTi_GB2312;font-size:18px;">    Private Money As String
   
    Public Property bank() As String
        Get
            Return  Money 
        End Get
        Set(value As String)
             Money  = value
        End Set
    End Property</span></strong>

   【作用】get和set在這裡的作用其實是為了訪問設定變數的,因為封裝了原先的變數所以這樣可使資料更加安全;get和set分別對應的是可讀和可寫。

   【解析】系統會先分配一個叫 Money 的private私有的記憶體空間,之後的讀與寫的操作都是通過bank這個public的類似於指標的東西來關聯 Money 進行,以此達到封裝的目的,並且通過get和set關鍵字也可以控制可讀還是可寫。

    通俗的講,Money 就像銀行裡的自動取款機,你看不見裡面的Money,但你能用set(存錢),用get(取錢)。Money是一個私有欄位,是分裝在類中的,類以外的程式不能直接訪問的。類的set和get成員是外部程式訪問類內部屬性的唯一方法,就像你去銀行取錢,你不能直接從銀行的保險櫃裡拿錢,而是銀行營業人員把錢取出來給你的。

   【用法】

    一是隱藏元件或類內部的真是成員;
    二是用來建立約束,比如,實現“有我沒你”這種約束;
    三是用來響應屬性變化事件,當屬性變化是做某事,只要寫在set方法裡就行。

   【總結】很多知識必須經過總結之後才會印象深刻,不要放過了解它們的每一次機會,有探索精神,站在巨人的肩膀上,才能爬的更高,站得更遠!

相關推薦

getset作用

    從學習《大話設計模式》開始,就一直和get、set打交道,但是直到寫這篇部落格之前,對它還不甚明白。get、set到底起到一個什麼作用呢?    【舉例】 <strong><

C# GET SET屬性作用

private int __Old; public int Old{ get{return __Old;}  set{__Old = value;} } 但是如果你這樣寫就不一樣了. private int __Old; public int Old{ get{return __Old;}  set{//

根據屬性拿到getset方法

rop start getname code color readme stat end 沒有 public static void method(Object obj) { try { Class<? extend

Swift getset方法以及只讀屬性(計算型屬性,本身不保存數據,都是通過計算獲得結果)

get bsp 簡寫 保存數據 value string nsobject var import import UIKit class Person: NSObject { private var _name: String? var name: Strin

第02講 struts2的getset方法自動獲取自動設定資料

第二章設定資料 1,複製專案HeadFirstStruts2chapter01 改名為:HeadFirstStruts2chapter02。修改Web Project Settings 為HeadFirstStruts2chapter02,HelloWorldAction中設定成員變數name屬

vue.js getset方法使用

  vue.js get和set方法使用   ================================ ©Copyright 蕃薯耀 2018年12月05日 http://fanshuyao.iteye.com/   <!DOCTYPE ht

vue computed計算屬性的getset函式

get和set都是回撥函式 什麼是回撥函式:1/你定義的 2/你沒有呼叫 3/但最終執行了 關於回撥函式需要知道的兩個問題:1/什麼時候呼叫 2/用來做什麼 const vm = new Vue ({ data: { firstName; ‘A’, lastName: 'B'

computed 的get set

當你讀取一個變數的時候會觸發該變數的getter. 當你修改該變數時候會觸發他的setter. <div id="div"> <input v-model="firstName" > <input v-model="lastName"&g

做一個小球點選可以變色移動(使用defineProperty設定getset

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <st

《隨筆四》——C#中的 “屬性索引器中的 get set 訪問器的訪問修飾符”

屬性和索引器中的 get 和 set 訪問器的訪問修飾符 ●  索引器和屬性自帶 get 和 set 訪問器,  在預設的情況下:  如果一個屬性有public 訪問級別, 那麼它的那個兩個訪問器

C# getset

在面向物件程式設計(OOP)中,是不允許外界直接對類的成員變數直接訪問的,既然不能訪問,那定義這些成員變數還有什麼意義呢?所以C#中就要用set和get方法來訪問私有成員變數,它們相當於外界訪問物件的一個通道,一個“介面”。先來看一段程式碼: class Employee

c#欄位,屬性getset精解

在講解get和set訪問器之前,為了更方便理解,先講解一個例子(不想看例子的可以直接跳到文章正式部分,這裡照顧下新手,是不是很暖?哈哈) 今天做專案的時候,在建立房間介面有一個底分的選項,要求底分的範圍在1-20之間。這裡我另外建立了一個練習的專案,面板如下圖:

vue裡computed的getset

computed裡的物件有get和set方法。 get是當該物件所依賴的變數發生變化是執行,重新returncomputed結果。 set是該物件的值變化時會執行,並且將變化的結果作為引數傳進set裡。然後可以根據傳進的值來處理 <div id="app"> &

get set

在類的設計中,經常需要將一些核心的屬性隱藏起來,防止外部訪問,目的是防止非法的賦值和讀取。 以公司員工工號為例,許多方法都依賴於工號,每招聘一名新員工,工號加1,並且工號只能增加,不能減少,必須為正整數, 正整數可以用uint,但是隻增不減屬於邏輯內容,如果允許外部訪問工號,則很難保證邏

MyEclipse中快速生成getset方法

Shift+Alt+S快捷鍵選擇 generate getters and setters,然後選擇變數名即可新增set和get函式 或者: 在編碼區域右擊選擇---source,然後選擇generate getters and setters

Java反射獲取getset方法

反射bean的get方法 /** * java反射bean的get方法 * * @param objectClass * @param fieldName * @return */

C#中的GETSET訪問器

 我們在學習C#語法的屬性時,都要首先和GET,SET訪問器打交道,從英文的字面意思上理解,GET應該就是獲得什麼什麼,而SET應該是設定什麼什麼,那我們看一下,官方是怎麼定義這對訪問器的:get是讀取屬性時進行的操作,set是設定屬性時進行的操作。定義一個屬性如果只有ge

C#中的getset 方法

set()是給屬性賦值的,get()是取得屬性值的 被設定和存取的屬性一般是私有 主要是起到封裝的作用,不允許直接對屬性操作 set()和get()不一定同時存在,看程式需求 釋一:屬性的訪問器包含與獲取(讀取或計算)或設定(寫)屬性有關的可執行語句。 訪問器宣告可以

[email protected]註解與省去getset方法,

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/

Python語言學習講解十四:python之用純屬性取代getset方法

注:每週一到週五都會進行相關Python基礎知識更新,歡迎大家提寶貴的意見 一、從其他語言轉入python的開發者,一般可能在設計類的時候,在其中填寫get和set方法,用來獲取和設定類的成員屬性。