반응형
# 객체화
- 객체 지향의 핵심은 연관되어 있는 변수와 메소드를 하나의 그룹으로 묶어 그룹핑하는 것이다.
## 계산기 객체를 이용한 연산
- 객체는 마치 하나의 독립된 프로그램으로 볼 필요가 있다. (객체는 프로그램 안에 있는 작은 프로그램이다.)
- 그리고 그 프로그램 안에는 변수와 메소드 등이 존재, 메소드의 집합이 곧 객체이다.
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란 그 인스턴스 자신을 의미
반응형
'알고리즘 > 프로그래머스, 백준, 구름' 카테고리의 다른 글
백준_입출력과 사칙연산 (0) | 2022.03.09 |
---|---|
[구름] 클래스 맴버, 인스턴스 맴버, 클래스 변수 (0) | 2020.11.13 |
[구름] 객체 지향 프로그래밍(Object-Oriented Programming) (0) | 2020.11.11 |
[구름] 앱 실행중 데이터 입력(Scanner, hasNextInt), 여러형태로 입출력(파일로 입력받기, GUI) (0) | 2020.11.11 |
[구름] 메소드 (0) | 2020.11.10 |