
1. 몬스터(Pokemon) 클래스 예제 🌟
필드(멤버 변수)는 클래스 내부에서 타입과 함께 선언됩니다.
📝 Java 코드
Java
// 🌟 Pokemon (포켓몬) 클래스
class Pokemon {
// 2. ✨ 필드 (Field) / 자바에서는 멤버 변수
// 객체가 가지는 속성(데이터)을 정의합니다. (타입 지정 필수!)
String name; // 이름 멤버 변수
String type; // 타입 멤버 변수
int hp; // 체력 멤버 변수
// 1. 🛠️ 생성자 (Constructor)
// 클래스 이름과 동일하며, 객체를 만들 때(new Pokemon("피카츄", "전기", 35);) 실행됩니다.
public Pokemon(String name, String type, int hp) {
// 매개변수로 받은 값을 필드에 초기 설정합니다.
this.name = name;
this.type = type;
this.hp = hp;
System.out.println("새로운 포켓몬 '" + this.name + "'(이)가 탄생했습니다! (생성자 실행)");
}
// 3. 🏃♂️ 메서드 (Method)
// 객체가 할 수 있는 행동(기능)입니다.
public void useSkill(String skillName) {
System.out.println("[" + this.name + "]이(가) '" + skillName + "' 스킬을 사용합니다! ⚡️");
}
public void showStatus() {
System.out.println("--- " + this.name + " 상태 ---");
System.out.println("타입: " + this.type + ", 체력: " + this.hp);
System.out.println("--------------------");
}
}
// --- 객체 만들기 및 사용 (Main 메서드) ---
public class PokemonExample {
public static void main(String[] args) {
// 이 순간 생성자(public Pokemon(...))가 실행됩니다!
Pokemon pikachu = new Pokemon("피카츄", "전기", 35);
// --- 필드 접근 및 메서드 사용 ---
System.out.println("피카츄의 현재 체력 필드: " + pikachu.hp); // 필드(hp) 값 확인
pikachu.useSkill("백만볼트"); // 메서드(useSkill) 사용
pikachu.showStatus(); // 메서드(showStatus) 사용
}
}
💻 코드 실행 결과 (예상)
새로운 포켓몬 '피카츄'(이)가 탄생했습니다! (생성자 실행)
피카츄의 현재 체력 필드: 35
[피카츄]이(가) '백만볼트' 스킬을 사용합니다! ⚡️
--- 피카츄 상태 ---
타입: 전기, 체력: 35
--------------------
2. 자동차(Car) 클래스 예제 🚗
자바에서는 타입을 명시해야 하며, 기본값 False는 boolean 타입의 false로 지정됩니다.
📝 Java 코드
Java
// 🌟 Car (자동차) 클래스 정의
class Car {
// 2. ✨ 필드 (Field) / 멤버 변수
// 자동차 객체가 가지는 특징들을 저장하는 곳입니다.
String color; // 색깔 필드
int maxSpeed; // 최고 속도 필드
boolean isRunning; // 현재 달리고 있는지 (기본값은 false)
// 1. 🛠️ 생성자 (Constructor)
public Car(String color, int maxSpeed) {
this.color = color; // 색깔 필드 설정
this.maxSpeed = maxSpeed; // 최고 속도 필드 설정
this.isRunning = false; // 현재 상태는 false로 초기화 (명시적으로 안 해도 기본값은 false)
System.out.println("[" + this.color + "색 자동차]가 공장에서 만들어졌습니다! (생성자 완료)");
}
// 3. 🏃♂️ 메서드 (Method) - 시동 걸고 달리기
public void startEngine() {
this.isRunning = true;
System.out.println("[" + this.color + "색 자동차]가 시동을 걸고 **부릉부릉** 달리기 시작합니다! 💨");
}
// 3. 🏃♂️ 메서드 (Method) - 멈추기
public void stopEngine() {
this.isRunning = false;
System.out.println("[" + this.color + "색 자동차]가 멈췄습니다. (현재 속도: 0)");
}
// 3. 🏃♂️ 메서드 (Method) - 상태 확인
public void checkStatus() {
// 자바에서는 삼항 연산자 (조건 ? 참일 때 값 : 거짓일 때 값)를 사용합니다.
String status = this.isRunning ? "달리는 중" : "정지 상태";
System.out.println("--- 현재 상태 ---");
System.out.println("색깔: " + this.color);
System.out.println("최고 속도: " + this.maxSpeed + " km/h");
System.out.println("상태: **" + status + "**");
System.out.println("-----------------");
}
}
// --- 객체 만들기 및 사용 (Main 메서드) ---
public class CarExample {
public static void main(String[] args) {
System.out.println("=== 첫 번째 자동차 만들기 ===");
// 1️⃣ 빨간색 스포츠카 객체(인스턴스) 만들기
Car myCar = new Car("빨강", 300);
System.out.println("\n");
System.out.println("=== 두 번째 자동차 만들기 ===");
// 2️⃣ 파란색 미니카 객체(인스턴스) 만들기
Car friendCar = new Car("파랑", 150);
System.out.println("\n");
// --- 객체의 필드와 메서드 사용 ---
System.out.println("=== 내 자동차 (빨강) 작동 시작 ===");
myCar.checkStatus(); // 메서드 사용: 현재 정지 상태
myCar.startEngine(); // 메서드 사용: 시동 걸고 달리기
myCar.checkStatus(); // 메서드 사용: 현재 달리는 중
System.out.println("\n");
System.out.println("=== 친구 자동차 (파랑) 작동 시작 ===");
friendCar.checkStatus(); // 메서드 사용: 현재 정지 상태
friendCar.startEngine();
friendCar.stopEngine(); // 메서드 사용: 멈추기
friendCar.checkStatus();
}
}
💻 코드 실행 결과 (예상)
=== 첫 번째 자동차 만들기 ===
[빨강색 자동차]가 공장에서 만들어졌습니다! (생성자 완료)
=== 두 번째 자동차 만들기 ===
[파랑색 자동차]가 공장에서 만들어졌습니다! (생성자 완료)
=== 내 자동차 (빨강) 작동 시작 ===
--- 현재 상태 ---
색깔: 빨강
최고 속도: 300 km/h
상태: **정지 상태**
-----------------
[빨강색 자동차]가 시동을 걸고 **부릉부릉** 달리기 시작합니다! 💨
--- 현재 상태 ---
색깔: 빨강
최고 속도: 300 km/h
상태: **달리는 중**
-----------------
=== 친구 자동차 (파랑) 작동 시작 ===
--- 현재 상태 ---
색깔: 파랑
최고 속도: 150 km/h
상태: **정지 상태**
-----------------
[파랑색 자동차]가 시동을 걸고 **부릉부릉** 달리기 시작합니다! 💨
[파랑색 자동차]가 멈췄습니다. (현재 속도: 0)
--- 현재 상태 ---
색깔: 파랑
최고 속도: 150 km/h
상태: **정지 상태**
-----------------
3. 은행 계좌(Account) 클래스 예제 🏦
자바에서는 조건문 (if (조건) { ... } else { ... }) 을 사용하여 잔액이 충분한지 확인하는 로직을 만듭니다.
📝 Java 코드
Java
// 🌟 Account (은행 계좌) 클래스 정의
class Account {
// 2. ✨ 필드 (Field) / 멤버 변수
// 계좌 객체가 가지는 중요한 데이터들을 저장하는 곳입니다.
String ownerName; // 예금주 이름 필드 (String)
String accountNumber; // 계좌 번호 필드 (String)
long balance; // 잔액 필드 (long 타입으로 큰 금액도 처리)
// 1. 🛠️ 생성자 (Constructor)
public Account(String ownerName, String accountNumber) {
this.ownerName = ownerName;
this.accountNumber = accountNumber;
this.balance = 0; // 잔액 필드 (처음엔 0원으로 시작)
System.out.println("**[" + this.ownerName + " 님]**의 계좌가 개설되었습니다! (계좌번호: " + this.accountNumber + ")");
}
// 3. 🏃♂️ 메서드 (Method) - 저금/입금 기능
public void deposit(long amount) {
// amount (금액)만큼 잔액 필드(this.balance)에 더해줍니다.
this.balance += amount;
System.out.println("💰 " + amount + " 원이 입금되었습니다.");
checkBalance(); // 잔액 확인 메서드 호출
}
// 3. 🏃♂️ 메서드 (Method) - 출금 기능
public void withdraw(long amount) {
if (this.balance >= amount) {
// 잔액이 충분하면, amount만큼 잔액 필드에서 빼줍니다.
this.balance -= amount;
System.out.println("💸 " + amount + " 원이 출금되었습니다.");
} else {
System.out.println("🚨 잔액이 부족합니다!");
}
checkBalance(); // 잔액 확인 메서드 호출
}
// 3. 🏃♂️ 메서드 (Method) - 잔액 확인 기능
public void checkBalance() {
// 잔액 필드의 현재 값을 보여줍니다.
System.out.println("✅ 현재 잔액: **" + this.balance + "** 원");
System.out.println("--------------------");
}
}
// --- 객체 만들기 및 사용 (Main 메서드) ---
public class AccountExample {
public static void main(String[] args) {
System.out.println("=== 🧒 철수 계좌 개설 ===");
// 1️⃣ 내 계좌 객체(인스턴스) 만들기
Account myAccount = new Account("철수", "123-456");
System.out.println("\n");
System.out.println("=== 👩 영희 계좌 개설 ===");
// 2️⃣ 엄마 계좌 객체(인스턴스) 만들기
Account momAccount = new Account("영희", "789-012");
System.out.println("\n");
// --- 객체의 메서드 사용 ---
System.out.println("=== 💰 철수 계좌 활동 ===");
myAccount.deposit(50000); // 50,000원 입금 메서드 사용
myAccount.withdraw(10000); // 10,000원 출금 메서드 사용
myAccount.withdraw(80000); // 잔액 부족으로 출금 실패 (조건문 확인)
System.out.println("\n");
System.out.println("=== 💰 영희 계좌 활동 ===");
momAccount.deposit(1000000); // 1,000,000원 입금 메서드 사용
momAccount.checkBalance(); // 잔액 확인 메서드 사용
}
}
💻 코드 실행 결과 (예상)
=== 🧒 철수 계좌 개설 ===
**[철수 님]**의 계좌가 개설되었습니다! (계좌번호: 123-456)
=== 👩 영희 계좌 개설 ===
**[영희 님]**의 계좌가 개설되었습니다! (계좌번호: 789-012)
=== 💰 철수 계좌 활동 ===
💰 50000 원이 입금되었습니다.
✅ 현재 잔액: **50000** 원
--------------------
💸 10000 원이 출금되었습니다.
✅ 현재 잔액: **40000** 원
--------------------
🚨 잔액이 부족합니다!
✅ 현재 잔액: **40000** 원
--------------------
=== 💰 영희 계좌 활동 ===
💰 1000000 원이 입금되었습니다.
✅ 현재 잔액: **1000000** 원
--------------------
✅ 현재 잔액: **1000000** 원
--------------------
자바 예제를 통해 클래스, 생성자, 필드(멤버 변수), 메서드의 개념이 파이썬과 거의 동일하며, 단지 문법(타입 선언, 생성자 모양 등)만 다르다는 것을 이해하셨을 겁니다.
'Java_language' 카테고리의 다른 글
| 클래스 만들기 연습문제 (0) | 2025.11.26 |
|---|---|
| 클래스의 객체 생성 및 사용 (0) | 2025.11.26 |
| 객체지향 개념 (클래스, 객체, 인스턴스) (0) | 2025.11.26 |
| 클래스란 무엇일까요? (0) | 2025.11.26 |
| 정렬, 버블정렬 알고리즘 Bubble Sort (0) | 2025.11.24 |