W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
類可以是public或default(或包級別)。
類成員的訪問級別確定程序的哪個區(qū)域可以訪問它。以下四個訪問級別修飾符之一可以用于類成員:
前三種類型的訪問級別使用以下三個關(guān)鍵字之一指定:public,private或protected。
第四種類型稱為默認(rèn)訪問級別(或包級別),并且通過不使用訪問修飾符來指定。
如果使用 public
關(guān)鍵字將類成員聲明為public,則可以從Java代碼中的任何位置訪問它,如果類本身是可訪問的。
如果使用 private
關(guān)鍵字將類成員聲明為private,則只能在聲明類的主體內(nèi)訪問,而在其他任何地方都不能訪問。
如果使用 protected
關(guān)鍵字將類成員聲明為protected,則可以從同一個包或從類的后代訪問,即使后代位于不同的包中也是如此。
如果我們不為類成員使用任何訪問級別修改器,則它具有包級別訪問權(quán)限。具有包級別訪問權(quán)限的類成員可以從同一個包訪問。
類成員的訪問級別可以從最嚴(yán)格到最不嚴(yán)格,作為private,package-level,protected和public。
以下代碼顯示如何使用不同的訪問級別:
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() { } }
可以為類的實例和靜態(tài)成員指定訪問級別。
它是一個約定,指定訪問級別修改器作為聲明中的第一個修飾符。
要聲明靜態(tài)公共字段,請首先使用 public
修飾符,然后使用 static
修飾符作為約定。
我們必須考慮類及其成員的訪問級別,以確定類成員是否可訪問。
以下代碼顯示了如何在創(chuàng)建Java bean時使用訪問級別修飾符。
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號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: