자바 클래스와 객체
객체란 소프트웨어 세계에서 구현할 대상이다
클래스는 객체를 만들기 위한 설계도, 틀이라고 할 수 있다.
예를 들어 자동차 클래스를 만들고 자동차 객체를 생성한다 하면
예제)
class Main {
public static void main(String[] args) {
// 클래스(자동차) 타입의 변수만 만든 것이다. 변수 a자동차에는 현재 쓰레기 리모컨이 들어있다.
자동차 a자동차;
// 자동차 객체를 만들었다. a자동차에 이제야 제대로 작동하는 리모컨이 들어갔다.
// a자동차에는 자동차를 조종할 수 있는 리모컨이 들어있고 실제 객체는 변수 외부에 생성되었다.
// 리모컨을 통해 실제 객체를 원격 조종한다고 생각하면 된다.
a자동차 = new 자동차();
//a자동차에 있는 리모컨의 달리기() 버튼을 누른 것이다.
a자동차. 달리기();.달리기();
}
}
class 자동차 {
//객체에 기능을 추가하는 것. 리모컨에 버튼을 추가함으로써 원격조종이 가능하게 해 줌
void 달리기() {
System.out.println("자동차가 달립니다.");
}
}
class 자동차 {
}
--> 자동차 클래스를 만들고
자동차 a자동차;
--> 자동차 타입의 변수를 선언해준다.
a자동차 = new 자동차();
--> a자동차라는 변수에 자동차 객체를 만든다.
void 달리기() {
System.out.println("자동차가 달립니다.");
}
--> 자동차에 달리기라는 기능을 만들어 준 것.
자동차 클래스를 만들면 그 이후부터 자동차 타입의 변수와 자동차 객체를 만들 수 있다.
클래스(자동차)를 만들고 변수(a자동차)를 선언한다면
그 변수(a자동차)에는 객체 자동차를 조종할 수 있는 리모컨이 들어가고 실제 객체는 변수 외부에 생성된다.
만약 객체를 만들지 않고 클래스 타입의 변수만 선언했다면 그 변수에는 쓰레기 리모컨이 들어있는 것이다.
변수를 선언한 뒤에 객체를 만들어 주게 되면 비로소 변수에 제대로 작동할 수 있는 리모콘이 들어가게 된다.