クラス、インスタンス、およびオブジェクト


クラスとインスタンスの前のプログラミング


クラスはオブジェクトを作成する設計図で、インスタンスは設計図に基づいて作成された特定の製品です.
package com.yuri.javatutorials.object;

public class CalculatorDemo {
    public static void main(String[] args) {
        // 아래의 로직이 1000줄 짜리의 복잡한 로직이라고 가정하자.
        System.out.println(10 + 20);
        System.out.println(20 + 40);
    }
}
プログラミングの目標...重複除外👀, 再包装とも呼ばれます.コードの内容を改善し、より効率的にします.頻繁に再構築されるコードは、より柔軟になります.

メソッド化

package com.yuri.javatutorials.object;

public class CalculatorDemo2 {
    public static void sum(int left, int right) {
        System.out.println(left + right);
    }
 
    public static void main(String[] args) {
        sum(10, 20);
        sum(20, 40);
    }
}
以前より簡潔であることが確認できます!
package com.yuri.javatutorials.object;

public class CalculatorDemo3 {
	public static void avg(int left, int right) {
		System.out.println((left + right) / 2);
	}

	public static void sum(int left, int right) {
		System.out.println(left + right);
	}

	public static void main(String[] args) {
		int left, right;

		left = 10;
		right = 20;

		sum(left, right);
		avg(left, right);

		left = 20;
		right = 40;

		sum(left, right);
		avg(left, right);
	}
}
オブジェクト向けのコアは、関連する変数とメソッドを組み合わせてグループ化することです.
メソッドとavgは変数leftとrightに関連付けられます.また、和と平均値を求めるのは他のアプリケーションでも使える機能です.これらを1つの部品に組み合わせると、必要に応じて繰り返し使用できます.オブジェクトを作成する時です.

オブジェクト化

package com.yuri.javatutorials.object;

class Calculator{
    int left, right;
      
    public void setOprands(int left, int right){
        this.left = left;
        this.right = right;
    }
      
    public void sum(){
        System.out.println(this.left+this.right);
    }
      
    public void avg(){
        System.out.println((this.left+this.right)/2);
    }
}

public class CalculatorDemo4 {
    public static void main(String[] args) {
        
        Calculator c1 = new Calculator();
        c1.setOprands(10, 20);
        c1.sum();       
        c1.avg();       
          
        Calculator c2 = new Calculator();
        c2.setOprands(20, 40);
        c2.sum();       
        c2.avg();
    }
}

カテゴリ


class Calculator {
変数leftとright、メソッドsum、avgは関連する論理である.これらの論理の関連性は計算を行うためである.これらの論理を表す名前を計算機の計算機とし,それらをCalculatorに組み合わせた.このとき使うキーワードはclassです.classキーワードの後ろにクラス名があり、後ろのカッコはクラスの開始と終了の境界を表します.これにより,加算(sum)と平均(avg)を計算できるクラスが形成される.クラスは次のように定義できます.
クラスは、関連する変数とメソッドの集合です.

≪インスタンス|Instance|emdw≫


次に、クラスの使用方法について説明します.クラスは設計図です.定義クラス自体ができることは多くありません.設計図は具体的な製品にしなければならない.その時使ったキーワードはnew.
alculator c1 = new Calculator();
New Calculator()はクラスCalculatorを具体的な製品にするコマンドです.このようにして作成された特定の製品をインスタンスと呼びます.次の関係を覚えてください.
  • 類:図面
  • 例:製品
  • 上記のコードは、newを使用して作成されたインスタンスを変数c 1に含む.インスタンスを変数c 1に含めるのは、c 1によってインスタンスを制御する必要があるからである.しかしc 1の前にCatulatorがあります.これまで多くの変数を発表してきた.例えば、変数aは、変数が含むことができるデータ型に応じて、以下のように宣言される.

    では、変数名c 1を表すデータ型は何でしょうか.
    Calculator c1
    これは計算機を意味します.つまり、クラスの作成はカスタムデータ型の作成に等しい.クラスをインスタンス化するときに変数に含める必要があります.このとき使用する変数のデータ型がクラスです.
    クラスを変数とメソッドの集合と見なすだけでは不十分です.オブジェクトを作成して使用する理由は、リサイクル性を向上させるためです.
    Calculator c1 = new Calculator();
    c1.setOprands(10, 20);
    c1.sum();
    c1.avg();
    Calculator c2 = new Calculator();
    c2.setOprands(20, 40);
    c2.sum();
    c2.avg();
    上記のコードは、2つのインスタンスをそれぞれc 1およびc 2に含む.次に、各インスタンスに属するメソッドを呼び出します.各インスタンスは、メソッド設定オプションによって変数の左、右の値を設定します.その結果、インスタンスC 1およびC 2は、以下のような異なる変数の値を有する.
    public void setOprands(int left, int right){
    this.left = left;
    this.right = right;
    }
    このときメソッドsetopprands内でthis.こんなものがありました.これは、クラスによって作成されたインスタンス自体を指します.上のコードではleftはsetOprandsからのみアクセスできるパラメータです.逆に、this.leftは4行目に宣言された変数に値を設定し、メソッド以外に宣言された変数はインスタンス内のすべてのメソッドからアクセスできます.

    変数とメソッド



    もう一つの言い方は状態(state)です.c1.sumの結果は30,c 2であった.sumの結果は60であり、ステータスの異なるオブジェクトに対してメッセージソースを実行すると、異なる結果が表示されることがわかります.もう一つの言い方は行為です.
  • 変数:ステータス
  • 方法:行動
  • すなわち、クラスに基づいて異なるステータスのインスタンスを作成すると、異なる動作が発生します.1つのクラスは複数のインスタンスであってもよく、これはオブジェクト向けに提供される最も基本的な再利用可能性と言える.
    オブジェクト向けのオブジェクトをウィジェットと見なしましょう.オブジェクトという名前のウィジェットをプログラムに作成します.これらをレゴの積み木のように積み上げて壮大な番組を作ることが対象への追求と言える.
    この文章は生活コードに基づくjavaチュートリアルのまとめです.