クラスとオブジェクトの知識点のまとめ


クラスとオブジェクトの知識点
Javaでclassで物事を記述するのもそうです.
  • メンバー変数:物事の属性です.
  • メンバーメソッド:物事の行為です.クラスの定義は、クラスを定義するメンバー(メンバー変数とメンバーメソッド)
  • です.
    1.メンバー変数は、以前定義した変数と同じであるが、位置が変化し、クラス内のメソッド外である.メンバーメソッドは以前の定義メソッドと同じですが、staticを削除するだけで、後でstaticの役割を詳しく説明します.
  • クラスに基づいてオブジェクトを作成するにはどうすればいいですか?クラス名オブジェクト名=newクラス名()オブジェクト名メンバー変数//そのオブジェクトの属性オブジェクト名にアクセスします.メンバー方法//ある相手に仕事を手伝ってもらう
  • 1ファイルには複数のクラスがありますが、共通クラスは1つしかありません.
  • オブジェクトはオブジェクトであり、スタックメモリに格納参照変数は参照変数であり、スタックメモリに格納可能であり、スタックメモリに格納可能であり、アドレスオブジェクトと参照変数が全く異なる
  • のみを格納する.
  • メンバー変数の名前は、ローカル変数と同じですが、範囲に注意して、小さな範囲を探してから、広い範囲
  • を探します.
  • メンバー変数とローカル変数の違い
  • クラス内の位置の異なるメンバー変数:クラス内のメソッド外のローカル変数:メソッド内またはメソッド宣言上の
  • メモリ内の位置が異なるローカル変数:スタックメンバー変数:スタック
  • ライフサイクルの異なるローカル変数:メソッドのスタックインに伴って、メソッドのスタックアウトに伴ってメンバー変数が消滅する:オブジェクトの作成開始に伴って、オブジェクトの回収に伴って
  • が消滅する
  • 初期値が異なる
  • 形式パラメータの問題の基本タイプは形式パラメータとして、値を伝達すれば形式パラメータとしてデータ型を参照することができ、1つのオブジェクト
  • を転送すればよい.
  • 匿名オブジェクトnew StudentDemo()/名前がなく、スタックに1つのオブジェクトを作成した2つの使用オブジェクト-オブジェクト呼び出しメソッドが1回しか使用されていない場合-パラメータとして
  • を渡す.
  • オブジェクト向けの3つの特性パッケージ、継承、マルチステートパッケージは、対応するデータと方法をクラスでカプセル化する情報隠蔽技術である.
  • privateはパッケージの一種(パッケージとクラスもパッケージの一種)のデータ検証問題である:入力された値が条件に合致するかどうかを検査し、setメソッドを書くことによって、専門的にデータを処理する方法があると判断し、一般的にget、setメソッドでgetメソッド
  • に協力しない.
    Javaには多くの修飾子が用意されています.主に、ローカル変数が同じ名前の場合、ローカル変数は同じ名前の変数を隠します(拡張する)アクセス修飾子非アクセス修飾子に分類されます.
  • thisキーワード(画像はノートを参照)
  • this:クラスのオブジェクトに対する参照メソッドがどのオブジェクトによって呼び出されるかを表し、thisはどのオブジェクト
  • を表す.
  • はいつ使いますか?ローカル変数メンバー変数を非表示にした後、superと一緒に
  • を使用することを学習します.
  • 構築方法:オブジェクトのデータを初期化する
  • 形式
  • メソッド名はクラス名と同じ
  • は戻り値タイプがなくvoidも
  • もない.
  • 具体的な戻り値がない
  • は、
  • をリロードすることができる.
  • 注意事項:
  • 構築方法が書かれていない場合、デフォルトの無参照構築方法が与えられます.
  • 書き方がある場合、システムは無参の構造方法を提供しない(無参の構造方法を永遠に自分で書くことを強く推奨する)
  • .
  • の構成方法もリロード可能である.構築方法は再帰的に使用できない(オーバーフローを招く)
  • .
  • 標準ケース
  • メンバー変数をプライベート化
  • 無パラメトリック構造方法およびすべての変数を含む構造方法
  • を構築する.
  • はgetXXXおよびsetXXXメソッドを提供する.
  • メンバーメソッドメンバー変数に値を割り当てる方法
  • 無パラメトリック構造方法+setXXX Studio s=new Studio()
  • には、パラメータ構造方法Student s=new Student(「張三」)がある.



  • オブジェクトの初期化プロセスは固定されており、クラス内のコード順序は影響しません.
  • Studio classファイルをメモリにロード
  • スタックメモリにおいてsのために空間を開く
  • スタックメモリにおいてStudioオブジェクトのためのスペースを開く
  • 学生オブジェクトのメンバー変数のデフォルト初期化
  • 学生オブジェクトのメンバー変数を明示的に初期化する
  • 学生オブジェクトのメンバー変数を構築方法により付与
  • .
  • 学生オブジェクトの初期化が完了し、オブジェクトアドレスをs変数
  • に付与する.
  • メンバー変数static構造メソッドなしstaticおよびvoid
  • staticキーワードは、メンバー変数およびメンバーメソッドクラスのメンバー(staticによって修飾されていない変数:オブジェクトのメンバー)
  • を修飾することができる.
  • staticキーワードの特徴1.クラスのロードに伴うロード2.対象よりも優先的に存在する.クラスのすべてのオブジェクトが共有されることもstaticキーワードを使用するかどうかを判断する条件である.オブジェクトがnullを付与場合、例外
  • もないため、クラス名呼び出し(クラス名呼び出しを強く推奨)によってオブジェクト名呼び出しを極力推奨することはできません.
  • 注意事項1.静的メソッドではthisキーワードはありません.静的メソッドは、静的メンバー変数および静的メンバーメソッド
  • にのみアクセスできます.
    静的変数とメンバー変数の違い
  • が属する異なる静的変数はクラスに属するため、クラス変数メンバー変数とも呼ばれる:オブジェクトのすべての
  • 異なる静的変数を格納メソッド領域に格納静的領域メンバー変数をスタックに格納
  • .
  • ライフサイクルの異なる静的変数:クラスの作成に伴う作成、クラスの消失に伴うメンバー変数の消失:オブジェクトの作成に伴う作成、オブジェクトの消失に伴う
  • の消失
  • 呼び出し方式の異なる静的変数:クラス名.変数オブジェクト名変数メンバー変数:オブジェクト名.変数
  • mainメソッド
      public static void main(String[] args){
      	}
    
  • public:共通で、mainメソッドはJVMによってアクティブに呼び出されるので、アクセス権が最大になります.
  • static:静的、mainメソッドはプログラムのエントリであり、呼び出される前にオブジェクトが存在しないので、staticで
  • を修飾すべきである.
  • void:呼び出し元に値を返します.mainメソッドの呼び出し者はjvmであり,戻り値をjvmに与える意味はない
  • .
  • main:ただの約束俗称名前
  • String[]args:JDK 1.5以前にキーボード入力を受け入れるための弊害:データを文字列タイプに保存するしかなく、プログラム開始時にのみすべてのデータを入力
  • .

    2.学生情報を表すクラスStudioを定義します.要求は以下の通りです.
    (1)クラスStudioのメンバー変数:idは学号を表し、nameは名前を表し、genderは性別を表し、ageは年齢を表し、javaはJavaカリキュラムの成績を表す.(2)比較基準のStudioクラスを書く(3)クラスStudioの定義に従って,クラスの5つのオブジェクトを作成し,各学生の情報を出力し,5つの学生Java言語成績の平均値を計算し出力し,Java言語成績の最大値と最小値を計算して出力する(配列で行うことも考えられる).
    package com.wangdao.day08;
    /**
    * @author Yuechao Yang E-mail:[email protected]
    * @version     :2019 4 2    7:21:57
    *    
    *    (1) Student     :
    	id    ;name    ;gender    ;age    ;java  Java    。
         (2)          Student 
            ( 3)   Student   ,         ,         ,          Java        ,
    	         Java             (        )。
    	          student[]  。           。
    */
    public class StudentDemo {
    
    	public static void main(String[] args) {
    		Student s1 = new Student("001", "  ", " ", 21, 60);
    		Student s2 = new Student("002", "  ", " ", 22, 70);
    		Student s3 = new Student("003", "  ", " ", 23, 80);
    		Student s4 = new Student("004", "  ", " ", 24, 90);
    		Student s5 = new Student("005", "  ", " ", 25, 100);
    		s1.show();
    		s2.show();
    		s3.show();
    		s4.show();
    		s5.show();
    		double[] java = new double[5];
    		//for(int i = 0; i < 5; i++) {
    		//	java[i] = si.getJava();
    		//}			                  ,        
    		java[0] = s1.getJava();
    		java[1] = s2.getJava();
    		java[2] = s3.getJava();
    		java[3] = s4.getJava();
    		java[4] = s5.getJava();
    		double sum = 0;
    		double max = java[0];
    		double min = java[4];
    		for(int i = 0; i < java.length; i++) {
    			sum+=java[i];
    			if(max < java[i])
    				max = java[i];
    			if(min > java[i])
    				min = java[i];
    		}
    		double average = (sum)/5;
    		System.out.println("     " + average + "    " + max + "    " + min);
    		
    	}
    
    }
    
    class Student{
    	//fields
    	//         ,                   
    	private String Id;
    	private String name;
    	private String gender;
    	private int age;
    	private double java;
    	//constructors
    	public Student() {
    		
    	}
    	public Student(String Id, String name, String gender, int age, double java) {
    		this.Id = Id;
    		this.name = name;
    		this.gender = gender;
    		this.age = age;
    		this.java = java;
    	}
    	//methods
    	public void setId(String Id) {
    		this.Id = Id;
    	}
    	public String getId() {
    		return Id;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public String getName() {
    		return name;
    	}
    	public void setGender(String gender) {
    		this.gender = gender;
    	}
    	public String getGender() {
    		return gender;
    	}
    	public void setAge(int age) {
    		this.age = age;
    	}
    	public int getAge() {
    		return age;
    	}
    	public void setJava(double java) {
    		this.java = java;
    	}
    	public double getJava() {
    		return java;
    	}
    	
    	public void show() {
    		System.out.println("Id = " + Id + ", name = " + name + ", gender = " + gender + ", age = " + age + 
    				", java = " + java);
    	}
    }