반응형
📄 클래스 (Class)란?
- 클래스는 객체를 생성하기 위한 '틀' 또는 설계도이다.
- 클래스는 객체가 가져야 할 속성(변수)과 기능(메서드)를 정의한다.
- 예를 들어 붕어빵이라는 클래스는 속성으로 재료, 소스를 가진다.
붕어빵 틀과 붕어빵의 관계
- 붕어빵 틀을 생각해 보자.
- 붕어빵 틀은 붕어빵이 아니다!
- 이렇게 생긴 붕어빵이 나왔으면 좋겠다고 만드는 틀일 뿐이다.
- 실제 먹을 수 있는 것이 아니다.
- 실제 먹을 수 있는 팥 붕어빵을 객체 또는 인스턴스라 한다.
자동차 설계도와 자동차
- 자동차 설계도를 생각해 보자.
- 자동차 설계도는 자동차가 아니다!
- 설계도는 실제 존재하는 것이 아니라 개념으로만 있는 것이다.
- 설계도를 통해 생산한 실제 존재하는 검은색 K5 모델 자동차를 객체 또는 인스턴스라 한다.
🖥️ Java 소스 코드로 이해하기
붕어빵 2개를 만드는 아래 코드를 보자. 참고로 변수명은 쉬운 이해를 위해 한글로 작성하겠다.
ClassStart.java
public class ClassStart {
public static void main(String[] args) {
String 붕어빵1재료 = "밀가루";
String 붕어빵1소스 = "팥";
String 붕어빵2재료 = "찹쌀";
String 붕어빵2소스 = "슈크림";
System.out.println("재료:" + 붕어빵1재료 + " 소스:" + 붕어빵1소스);
System.out.println("재료:" + 붕어빵2재료 + " 소스:" + 붕어빵2소스);
}
}
이 코드의 문제점은 붕어빵의 종류가 늘어날 때 마다 변수를 추가로 선언해야하고,
또 출력하는 코드도 추가해야 한다.
해당 문제를 해결하기 위해서는 클래스(붕어빵 틀)을 도입해야 한다.
👉 클래스 도입
아래 코드는 붕어빵 틀을 클래스(Class)로 나타낸 코드이다.
Bungeobbang.java
public class Bungeobbang {
String 재료;
String 소스;
}
클래스를 통해 앞으로 붕어빵의 속성(재료, 소스)은 작성하지 않게 되었다.
클래스를 통해 붕어빵 2개를 만드는 아래 코드를 보자.
ClassStart1.java
public class ClassStart1 {
public static void main(String[] args) {
Bungeobbang 붕어빵1 = new Bungeobbang();
붕어빵1.재료 = "밀가루";
붕어빵1.소스 = "팥";
Bungeobbang 붕어빵2 = new Bungeobbang();
붕어빵2.재료 = "찹쌀";
붕어빵2.소스 = "슈크림";
System.out.println("재료:" + 붕어빵1.재료 + " 소스:" + 붕어빵1.소스);
System.out.println("재료:" + 붕어빵2.재료 + " 소스:" + 붕어빵2.소스);
}
}
붕어빵의 종류가 늘어날 때마다 new 연산자를 사용하여 추가로 인스턴스를 선언해야 하지만,
우리는 붕어빵을 어떻게 만들지 고민할 필요가 사라졌다.
어떤 재료와 어떤 소스를 넣을지만 고민하면 된다.
참고: 배열을 통하여 해당 소스 코드를 최적화할 수 있다.
반응형
'JAVA' 카테고리의 다른 글
[Java] 인수(Argument)란? 매개변수(Parameter)란? 아주 쉽게 정리(+코드) (0) | 2024.10.23 |
---|---|
[Java] 객체(Object)란? 인스턴스(Instance)란? 아주 쉽게 정리(+코드) (0) | 2024.10.16 |
[Spring Security] WebSecurityConfiguration 총정리 (0) | 2023.09.12 |
[postman][Spring] JPA 라이브러리로 API 전송 시 NULL 값 발생 해결 방법 (0) | 2023.08.26 |
[Spring] com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException 에러 해결 방법 (0) | 2023.08.09 |
댓글