Javaの自己の研究ノート(11):[オブジェクト指向]パッケージ、インポート、アクセス制御修飾子、静的

パッケージ与のインポート

Javaでは、各クラスを定義し、コンパイラのJavaを通過した後、プログラムの規模が徐々に巨大であるとき、クラス現象と同じ名前があるだろう、の.classファイル名の拡張子を生成します。

そのパッケージには、管理クラスのメカニズムであります

パッケージを定義するには?packageキーワードを使用し     たパッケージのパッケージ名を、   パッケージは、サブパケットとオーバーラップし、母親との間でパケットを分離することができます。   パッケージ1.パッケージ名パッケージ名2。

注意:packageステートメントで指定されたクラスのパッケージ名がプログラムの最初の行に配置する必要がある場合は、ファイル非コメントコードの最初の行でなければなりません

パッケージの命名:       小文字で

パッケージとプログラムをコンパイルして実行します。

パッケージ誇張する。
パブリック クラスデモ{
     公共の 静的な 無効メイン(文字列[] args)を{ 
        System.out.printlnは( "Javaへようこそ" ); 
    } 
}

CMDには:

   ( - dが現在のディレクトリにあります。)

 フォルダを生成するコードの最初の行の操作(すなわち、パッケージ)

2行目は、再び実行することができます

(パッケージとJavaは、通常の方法を実行することはできません)

パッケージを導入するには?  インポートを使用してください

これらのパックは、メカニズムをインポートします。

    以下のように:シングル導入タイプ輸入exaggerate.Person;インポートパッケージ名、クラス名; //衝突を避けるために、速度を上げます。

    輸入需要のタイプ::.インポート誇張*など; // *ワイルドカードは、このパッケージを見つけるために、コンパイラ、未知のクラスを伝え、この方法は、コードのコンパイル速度に影響を及ぼし

パッケージを使用してください:分類し、整理し、同じ名前を許可


アクセス制御修飾子

Javaは、アクセス制御修飾子を提供し、あなたは利用できない可能ですクライアントプログラマ、に示すために、ライブラリの開発者を与えることができます

アクセス制御レベル:公共>保護>デフォルト>プライベート

Javaクラスの種類:クラス//外用のみ公共、デフォルト

  //内部クラス缶

                                                                         変更されたクラス:

  パブリック 保護されました デフォルト プライベート
同様の
異なるクラスとパッケージ ×
異なるパッケージ × × ×

相続上の保護とデフォルトの区別

                          変更されたクラスメンバー

 

パブリック

保護されました デフォルト プライベート
同じクラス内
異なるクラスとパッケージ ×
異なるパッケージ × × ×
(異なるパッケージで)サブクラス × ×

staticキーワード

静的メンバー:静的メンバ変数、定数、メソッド、コードブロックを使用して変更することができます

静的メンバは、特定のオブジェクトに依存しない、クラス全体が所有するすべてのは、オブジェクトのすべてのクラスで共有され、グローバルであります

限り仮想マシンがロードされているとして、あなたは、クラス名に基づいてグローバルデータフィールドにそれらを見つけることができます

Access形式:クラスの静的メンバの名前

 

また、静的メンバ変数として知られている静的変数は、修飾されたキーワードの静的メンバ変数を参照します。同じライフサイクルとライフサイクルクラス、すべてのオブジェクトが共有されているクラス

例:

パブリック クラスsellTickets { 
    文字列名。
    int型チケット= 10 ; //非静态
    sellTickets(文字列名){ 
        この .nameの= 名前。
    } 
    ボイド販売(){
         一方(チケット> 0 ){ 
            チケット - 
            System.out.println(名前 + "剩余票数:" + チケット)。
        } 
    } 
    パブリック 静的 ボイドメイン(文字列[]引数){ 
        sellTickets DEMO1 = 新しい sellTickets( "第一台" )。
        sellTickets DEMO2 = 新しいですsellTickets( "第二段階" ); 
        )(demo1.selling; 
        )(demo2.selling; 
    } 

}

結果:

public class sellTickets {
    String name;
    static int tickets=10;  //静态
    sellTickets(String name){
        this.name=name;
    }
    void selling() {
        while(tickets>0) {
            tickets--;
            System.out.println(name+"剩余票数: "+tickets);
        }
    }
    public static void main(String[] args) {
        sellTickets demo1 =new sellTickets("第一台");
        sellTickets demo2 =new sellTickets("第二台");
        demo1.selling();
        demo2.selling();
    }

}

 

运行结果:

 

可见tickets被共享

 静态方法同理

 非静态方法中可以进行静态方法的调用,反之不可


累死窝啦

                                                                              

 

To  Be  Continued·········· 

 

おすすめ

転載: www.cnblogs.com/tkj521Ya/p/11224521.html