オブジェクト向け言語


1.プログラムガイドVSオブジェクトガイド


プログラムをガイドとするオブジェクト向けの開始と終了が決定され、すべてのプロセスが順番に行われます.ある順序にエラーが発生すると、その後、プロセス全体が麻痺します.順序に関係なく、各オブジェクトは独立して使用され、1つのオブジェクトにエラーが発生しても、他のオブジェクトには影響しません.

「オブジェクトは独立して使用されます。」

class Calculator {
    int result = 0;

    int add (int num){
        result += num;
        return result;
    }
}

// 계산기를 더 만들기 위해 클래스를 또 만들 필요가 없다.
//class Calculator2 { 
//    int result = 0;
//
//    int add(int num){
//        result += num;
//        return result;
//    }
//}

public class ObjectOrientedProgram {
    public static void main (String[]args) {
		Calculator cal1 = new Calculator (); // 계산기 1객체를 생성
		Calculator cal2 = new Calculator (); // 계산기 2객체를 생성

		// 계산기 1에서는
		System.out.println(cal1.add(3)); // 3을 출력
		System.out.println(cal1.add(4)); // 7을 출력

		// 계산기 2에서는			
		System.out.println(cal2.add(3)); // 3을 출력
		System.out.println(cal2.add(7)); // 10을 출력
	}
}
各オブジェクトは、他のオブジェクトとは独立した結果値を保持します.オブジェクト向けプログラムの最大の利点は、追加のクラスを作成することなく、他の独立したオブジェクトを作成できることです.

2.Javaコンポーネント


(1)クラス


:オブジェクトを作成するオブジェクトのフレームを定義します。例えば、類はフナ餅を作るフレームで、対象はフレームによって作られるフナ餅です。


「レベルはフレーム」

class Animal{ 
	String name;
Animalという名前のクラスは有名な属性を持ち、クラスに宣言された変数をオブジェクト変数(インスタンス変数、メンバー変数、属性)と呼ぶ.
	public void setName(String name){
		this.name = name;
	}
}
Animalクラスによって生成されるオブジェクトには、nameという変数(Animalクラスによって生成されるオブジェクトを指す)があります.つまり、Animalクラスは自分のオブジェクトにnameという属性を付ける「フレームワーク」です.

public class Class{
  public static void main(String[]args){
		Animal cat = new Animal();
		cat.setName("boby");

		System.out.println(cat.name);
	}
}
Animalクラスでcatオブジェクト(catはAnimalのインスタンス)を作成することで、catオブジェクトをbobyと命名できます.すなわち,オブジェクトはフレームワークによる結果である.cat.setName("boby")の解釈順序
:setNameの入力値nameには、「boby」(this.name=「boby」)という文字列が含まれます.
->Animalクラスのオブジェクトを表します
->それでcatになりました.name = "boby"System.out.println(cat.name):boby出力.

(2)メソッド(関数)


:関数と同じ意味です。また,プログラミングでは,関数は必要に応じて予め作成されたものを用いることを意味する.


メソッドは関数です

public class Method{

	// 입력값과 리턴값이 있는 메소드
	int sum1(int a, int b) {
		return a + b;
	}

	// 입력값이 없고 리턴값만 있는 메소드
	String say1() {
	  return "Hi";
	}

	// 입력값이 있고 리턴값이 없는 메소드
	void sum2(int a, int b) {
		System.out.println(a+"과 "+b+"의 합은 "+(a+b)+"입니다.");
	}

	// 입력값도 리턴값도 없는 메소드
	void say2() {
		System.out.println("Hi");
	}
}    

(3)作成者


:オブジェクトを作成するときに[オブジェクトを初期化](Initialization Object)の方法を使用します。オブジェクトは作成者によって作成されます。


オブジェクトの初期化


Javaはオブジェクト向けの言語で、私たちが生活している世界をモデリングします.私たちの世界で生活しているすべての人(客体)は自分の全体性を持っています.したがって、Java内のオブジェクトも作成するたびにプロパティを付与する必要があり、プロパティを付与する動作を「初期化」と呼ぶ.
class HouseDog {
	String name;

	void setName(String name) {
		this.name = name; 

		HouseDog(String name) {
        }  
	}  
}
HouseDog(String name):(パラメータ)作成者
ジェネレータのメソッド名はクラス名と同じで、戻りタイプは定義されません.このジェネレータは、名前の文字列をHouseDogクラスのオブジェクトに初期値として割り当てたジェネレータです.すなわち、ジェネレータは、クラスインスタンスがオブジェクト変数値を設定してオブジェクトを作成する必要があることを強制する方法です.
class WildDog {
	WildDog() { 
    }
}
WildDog():デフォルト(デフォルト)作成者
作成者入力項目がなく、作成者内部に何もない作成者をデフォルト作成者と呼びます.オブジェクトを作成するときにコンストラクション関数がない場合、デフォルトのコンストラクション関数が自動的に作成されます.つまり、クラス内のオブジェクトを作成すると、デバッガが実行され、初期値はありません.
クラスに作成者が1人もいない場合、コンパイラは自動的にデバッガを追加します.ただし、ユーザーが作成した(パラメータ)作成者がいる場合、コンパイラはデバッガ作成者を自動的に追加しません.
public class Constructor{
  public static void main(String[]args) {
		HouseDog houseDog = new HouseDog("happy");
	}
}
したがって、Housedogクラスに文字列nameを入力とするコンストラクタHouseDog(String name)が作成されると、初期値のないオブジェクトは直ちに作成されない(new HouseDog()).すでにHOUSEDOGクラスにジェネレータが作成されているため、コンパイラはデバッガジェネレータを自動的に追加しません.HouseDog houseDog = new HouseDog()と同じ方法でオブジェクトを作成する場合は、デバッガを作成できます.