Javaクラス、インスタンス、オブジェクト(1)


オブジェクト向け言語Javaを学習した以上、クラス、インスタンス、オブジェクトについて説明します.

  • 概念と総括
    クラス(Class):オブジェクトの設計図を作成します.
    ≪インスタンス|Instance|emdw≫:オブジェクトを作成するための製品.
    オブジェクト:
    コードで理解してみましょう.
    public static void main(String[] args) {
    	System.out.println(10+20);
      System.out.println(10+20);
      .
      .
      .
    }
  • 위와 같은 출력코드가 1000개 있다고 하면, 굉장히 번거롭고 귀찮다.
    아래와 같이 표현해보자.
    
    public static void sum(int left, int right) {
    System.out.println(lefit+right);
    }
    public static void main(String[] args) {
    sum(10,20);
    sum(20,40);
    }
      
    위와 같이 효율적으로 정리된 코드를 refactoring이라고 한다.
    
    2. 객체화
    
    	객체 생성을 하는 예시를 아래 코드를 통해 알아보자.
    
    public static void main(String[] args) {
    Calculator c1 = new Calculator();
    //↑対象
    //Calculatorという新しいオブジェクトが作成され、c 1という変数に含まれます.
    //その変数は、Calculatorオブジェクトという名前のデータ形式で表示する必要があります.
    c1.setOprands(10,20);
    //↑方法
    //10と20というパラメータ値をsetoprandsというメソッドに渡します.
    c1.sum();
    //c 1という名前のオブジェクトに対してsumメソッドを呼び出すと、結果値が得られます.
    c1.avg();
    //c 1という名前のオブジェクトに対してavgという名前のメソッドを呼び出すと、結果値が得られます.
    }
    
    	
     위의 c1이라는 변수에 담겨있는 객체의 내용을 인스턴스라고 한다.
     
     위의 코드에서 객체의 생성과 작동원리를 파악하였다.
     그렇다면 그 객체의 모습, 즉 어떤 변수를 담고 어떻게 작동할것인지 객체의 내용을 알아야 한다. 즉, 설계도를 알아야 한다. 그 설계도를 아래 코드를 통해 파악해보자.
     
    class Calculator{
    int left, right;
    public void setOprands(int left, int right){
    	this.left = left;
        //  ↑여기 this.은 class 초입에서 int로 정의한 변수를 가리킨다.
        // = left; 에서 left는 위의 setOprand( , ) 여기 괄호안의 left를 지칭한다.
        this.right = right;
    }
    public void sum() {
    	System.out.println(this.left+this.right);
        //     sum이라는 메소드의 식은 ↑여기서 정의되어 출력된다.
    }
    public void avg() {
    	System.out.println((this.left+this.right)/2);
        //     avg이라는 메소드의 식은 ↑여기서 정의되어 출력된다.
    }
    
     class Calculator는 new Calculator에 해당하는 클래스이고 그 객체의 내용은 바로 위의 코드 내용이다. 
     객체는 독립된 프로그램으로 볼 수 있다. 변수와 메소드의 집합으로 이해하자.
     또한, setOprands라는 메소드는 바로 위 코드에서 setOprands의 내용과 같다.
     
     이 객체가 어떻게 재활용 가능한지 아래 코드를 확인해보자.
     
    public static void main(String[] args) {
    Calculator c2 = new Calculator();
    //↑new Calculatorでインスタンスを生成しました.
    //そのインスタンスはc 2という変数に含まれます.
    c2.setOprands(20,40);
    //このコードで、左が20、右が40です.
    c2.sum();
    出力//60.
    c2.avg();
    出力//30.
    }
     
     이제 클래스에 대해서 다음 게시물에서 좀 더 자세히 알아보도록 하자.