Java에서 클래스는 객체 지향 프로그래밍의 기본 구성 요소로, 속성(필드)과 동작(메서드)을 정의하는 템플릿이다. 클래스는 현실 세계의 사물이나 개념을 모델링하는 데 사용된다.
클래스는 class 키워드를 사용하여 정의하며, 필드와 메서드로 구성된다. 필드는 객체의 상태를 나타내고, 메서드는 객체의 동작을 정의한다.
public class Car {
// 필드
private String color;
private String model;
private int year;
// 생성자
public Car(String color, String model, int year) {
this.color = color;
this.model = model;
this.year = year;
}
// 메서드
public void displayInfo() {
System.out.println("차종: " + model + ", 색상: " + color + ", 연식: " + year);
}
}
클래스에서 객체를 생성하려면 new 키워드를 사용한다.
public class Main {
public static void main(String[] args) {
// Car 클래스의 객체 생성
Car myCar = new Car("빨강", "소나타", 2020);
myCar.displayInfo(); // 차종: 소나타, 색상: 빨강, 연식: 2020
}
}
아래 예제에서는 BankAccount 클래스를 정의하여 은행 계좌를 모델링하고, 이 클래스에서 입금과 출금을 관리하는 방법을 보여준다.
public class BankAccount {
// 필드
private String accountNumber;
private double balance;
// 생성자
public BankAccount(String accountNumber) {
this.accountNumber = accountNumber;
this.balance = 0.0; // 초기 잔액 0
}
// 입금 메서드
public void deposit(double amount) {
if (amount > 0) {
balance += amount;
System.out.println(amount + "원이 입금되었습니다.");
} else {
System.out.println("잘못된 금액입니다.");
}
}
// 출금 메서드
public void withdraw(double amount) {
if (amount > 0 && amount <= balance) {
balance -= amount;
System.out.println(amount + "원이 출금되었습니다.");
} else {
System.out.println("출금할 수 있는 잔액이 부족합니다.");
}
}
// 잔액 조회 메서드
public void displayBalance() {
System.out.println("계좌 " + accountNumber + "의 현재 잔액은 " + balance + "원입니다.");
}
}
public class Main {
public static void main(String[] args) {
// BankAccount 객체 생성
BankAccount account = new BankAccount("123-456-789");
// 잔액 조회
account.displayBalance(); // 계좌 123-456-789의 현재 잔액은 0.0원입니다.
// 입금
account.deposit(10000); // 10000원이 입금되었습니다.
account.displayBalance(); // 계좌 123-456-789의 현재 잔액은 10000.0원입니다.
// 출금
account.withdraw(5000); // 5000원이 출금되었습니다.
account.displayBalance(); // 계좌 123-456-789의 현재 잔액은 5000.0원입니다.
// 출금 (잔액 부족)
account.withdraw(6000); // 출금할 수 있는 잔액이 부족합니다.
}
}
BankAccount 클래스는 accountNumber와 balance라는 두 개의 필드를 가지고 있다.deposit 메서드는 긍정적인 금액을 입금하는 역할을 한다.withdraw 메서드는 현재 잔액 내에서 출금을 허용한다.displayBalance 메서드는 현재 잔액을 출력한다.