클래스란, 객체를 정의해 놓은 것이다.
이 말을 수업에서 처음 들었을 때 도대체 무슨 뜻인지를 몰랐다.
한글인데 이해가 전혀 안됨;;
이후에 자바의 정석 기초편을 읽고나서야 조금씩 이해가 되었다.
먼저 객체에 대해서 알아야 한다.
펜을 예시로 설명을 해보겠다.
클래스는 펜의 설계도
객체는 펜
우리가 객체인 펜을 정의해보자면 펜의 색깔, 크기, 글씨쓰기 등을 설명할 수 있을 것이다. 이러한 것들이 모두 정의되어있는 것이 바로 펜의 설계도인 클래스인 것이다!
클레스에 정의되어있는 객체는 속성과 기능 이렇게 2가지의 구성요소로 이루어져있다. 따라서 객체는 속성과 기능의 집합이라 할 수 있는데 이 각각을 그 객체의 멤버(member)라고 한다.
객체지향 프로그래밍에서는 속성과 기능을 각각 변수와 메서드로 표현한다.
속성 (property) -> 멤버변수 (variable)
기능 (function) -> 메서드 (method)
펜으로 다시 예를 들어보면
public class Pen {
String color; // 색깔 속성
int thickness; // 두께 속성
// 그리기 기능
void drawing() { System.out.println("글씨 쓰기"); }
}
이렇게 클래스까지 한 번 만들어 보았다.
위 클래스는 Pen이란 객체를 생성하는 것이 목표이므로 이 설계도를 이용해 Pen을 생성해보도록 하겠다.
이때 클래스로부터 만들어진 객체를 인스턴스(instance)라고 한다.
(객체를 인스턴스라고 생각해도 좋다는 의미!)
public class Pen {
String color; // 색깔 속성
int thickness; // 두께 속성
// 그리기 기능
void drawing() {
System.out.println(color+" "+thickness+"mm펜으로 글씨 쓰기~");
}
}
public class RealPen {
public static void main(String[] args) {
Pen p = new Pen(); // Pen객체 p생성
p.color = "파란색";
p.thickness = 0.5;
p.drawing();
}
}
위와같이 작성 후 결과값으로
파란색 5mm펜으로 글씨 쓰기~ 가 출력된다.
이로써 객체인 Pen을 생성하여 이 객체의 속성과 기능을 사용해 보았다.
객체란 기능과 속성으로 이뤄져 있으며
이 객체를 정의하는 클래스는 기능과 속성 --> 멤버변수와 메서드의 집합
꼭 기억하자!!