Java에서 객체와 클래스 기본 이해하기: 간단한 상품 관리 예제
Java를 처음 배우는 분들을 위해 클래스와 객체의 개념을 쉽게 이해할 수 있도록 간단한 예제를 준비했습니다. 이번 글에서는 상품 정보 관리 프로그램을 만들어 보면서 클래스와 객체를 배우고, 이를 활용해 데이터를 출력하는 방법을 알아보겠습니다.
1. 클래스(Class)란?
클래스는 객체를 생성하기 위한 설계도입니다. 클래스 안에는 객체가 가질 속성(필드)과 행동(메서드)을 정의합니다.
클래스를 사용하면 동일한 구조를 가진 여러 객체를 쉽게 생성할 수 있습니다.
2. 간단한 Goods 클래스 만들기
상품 정보를 저장하는 클래스 Goods를 만들어 보겠습니다. 이 클래스에는 상품명(name)과 가격(price)을 저장할 필드(Field)를 정의합니다.
Goods.java
package com.javaex.oop.goods.v1;
// v1. 필드만 있는 클래스
public class Goods {
// 필드 선언
String name; // 상품명
int price; // 가격
}
필드(Field): 클래스 안에서 정의된 변수로, 객체가 가져야 할 데이터를 저장합니다.
- String name: 상품 이름을 저장합니다.
- int price: 상품 가격을 저장합니다.
3. 클래스 기반 객체 생성
이제 Goods 클래스를 사용하여 실제 객체(상품)를 생성하고 데이터를 저장해 보겠습니다. 이를 위해 GoodsApp이라는 클래스를 만듭니다.
GoodsApp.java
package com.javaex.oop.goods.v1;
public class GoodsApp {
public static void main(String[] args) {
// Goods 클래스 객체 생성
Goods pc = new Goods(); // 첫 번째 상품 객체
pc.name = "LG그램"; // 이름 설정
pc.price = 900_000; // 가격 설정
Goods mug = new Goods(); // 두 번째 상품 객체
mug.name = "머그컵"; // 이름 설정
mug.price = 2_000; // 가격 설정
// 상품 정보 출력
System.out.printf("%s, %,d원%n", pc.name, pc.price);
System.out.printf("%s, %,d원%n", mug.name, mug.price);
}
}
4. 코드 분석
(1) 객체 생성
Goods pc = new Goods();
- new Goods(): Goods 클래스를 기반으로 새로운 객체를 생성합니다.
- pc: Goods 객체를 참조하기 위한 변수입니다.
(2) 필드 값 설정
pc.name = "LG그램";
pc.price = 900_000;
- 객체의 필드인 name과 price에 값을 저장합니다.
(3) 출력
System.out.printf("%s, %,d원%n", pc.name, pc.price);
- pc.name: 객체 pc의 name 필드 값을 출력합니다.
- pc.price: 객체 pc의 price 필드 값을 출력합니다.
- %,d: 숫자를 천 단위로 쉼표를 추가해 출력합니다.
5. 실행 결과
코드를 실행하면 다음과 같이 출력됩니다:
LG그램, 900,000원
머그컵, 2,000원
6. 주요 개념 정리
(1) 클래스와 객체의 관계
- 클래스는 설계도입니다.
- 객체는 클래스를 기반으로 만들어지는 실제 데이터입니다.
(2) 필드(Field)
- 객체가 가진 속성입니다. 예제에서 name과 price가 필드입니다.
(3) 객체의 사용
- 객체를 생성한 후, 필드에 값을 설정하고 필요할 때 값을 가져와 사용할 수 있습니다.
7. 클래스가 필요한 이유
클래스를 사용하면 같은 구조를 가지는 객체를 쉽게 여러 개 생성할 수 있습니다. 예를 들어, 수백 개의 상품 정보를 관리하려면 클래스를 사용해 객체를 생성하는 것이 훨씬 간단하고 효율적입니다.
8. 개선 아이디어
이 예제는 간단하지만, 몇 가지 개선할 수 있는 점이 있습니다:
- 캡슐화(Encapsulation): 필드를 private로 설정하고 값을 안전하게 설정/가져오기 위해 Getter와 Setter 메서드를 추가할 수 있습니다.
- 메서드 추가: 상품 정보를 출력하는 전용 메서드를 만들어 더 깔끔하게 관리할 수 있습니다.
9. 정리
이 글에서는 자바의 클래스와 객체 개념을 배우기 위해 Goods 클래스를 사용해 간단한 상품 관리 프로그램을 만들어 보았습니다. 클래스는 객체를 생성하기 위한 설계도이며, 객체는 클래스의 인스턴스라고 할 수 있습니다.
앞으로는 클래스를 더 확장하고 다양한 기능을 추가하면서 객체지향 프로그래밍(OOP)의 강력함을 체험해 보세요! 😊
즐거운 코딩 되세요! 🚀