개발자 도전기
[JAVA] 클래스와 인스턴스 - 설계도와 제품 본문
메소드를 사용하면 코드를 재활용 할 수 있다. 그러나 메소드를 이용한 재활용에서는 변수명이 겹칠 수 있다는 위험성이 있다. 이를 피하면서 반복적으로 사용되는 변수와 메소드를 재활용 하기 위해 객체를 사용할 수 있다.
클래스란 객체를 만들 수 있는 설계도이다.
인자인 상태와 메소드인 행위로 나뉘어져 있다.
이 클래스 명을 활용해서 '클래스명 변수명 = new 클래스명'의 형식으로 새로운 변수에 담을 수 있다. 이렇게 만들어진 객체를 인스턴스라고 한다. 이때, 클래스명은 하나의 데이터타입이 된다.
public 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 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();
}
}
여기서 this.란 인스턴스를 가리킨다. 즉, this.left는 class 초반에 선언된 int left와 같다.
그리고 인스턴스와 객체는 설명을 듣다보니 혼동이 되었는데 객체란 추상적인 개념이고 인스턴스는 클래스를 통해 만들어진 객체 하나하나를 인스턴스라고 한다. 일반적으로 혼용해서 표현한다고 한다.
각각의 인스턴스들을 구분하는 것은 상태, 즉 변수의 값이다.
'개발공부 > JAVA' 카테고리의 다른 글
[JAVA] 유효범위-전역변수, 지역변수 (생활코딩 공부 정리) (0) | 2024.01.30 |
---|---|
[JAVA] 클래스 맴버, 인스턴스 맴버 (생활코딩 공부 정리) (0) | 2024.01.30 |
[JAVA] 객체 지향 프로그래밍 입문 (0) | 2024.01.28 |
[JAVA] 메소드의 출력 (0) | 2024.01.28 |
[JAVA] for-each문 (0) | 2024.01.27 |