JAva基礎学習ノート(三、対象向け)

3623 ワード

オブジェクトとクラス
1つのソースファイルには1つのpublicクラスしかありません.複数の非publicクラスがあり、ソースファイルの名前はpublicクラスのクラス名と一致する必要があります.
新オブジェクト
newオブジェクトの場合、JavaはJVM再スタックメモリにスペースを開き、新しいオブジェクトを格納する手順を行います.オブジェクトクラスのプロパティは、オブジェクトとともにスタックメモリに入ります(この場合、オブジェクトはコンテナとして扱われ、プロパティはコンテナの内容です).属性にデフォルト値を割り当てます(Stringはnull、doubleは0.0).JVMオブジェクトのアドレスを受信者に渡す
変数のタイプ
JAvaにはクラス変数、メンバー変数、ローカル変数があります.クラス変数:静的変数とも呼ばれ、クラスにはstaticキーで宣言され、クラスにはクラス変数のコピーが1部しかありません.通常はどんな味の定数なのか、定数でなければ修正できます.コードは次のとおりです.
public static int b = 111;
    public static void main(String[] args)
    {
    	b = 222;
        System.out.println(b+"");//  222
    }
}

≪メンバー変数|Member Variables|oem_src≫:オブジェクトに従って移動し、オブジェクトが作成されたときに作成され、独自のデフォルト値があり、値を付けずに使用でき、オブジェクトが破棄されたときに破棄されます.
ローカル変数:メソッド、構築メソッド、または文ブロックに宣言されます.アクセス修飾子はローカル変数には使用できません.ローカル変数はスタックに割り当てられ、デフォルト値はなく、宣言後に初期化されなければ使用できません.次のコードが間違っています.
public void pupAge()
{
    int age;//    
    age = age + 7;
    System.out.println("" + age);
}

継承
親はより一般的で、子はより具体的です.
継承により、コードの冗長性が大幅に減少します.
書き換え(Override)
書き換え方法は、新しい検査異常を投げ出すことができないか、書き換え方法によって明らかにされるよりも広い異常を投げ出すことができない.
次のコードはマルチステート性を反映しています
class Animal{
   public void move(){
      System.out.println("      ");
   }
}
 
class Dog extends Animal{
   public void move(){
      System.out.println("      ");
   }
   public void bark(){
      System.out.println("     ");
   }
}
 
public class TestDog{
   public static void main(String args[]){
      Animal a = new Animal(); // Animal   
      Animal b = new Dog(); // Dog   
 
      a.move();//    Animal     
      b.move();//   Dog     
      b.bark();//b     animal  break  
   }
}

コンパイルの結果は次のとおりです.
TestDog.java:30: cannot find symbol
symbol  : method bark()
location: class Animal
                b.bark();

書き換えメソッドの戻りタイプは、書き換えメソッドの戻りタイプとは異なる場合がありますが、親クラスの戻り値の派生クラスである必要があります.
書き換えメソッドのアクセス権は、親クラスで書き換えられたメソッドのアクセス権よりも低くすることはできません.
子クラスと親クラスが同じパッケージにある場合、privateとfinalとして宣言されたメソッドを除いて、子クラスは親クラスのすべてのメソッドを書き換えることができます.サブクラスと親クラスが同じパッケージに含まれていない場合、サブクラスはpublicとprotectedとして宣言された非finalメソッドのみを書き換えることができます.
リロード(Overload)
リロード(overload)は同じクラスにあり、メソッド名は同じで、パラメータは異なる.戻りタイプは同じでも異なってもよい.各リロード方法には、ユニークなパラメータタイプのリストが必要です.
リロードされたメソッドは、アクセス修飾子を変更することができます.リロードされたメソッドは、新しいまたはより広い検査異常を宣言することができる.
マルチステート
マルチステートは、同じ動作が複数の異なる表現形式または形態を有する能力である.
マルチステート3要素:継承、書き換え、親参照が子オブジェクトを指します.
マルチステート方式でメソッドを呼び出す場合は、まず親クラスにメソッドがあるかどうかを確認し、ない場合はコンパイルエラーです.ある場合は、サブクラスの同名メソッドを呼び出します.
抽象メソッド
抽象メソッドにはメソッド名が1つしか含まれておらず、メソッド体はありません.
抽象クラスには必ずしも抽象メソッドが含まれているとは限らないが,抽象メソッドがあるクラスは必ず抽象クラスである.
抽象クラスはそのサブクラスに抽象方法を書き換えるように強制し、これが抽象クラスの設計思想であり、体系機能の完全性を保証する.
abstractはprivateと共存できず、abstractはstaticと共存できず、abstractはfinalと共存できない.
構築メソッド、クラスメソッド(staticで修飾されたメソッド)は抽象メソッドとして宣言できません.
パッヶージ
メンバー変数はprivateで修飾し、getter()、setterメソッドを追加します.
インタフェース
クラスは、オブジェクトのプロパティとメソッドを記述します.インタフェースには、クラスが実装する方法が含まれます.
インタフェースにはpublic static final変数を除いてメンバー変数を含めることはできません.
インタフェースのメソッドは、public abstractとして暗黙的に指定されます(public abstractのみで、他の修飾子はエラーを報告します).
クラスはインタフェースを実現する方法では,強制的な異常を投げ出すことができず,インタフェース内,あるいはインタフェースを継承する抽象的なクラスでのみその強制的な異常を投げ出すことができる.
タグインタフェースは、メソッドと属性のないインタフェースであり、クラスが特定のタイプに属していることを示します.主に共通の親インタフェースを確立したり、クラスにデータ型を追加したりするために使用されます.
パッケージ
JAvaのパッケージは、機能が似ているか関連するクラスまたはインタフェースを同じパッケージに整理し、クラスの検索と使用を容易にすることができます.
java.langパッケージにはjavaの最も基礎的なクラスがパッケージされています.
ソースファイルにパケット宣言が使用されていない場合、クラス、関数、列挙、注釈などは無名のパケットに格納されます.
同じパケット内のクラスはimportを使用せずに相互に呼び出すことができます.