java構造函數修飾符


今天看了劍指offer中的第二章-面試需要的基礎知識,對其中的一段C#面試代碼,比較感興趣,想着能否給改成java,結果沒改成,出現了問題,本文是針對這一點來總結一下,下面是C#與java代碼,但是在eclipse環境下,java代碼如此改寫,編譯器提醒構造函數有問題,究其原因,問題是由java的構造函數前的訪問修飾符public與特殊修飾符static所導致的。

java 構造函數,可以被訪問修飾符修飾,而不能被特殊修飾符修飾;(在編譯器經過測試)

訪問修飾符: public (最常用,其他類的任何位置都可以訪問)                 

                  protected(能夠在同一包中被子類訪問)

                  什么都不寫,""(能夠被同一包里的類訪問)

                  private(經常使用的單例模式中)

特殊修飾符: static (靜態) final(最終) abstract(抽象) synchronized(同步) 這些都不能夠放在構造函數前使用                 

 1 class A{
 2      public A(String text){
 3           console.writeln(text);
 4      }
 5 }
 6 
 7 class B(){
 8      static A a1=new A("a1");
 9      A a2=new A("a2");
10 
11      static B(){
12           a1=new A("a3");
13      }
14      
15      public B(){
16           a2=new A("a4");
17      }
18 }
19 class Program{
20      B b=new B();
21 }
View Code
 1 public class A {    
 2     public  A(String aStr){
 3         System.out.println("A 構造函數 初始化:"+aStr);
 4     }
 5 }
 6 
 7 class B {
 8     static A a = new A("a1");
 9     A aa = new A("a2");
10 
11     static B() {
12         a = new A("a3");
13     }
14 
15     public B() {
16         aa = new A("a4");
17     }
18     public static void main(String[] args) {
19         B b=new B();
20     }
21 }
java View Code

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM