Javaの基本
ものの範囲内のJava
表1-1比較スコープ
有効範囲と可視性 | 現在のクラス | 同じパッケージ | サブクラス | その他のパッケージ |
---|---|---|---|---|
公衆 | √ | √ | √ | √ |
民間 | √ | × | × | × |
保護されました | √ | √ | √ | × |
デフォルト | √ | √ | × | × |
- 公共は、全てのクラスまたはオブジェクトに直接アクセスすることができ、すべてのクラスまたはオブジェクトのメンバ変数またはメソッドが表示されていることを示し、
- プライベートショーの変更メンバ変数やメソッドは、現在のクラスは他のクラスやオブジェクトに加えて、アクセスできない、自分たちの権利へのアクセスを持って、プライベートです。
- 保護されたが、クラスのメンバ変数やメソッド自体は、彼の他のクラスと一緒に、他のパッケージ内のクラスと同じパッケージ内のサブクラスが表示されていることを示しています。
- デフォルトでは、メンバー変数またはメソッドが自身のアドレスと可視同じパッケージ内のクラスを有することを示します。親クラスとサブクラスが同じパッケージに位置している場合、サブクラスのデフォルトのメンバ変数または親クラスがアクセス権を持つ、パケットの親クラスとサブクラスは異なるパッケージ内にある場合は、アクセスがありません。
注:これらの修飾子のインテリジェントな修正のメンバ変数は、ローカル変数を変更するために使用することはできません。プライベートで保護されたが(唯一の公共、抽象的、または最終クラスが外側を飾るために使用することができます)外部クラスを飾るために使用することはできませんが、内部クラスを変更するために使用することができます。
クラスは、複数のJavaファイルを定義することができるかどうか
A Javaファイルには、複数のクラスを定義することができますが、唯一最大のパブリッククラスに変更され、クラス名とファイル名のクラスが同じでなければなりません、文書はクラスのpublicでない場合は、単にファイル名がクラスの名前です。ことができます。javacコマンドで.javaファイルをコンパイルするときに、なお、彼はクラスごとに対応する.classファイルを生成します。
コンストラクタとは何ですか
コンストラクタは、オブジェクトの初期化のときにオブジェクトメンバ変数、例えば、特別な機能です。
コンストラクタの特長:
- コンストラクタはクラスと同じ名前でなければならず、(戻り値がvoidすることはできません)の値を返すことはできません。
- 各クラスには、複数のコンストラクタを持っています。
- コンストラクタは、ゼロ、1、または複数のパラメータを持つことができます。
- コンストラクタは常に一緒にnew演算子の呼び出しを伴う、およびシステムによって呼び出されなければならないプログラムの作家から直接呼び出すことはできません。コンストラクタは、オブジェクトがインスタンス化され、一度だけ実行されたときに自動的に呼び出され、そして一般的なアプローチは、彼が呼び出されたときに実行することで、オブジェクトはプログラムで複数回呼び出すことができます。
- コンストラクタオブジェクトの初期化の主な役割は完了です。
- コンストラクタは継承することができないので、彼は上書きできないが、コンストラクタのオーバーロードすることができ、異なるパラメータ又はタイプコンストラクタの複数を定義するパラメータの数を使用することができます。
...
反射とは何ですか
Javaの言語の反射機構は、特に重要な特性です。彼は、プログラムは自己チェックを実行時にすることができますが、また、他の内部のメンバーで動作します。反射機構は現在、クラスランタイムによってロードすることができますので、この機能は非常に、開発に使用されている、プログラムの柔軟性を向上させることが可能であるが、反射の不適切な使用は、システムのパフォーマンスに影響します。
具体的には、設けられた反射機構の機能は以下のとおりです属するクラスのオブジェクトを取得するには、クラスのすべてのメンバ変数やメソッドを取得します。実行時にオブジェクトを作成し、実行時にオブジェクトのメソッドを呼び出します。
役割は、例えば、ほとんどが実行時のオブジェクトクラスに動的に作成することができ、常に次のとおりです。
class Base {
public void f() {
System.out.println("Base");
}
}
class Sub extends Base {
public void f() {
System.out.println("Sub");
}
}
public class Test{
public static void main (String[] args) {
try { //使用反射机制加载类
Class c = class.forName("Sub");
Base b = (Base)c.newInstance();
b.f();
}catch(Exception e) {
e.printStackTrace();
}
}
}
プログラムの結果:
サブ
反射でClassクラスを取得します。
- 図に示すようにClass.forName(「クラスパス」)。
- .classファイルのクラス名
- 例.getClass()
Javaは方法の4種類を作成するオブジェクト:
- 新しいステートメントを使用してオブジェクトをインスタンス化します。
- 反射して、オブジェクトを作成します。
- オブジェクトのクローン()メソッドを作成します。
- 道を逆シリアル化してオブジェクトを作成します。
役割のパッケージとは何ですか
まず:解決命名の競合に多層の名前空間を提供します。
第二:クラスは機能に応じて分類され、組織のプロジェクトをより明確に。
これらは、Javaの「Javaプログラマーのインタビューノート」のの基礎の私の要約です。