W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
類可以是public或default(或包級(jí)別)。
類成員的訪問(wèn)級(jí)別確定程序的哪個(gè)區(qū)域可以訪問(wèn)它。以下四個(gè)訪問(wèn)級(jí)別修飾符之一可以用于類成員:
前三種類型的訪問(wèn)級(jí)別使用以下三個(gè)關(guān)鍵字之一指定:public,private或protected。
第四種類型稱為默認(rèn)訪問(wèn)級(jí)別(或包級(jí)別),并且通過(guò)不使用訪問(wèn)修飾符來(lái)指定。
如果使用 public
關(guān)鍵字將類成員聲明為public,則可以從Java代碼中的任何位置訪問(wèn)它,如果類本身是可訪問(wèn)的。
如果使用 private
關(guān)鍵字將類成員聲明為private,則只能在聲明類的主體內(nèi)訪問(wèn),而在其他任何地方都不能訪問(wèn)。
如果使用 protected
關(guān)鍵字將類成員聲明為protected,則可以從同一個(gè)包或從類的后代訪問(wèn),即使后代位于不同的包中也是如此。
如果我們不為類成員使用任何訪問(wèn)級(jí)別修改器,則它具有包級(jí)別訪問(wèn)權(quán)限。具有包級(jí)別訪問(wèn)權(quán)限的類成員可以從同一個(gè)包訪問(wèn)。
類成員的訪問(wèn)級(jí)別可以從最嚴(yán)格到最不嚴(yán)格,作為private,package-level,protected和public。
以下代碼顯示如何使用不同的訪問(wèn)級(jí)別:
public class Main { private int num1; // private access level int num2; // package-level access protected int num3; // protected access level public int num4; // public access level public static int count = 1; // public access level // private access level private void m1() { } // package-level access void m2() { } // protected access level protected void m3() { } // public access level public void m4() { } // private access level private static void doSometing() { } }
可以為類的實(shí)例和靜態(tài)成員指定訪問(wèn)級(jí)別。
它是一個(gè)約定,指定訪問(wèn)級(jí)別修改器作為聲明中的第一個(gè)修飾符。
要聲明靜態(tài)公共字段,請(qǐng)首先使用 public
修飾符,然后使用 static
修飾符作為約定。
我們必須考慮類及其成員的訪問(wèn)級(jí)別,以確定類成員是否可訪問(wèn)。
以下代碼顯示了如何在創(chuàng)建Java bean時(shí)使用訪問(wèn)級(jí)別修飾符。
class Account { private double balance; public double getBalance() { return this.balance; } public int save(double amount) { if (amount < 0.0 || Double.isNaN(amount) || Double.isInfinite(amount)) { System.out.println("Invalid credit amount: " + amount); return -1; } this.balance = this.balance + amount; return 1; } public int spend(double amount) { if (amount < 0.0 || Double.isNaN(amount) || Double.isInfinite(amount)) { System.out.println("Invalid debit amount: " + amount); return -1; } if (this.balance < amount) { System.out.println("Insufficient fund. Debit attempted: " + amount); return -1; } this.balance = this.balance - amount; return 1; } } public class Main { public static void main(String[] args) { Account ac = new Account(); double balance = ac.getBalance(); System.out.println("Balance = " + balance); ac.save(2); ac.spend(1); balance = ac.getBalance(); System.out.println("Balance = " + balance); // Attempt to credit and debit invalid amounts ac.save(-2); ac.spend(Double.POSITIVE_INFINITY); balance = ac.getBalance(); System.out.println("Balance = " + balance); // Attempt to debit more than the balance ac.spend(200.00); balance = ac.getBalance(); System.out.println("Balance = " + balance); } }
上面的代碼生成以下結(jié)果。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: