類中的封裝

2021-10-24 02:26:41 字數 1799 閱讀 6521

類中的成員有屬性和方法,如何對其成員經行封裝

通過protected和local關鍵字設定成員的訪問許可權,以此達到封裝的目的。也就是外部不能直接對類中的成員經行訪問以及改寫,但是可以通過set和get方法進行間接方法以及改寫。

例子:

class clock

local bit is_sunmer = 0; //local 關鍵字,外部不可直接訪問

local int nclock = 6;

function int get_clock(); //定義get_clock函式,返回int 型clock,this表示這個類本身

if(!is_sunmer) return this.nclock;

else return this.nclock+1;

endfunction

function bit set_sunmer(bit s) //定義set_sunmer函式,傳入bit s,返回乙個bit型資料,但是這兒沒有定義返回。

this.is_sunmer = s;

endfunction

endclass

呼叫:

clock ck;

initial begin

ck = new();

$display("now time is %0d", ck.get_clock()); //通過get方法獲得當前的時鐘變數 ,this.nclock=6

ck.set_sunmer(1'b1); //通過set方法,傳入s=1,is_sunmer=s=1,

$display("now time is %0d", ck.nclock) //報錯

$display("now time is %0d", ck.get_nclock) //get_clock()返回,this.nclock+1=7

end

訪問限制:

local限制:只有該類自己可以訪問成員變數,子類和外部例化類均無法訪問。

protected限制,只有該類自己和子類可以訪問成員變數,外部例化類無法訪問。

public限制,成員預設是public型別的,子類和外部例化類均可以訪問。

類可以在**定義:

module,inte***ce,program,package。

在類中可以包括其他類的控制代碼嗎?可以

類中this是?

在類中使用this,表明this.x所呼叫的成員是當前類的成員,而非與之同名的區域性變數,或者形式引數。

例子:

function new(string name)              //傳入name變數

this.name =name; //這裡name是這個function傳進來的變數,假如function傳入不是name變數,那麼就會去父類中的變數去找,父類中找不到,就去子類中找,再找不到就去全域性中找。原則是:由近及遠。(父類中範圍挨著這個function近。)

就是當前類的成員變數,找不到就到它的父類中去找

endfunction

c 中類的封裝

連線directshow filter cvideo 類中,這樣程式簡潔明瞭,易於操作,不容易出錯,提高了程式的魯棒性。1.類的定義 類是定義同一類所有物件的變數和方法的藍圖或原型。例如,可以建立乙個定義包含當前檔位等例項變數的自行車類。這個類也定義和提供了例項方法 變檔 剎車 的實現。例項變數的值...

七 類中的封裝

1 如電腦類由鍵盤類 滑鼠類 顯示類 cpu類 memory類等類組成 2 類通常可以分為以下兩個部分 a.類的實現細節 b.類的使用方式 使用者一般只關心怎麼使用,而不會關心內部到底如何實現 1 當使用類的時候不需要關心其實現細節 2 當建立乙個類時,才需要考慮其內部實現細節 3 封裝的基本概念 ...

C 中的類與封裝

c 中的類與封裝 1,類的組合 1,類不是孤立存在的,類之間都會有一些關係,組合就是類的基本關係之一 2,電腦一般而言是由 cpu 記憶體 主機板 鍵盤和硬碟等部件組合而成 3,學習電腦組裝需要多少時間?學習電腦組裝是否需要學習顯示器 鍵盤 滑鼠 主機板 記憶體等部件的設計與製造?1,我們可以使用乙...