자바 12 - 새로운 기능

안녕하세요, 미래의 자바 개발자 여러분! 자바 12의 세계를 함께 탐험하게 되어 기쁩니다. 프로그래밍을 가르치고 있던 오랜 시간 동안, 자바는 시작하기에 최고의 언어라고 확신할 수 있습니다. 버전 12는 몇 가지 새로운 기능을 추가해 왔습니다. 그럼 이 새로운 추가 기능을 함께 탐험해 보겠습니다!

Java 12 - New Features

자바 제어 문장

새로운 기능에 이전에, 자바의 기본 제어 문장을 빠르게 مراجعة해 보겠습니다. 이는 모든 프로그램의 기본 블록이며, 자바를 마스터하기 위해서 이해하는 것이 중요합니다.

If-Else 문장

If-Else 문장은 프로그램의 길목과 같습니다. 이는 특정 조건에 따라 코드가 결정을 내리게 합니다.

int age = 18;
if (age >= 18) {
System.out.println("You can vote!");
} else {
System.out.println("Sorry, you're too young to vote.");
}

이 예제에서 프로그램은 age가 18이상인지 확인합니다. 그렇다면 "You can vote!"를 출력하고, 그렇지 않으면 "too young" 메시지를 출력합니다.

For 루프

For 루프는 특정 횟수 반복하는 작업을 수행하는 충실한 작업자와 같습니다.

for (int i = 1; i <= 5; i++) {
System.out.println("Count: " + i);
}

이 루프는 1에서 5까지의 숫자를 출력합니다. 마치 작은 도우미가 카운트를 해주는 것과 같습니다!

객체 지향 프로그래밍

이제 자바의 슈퍼파워 중 하나에 대해 이야기해 보겠습니다: 객체 지향 프로그래밍(OOP). 자바에서는 모든 것이 객체입니다(Almost everything).

클래스와 객체

클래스는 객체를 생성하는 설계도라고 생각해 보세요. 간단한 Dog 클래스를 만들어 보겠습니다:

public class Dog {
String name;
int age;

public void bark() {
System.out.println("Woof! Woof!");
}
}

이제 Dog 객체를 생성할 수 있습니다:

Dog myDog = new Dog();
myDog.name = "Buddy";
myDog.age = 3;
myDog.bark();  // 이는 "Woof! Woof!"를 출력합니다

이게 멋질 않나요? 우리는 가상의 개를 만들어서 짖는 기능을 추가했�니다!

자바 내장 클래스

자바는 우리의 삶을 더 쉽게 만들어주는 많은 내장 클래스를 제공합니다. 가장 흔히 사용되는 클래스 중 하나를 보겠습니다: String 클래스.

String greeting = "Hello, World!";
System.out.println(greeting.length());  // 13을 출력합니다
System.out.println(greeting.toUpperCase());  // "HELLO, WORLD!"를 출력합니다

String 클래스는 length() 메서드로 문자열의 길이를 가져오거나 toUpperCase() 메서드로 대문자로 변환하는 등 많은 유용한 메서드를 제공합니다.

자바 12의 새로운 기능

이제 자바 12에서 소개된 흥미로운 새로운 기능을 탐험해 보겠습니다!

스위치 표현식(미리보기 기능)

자바 12는 스위치 문장의 미리보기 버전을 소개했습니다. 이는 스위치 문장을 더 강력하고 간결하게 만듭니다.

String day = "MONDAY";
String result = switch (day) {
case "MONDAY", "FRIDAY", "SUNDAY" -> "Relax";
case "TUESDAY" -> "Work hard";
case "THURSDAY", "SATURDAY" -> "Play sports";
case "WEDNESDAY" -> "Go shopping";
default -> "Unknown day";
};
System.out.println(result);

이 새로운 문법은 화살표(->)를 사용하여 콜론과 break 문장을 대체하여 코드를 깨끗하고 실수를 줄입니다.

String 클래스 개선

자바 12는 String 클래스에 몇 가지 새로운 메서드를 추가했습니다. 그 중 하나는 indent()로, 각 줄에 들여쓰기를 추가하거나 제거할 수 있습니다.

String text = "Hello\nWorld";
System.out.println(text.indent(4));

이는 다음과 같이 출력합니다:

Hello
World

각 줄이 4칸 들여쓰기되었습니다. 멋지죠?

Collectors.teeing()

자바 12는 새로운 컬렉터인 teeing()를 소개했습니다. 이는 두 개의 별도 컬렉터를 가지고 그 결과를 결합하는 것과 같습니다.

import java.util.stream.Collectors;

double mean = List.of(1, 2, 3, 4, 5)
.stream()
.collect(Collectors.teeing(
Collectors.summingDouble(i -> i),
Collectors.counting(),
(sum, count) -> sum / count));

System.out.println("Mean: " + mean);  // "Mean: 3.0"을 출력합니다

이 코드는 새로운 teeing() 컬렉터를 사용하여 숫자 목록의 평균을 계산합니다. 이는 조금 복잡하지만, 자바의 스트림 API가 얼마나 강력한지 보여줍니다!

결론

우리는 자바 12의 새로운 기능의 표면에 불과하지만, 이를 통해 가능한 것을 보여드렸습니다. 코드를 배우는 것은 새로운 언어를 배우는 것과 같아 시간과 연습이 필요하지만, 매우 보람됩니다.

마무리하면서, 한 학생이 이야기했던 것을 떠올립니다. "자바는 스위스 아르바이트 knife와 같아 - 모든 일에 도움이 되는 도구가 들어 있어!" 그의 말은 정말로 옳았습니다. 자바의 각 새로운 버전은 이 knife에 더 많은 도구를 추가하여 더욱 다재다능하고 강력하게 만듭니다.

계속 코딩하고, 배우고, 가장 중요한 것은 즐겁게 하세요! 자바의 세계는 방대하고 흥미롭며, 여러분은 이 여정의 시작에 불과합니다. 누가 알겠는가?也许你将会是下一个在Java 13中创建下一个大功能的人呢!

Credits: Image by storyset