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는 현재 인스턴스를 가리키며, 매개변수와 필드 이름이 겹칠 때 구분에 씁니다.