Skip to content
Tools/Java 학습소

Java 학습소

Java Learning Lab

Java의 핵심과 최신 기능을 예제로 배우는 학습 도구 — OOP, 제네릭·컬렉션, 스트림·람다, 동시성, 모던 Java(record·sealed·switch 패턴). 예제마다 미리 계산한 예상 출력과 3개 국어 설명을 제공합니다. 라이브 JVM은 아닙니다.

Java의 핵심과 최신 기능을 브라우저에서 예제로 배우는 도구입니다. 라이브 JVM은 아니며, 각 예제의 “예상 출력”은 미리 계산해 둔 값입니다.

실제 JVM을 실행하지 않습니다. 아래 출력은 이 코드를 javac로 컴파일해 java로 실행하면 나오는 결과를 미리 적어 둔 것입니다.

클래스, 인터페이스, 상속, 다형성, 캡슐화, 추상 클래스, static/final을 예제로.

난이도:
예제
Java 코드
public class Main {
    // A simple class with private fields (encapsulation).
    static class Dog {
        private final String name;   // final: assigned once
        private int age;

        Dog(String name, int age) {  // constructor
            this.name = name;
            this.age = age;
        }

        String speak() {             // instance method
            return name + " says woof (age " + age + ")";
        }

        void haveBirthday() { age++; }
    }

    public static void main(String[] args) {
        Dog d = new Dog("Rex", 3);
        System.out.println(d.speak());
        d.haveBirthday();
        System.out.println(d.speak());
    }
}
예상 출력
Rex says woof (age 3)
Rex says woof (age 4)

💡 개념 설명

  • 클래스는 상태(필드)와 동작(메서드)을 묶는 설계도이고, new로 인스턴스를 만듭니다.
  • private 필드로 내부 상태를 감추는 것이 캡슐화입니다. 외부는 메서드를 통해서만 접근합니다.
  • final 필드는 생성자에서 한 번만 대입할 수 있어 불변 값을 표현합니다.
  • this는 현재 인스턴스를 가리키며, 매개변수와 필드 이름이 겹칠 때 구분에 씁니다.