パッケージ与のインポート
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··········