Menu
Coddy logo textTech

필드 (속성)

Coddy Java 여정의 객체 지향 프로그래밍 섹션에 포함된 레슨 — 87개 중 6번째.

필드(속성)는 클래스 내부에서 데이터를 저장하는 변수입니다. 이들은 보통 private이며 게터(getter) 및 세터(setter) 메서드를 통해 접근됩니다.

필드 선언하기

public class Person {
    private String name;
    private int age;
}

Getter와 Setter 추가하기

public class Person {
    private String name;
    private int age;
    
    public String getName() {
        return this.name;
    }
    
    public void setName(String name) {
        this.name = name;
    }
    
    public int getAge() {
        return this.age;
    }
    
    public void setAge(int age) {
        if (age >= 0) {
            this.age = age;
        }
    }
}

클래스 사용하기

Person person = new Person();
person.setName("Alice");
person.setAge(25);
System.out.println(person.getName());  // Alice

필드를 private으로 만드는 것을 캡슐화라고 합니다. 이는 메서드를 통해 접근을 제어함으로써 데이터를 보호하고, setter에서 유효성 검사를 추가할 수 있도록 해줍니다.

challenge icon

챌린지

중급

프라이빗 필드와 게터(getter) 메서드를 가진 BankAccount 클래스를 생성하세요:

  • 프라이빗 필드: accountName (String) 및 balance (double)
  • 두 필드를 설정하는 생성자
  • 각 필드에 대한 게터 메서드
  • 돈을 추가하는 deposit() 메서드
  • "Success" 또는 "Insufficient funds"를 반환하는 withdraw() 메서드

치트 시트

필드(속성)는 클래스 내부에 데이터를 저장하는 변수입니다. 일반적으로 private으로 설정되며 getter 및 setter 메서드를 통해 접근합니다.

private 필드 선언하기:

public class Person {
    private String name;
    private int age;
}

getter와 setter 추가하기:

public class Person {
    private String name;
    private int age;
    
    public String getName() {
        return this.name;
    }
    
    public void setName(String name) {
        this.name = name;
    }
    
    public int getAge() {
        return this.age;
    }
    
    public void setAge(int age) {
        if (age >= 0) {
            this.age = age;
        }
    }
}

클래스 사용하기:

Person person = new Person();
person.setName("Alice");
person.setAge(25);
System.out.println(person.getName());  // Alice

필드를 private으로 만드는 것을 캡슐화(encapsulation)라고 합니다. 이는 메서드를 통해 접근을 제어함으로써 데이터를 보호하며, setter에서 유효성 검사를 추가할 수 있게 해줍니다.

직접 해보기

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String name = scanner.nextLine();
        double initial = Double.parseDouble(scanner.nextLine());
        double deposit = Double.parseDouble(scanner.nextLine());
        
        BankAccount account = new BankAccount(name, initial);
        
        System.out.println("Account: " + account.getAccountName());
        System.out.println("Balance: " + account.getBalance());
        
        account.deposit(deposit);
        System.out.println("After deposit: " + account.getBalance());
        
        String result = account.withdraw(2000);
        System.out.println("Withdraw 2000: " + result);
        System.out.println("Final Balance: " + account.getBalance());
    }
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

객체 지향 프로그래밍의 모든 레슨