c 訪問修飾符 靜態和非靜態

2021-09-29 23:29:15 字數 1443 閱讀 1867

public 在哪都可以訪問

private 私有的,只有在當前類的內部進行訪問

internal 只能在當前程式集中進行訪問(程式集=乙個.cs的檔案)

protected 受保護的,可以在當前類以及該類的子類中訪問

修改類的訪問修飾符是internal和public,類預設的訪問修飾符是internal

在同乙個程式集中,pulic和internal的許可權是一樣的

在同乙個程式集中internal許可權高於protected,但是出了這個程式集,protected的許可權高於internal

子類的許可權不能高於父類

下面這個類寫在lym.cs檔案

class person

}public class student:person

如果在另乙個程式集中訪問student這個類,我只需要匯入命名空間+新增引用,就可以在另乙個程式集中訪問student這個類

student s=new student();

s.age(12);------>此時會訪問到這個age

上述這麼寫有問題,會暴露父類的成員

改法:將lym.cs檔案中的

public class person

}public class student:person{

靜態和非靜態

靜態成員和靜態類被static修飾

例項成員和普通類不被static修飾

為什麼說靜態類中不能有例項成員????

因為靜態成員優於例項成員被載入到記憶體中,只有建立了物件,才會讓記憶體載入例項成員,

靜態類不能建立物件,所以靜態類中只有靜態成員,無例項成員

呼叫:靜態成員呼叫: 類名.靜態成員名

例項成員呼叫: 物件名.例項成員名

那普通類中既可以存在靜態成員,又存在例項成員

例項成員中既可以呼叫靜態欄位和普通字段

靜態成員中只能呼叫靜態字段,不能呼叫普通字段(靜態優先被載入到記憶體,此時還沒建立物件,那普通欄位就沒被載入到內容,所以訪問不了)

在例項成員函式中,可以訪問靜態欄位和普通字段

在靜態成員函式中,只可以訪問靜態字段

什麼時候使用靜態?

—>可以作為工具類(呼叫靜態類裡面的方法,直接類名.方法名就可以。普通類訪問類裡面的方法, 還要建立物件)

—>在整個專案中資源共享,正因為它是資源共享的,所以靜態成員必須要等到專案結束時才能將其釋放,

所以專案中我們應該少使用靜態成員

靜態修飾符

靜態修飾符 static static 靜態修飾符1.修飾成員變數 2.修飾方法 1.用來修飾成員變數 乙個成員變數被static修飾叫靜態成員變數,如果沒有被修飾叫非靜成員變數。訪問方式 1 用物件進行訪問 物件名 變數名 2 可以通過類名來訪問 類名 變數名 需要注意的點 1 不要認為所有的變數...

Java訪問修飾符和非訪問修飾符

private public protect default 訪問許可權 注意一下方法的繼承規則 1 父類宣告為public的方法,子類也必須是public 2 父類宣告的proteted的方法,子類可以是protected或public,不能是private 3 父類宣告的private的方法,不...

static靜態修飾符

靜態成員歸整個類所有,不依賴類特定的例項,是被類的所有例項共享。只要這個類被jvm載入,就可以根據類名在全域性資料區域內找到它們。因此,靜態成員可以在任何物件建立之前訪問而無需訪問物件。static關鍵字修飾的成員變數稱為靜態成員變數,簡稱靜態變數。靜態變數是屬於類,但是不依賴類特定的例項。靜態變數...