반응형

# 객체화

  • 객체 지향의 핵심은 연관되어 있는 변수와 메소드를 하나의 그룹으로 묶어 그룹핑하는 것이다. 

## 계산기 객체를 이용한 연산

  • 객체는 마치 하나의 독립된 프로그램으로 볼 필요가 있다. (객체는 프로그램 안에 있는 작은 프로그램이다.)
  • 그리고 그 프로그램 안에는 변수와 메소드 등이 존재, 메소드의 집합이 곧 객체이다.
public class Calculator {
	int left;
	int right;
	public void setOperands(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 Main {
	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();
        
    }
}

## 클래스(설계도) 와 인스턴스(제품)

  • 클래스 : 클래스는 일종의 설계도이며, 클래스를 정의하는 것 자체로 할 수 있는 일은 많지 않다. 설계도를 구체적인 제품으로 만들어야 하는데, 그 때 사용하는 키워드가 new 이다.
  • 인스턴스 : new Calculator()은 클래스 Calculator를 구체적인 제품으로 만드는 명령어이다. 이렇게 만들어진 구체적인 제품(객체)을 인스턴스라고 부른다.
  • 객체는 상태와 행위의 집합. ( 변수는 상태(state), 메소드는 행위(행동, behave) )
public class Calculator {
	int left;
	int right;
	public void setOperands(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 Main {
	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 에서 class 란?
=> Calculator라고 하는 객체의 설계도를 컴퓨터에게 알려주겠다는 것을 의미로 약속되어있는 키워드.

* this.left, this.right 에서 this 란?
=> Calculator를 정의할 때 정의한 변수를 의미. 즉 this란 그 인스턴스 자신을 의미
반응형

+ Recent posts