Java20 [Java] 람다 표현식(Lamda Expression) **람다 표현식(Lambda Expression)**은 자바 8에서 도입된 간결한 문법으로, **익명 함수(anonymous function)**와 같은 역할을 합니다. 람다 표현식을 사용하면 코드를 간결하게 작성할 수 있으며, 특히 함수형 프로그래밍 스타일을 자바에서 사용할 수 있도록 지원합니다. 람다 표현식은 **함수형 인터페이스(Functional Interface)**와 함께 자주 사용되며, **단일 추상 메서드(Single Abstract Method, SAM)**를 구현하는 용도로 사용됩니다. 이를 통해 자바에서 간결한 콜백 처리와 데이터 처리를 할 수 있습니다. 1. 람다 표현식의 문법 람다 표현식의 기본적인 문법은 다음과 같습니다:(매개변수) -> { 실행 코드 } • 매개변수: 람다 표현.. 2024. 9. 29. [Java] Enum **Enum(열거형)**은 자바에서 상수들의 집합을 정의하는 특별한 데이터 타입입니다. 고정된 상수 값들을 의미적으로 표현할 때 사용하며, 주로 상태나 옵션을 나타낼 때 유용합니다. enum은 여러 상수 값을 가질 수 있으며, 각각의 상수는 고유한 이름을 가지고 있습니다. 1. Enum의 기본 개념 • **Enum**은 열거형 데이터 타입으로, 일정한 개수의 상수 값들을 정의할 수 있습니다. • 일반적으로 상태, 옵션, 카테고리 등을 나타낼 때 많이 사용됩니다. • 자바에서 enum은 클래스처럼 동작하며, 내부적으로 객체로 취급됩니다. 각 열거형 상수는 해당 Enum 타입의 인스턴스입니다. 예시: 기본 Enum 선언public enum Day { MONDAY, TUESDAY, WEDNESDAY, .. 2024. 9. 28. [Java] 상속 vs 합성 **합성(Composition)**은 객체지향 프로그래밍에서 객체가 다른 객체를 포함하여 기능을 재사용하거나 확장하는 기법입니다. 합성은 상속과 달리 클래스 간의 강한 결합을 피하고, 더 유연하고 유지보수하기 쉬운 설계를 제공하는 데 목적이 있습니다. 1. 합성의 기본 개념 합성은 “has-a” 관계로 설명되며, 이는 한 객체가 다른 객체를 포함하고 있다는 의미입니다. 예를 들어, 자동차(Car) 객체는 엔진(Engine) 객체를 포함할 수 있습니다. 이때 자동차는 엔진을 사용하지만, 엔진과 강하게 결합되지 않고 서로 독립적입니다. 합성의 예시public class Engine { public void start() { System.out.println("Engine started");.. 2024. 9. 28. [Java] final final 키워드는 자바에서 변경 불가능성을 나타내며, 클래스, 메서드, 변수에 적용될 수 있습니다. 이 키워드는 사용되는 위치에 따라 동작이 다르게 나타납니다. 1. final 키워드의 사용 1.1 final 변수 • 설명: final 변수는 값을 한 번만 할당할 수 있으며, 그 이후에는 변경할 수 없습니다. • 특징: 한 번 초기화되면, 해당 변수는 재할당할 수 없습니다. 상수로 사용될 때 유용합니다. 예시: final 변수final int MAX_VALUE = 100;MAX_VALUE = 200; // 오류 발생: 값 변경 불가 • 상수 필드의 경우, 보통 final과 함께 static 키워드를 사용하여 클래스 수준에서 상수를 정의합니다. 1.2 final 참조 변수 • 설명: 객체 참조에 *.. 2024. 9. 28. [Java] 추상 클래스(Abstract Class) **추상 클래스(Abstract Class)**는 자바에서 클래스의 공통적인 속성이나 동작을 정의하면서, 일부 메서드는 구현하지 않고 자식 클래스에서 반드시 구현하도록 강제하는 클래스입니다. 추상 클래스는 상속의 기초로 사용되며, 공통된 동작과 상태를 여러 클래스에 제공하기 위해 사용됩니다. 추상 클래스는 일반 클래스와 인터페이스의 중간 역할을 하며, 클래스 자체로는 인스턴스화할 수 없습니다. 이를 통해 특정 클래스의 기본 구조를 설계하고, 하위 클래스에서 구체적인 구현을 제공하도록 강제합니다. 1. 추상 클래스의 정의 추상 클래스는 abstract 키워드를 사용하여 선언됩니다. 추상 클래스 내에서는 추상 메서드(구현되지 않은 메서드)와 구현된 메서드 모두 정의할 수 있습니다. 추상 메서드는 구현부가 없.. 2024. 9. 28. [Java] Interface **인터페이스(Interface)**는 자바에서 클래스가 구현해야 하는 메서드의 집합을 정의하는 일종의 추상 타입입니다. 인터페이스는 구현 클래스가 따라야 하는 계약을 정의하며, 메서드의 구현 방식은 인터페이스를 구현한 클래스가 책임집니다. 자바에서 인터페이스는 다중 상속을 지원하고, 구현 강제성을 통해 일관된 동작을 보장할 수 있습니다. 인터페이스는 자바의 다형성을 지원하는 중요한 개념으로, 코드의 유연성과 유지보수성을 크게 향상시킵니다. 1. 인터페이스의 기본 구조 인터페이스 선언 인터페이스는 interface 키워드를 사용하여 선언되며, 인터페이스 안에서는 추상 메서드를 정의할 수 있습니다. 인터페이스의 모든 메서드는 암묵적으로 public이고 추상적이며, 구현부가 없습니다. 예시: 기본적인 인터페.. 2024. 9. 28. 이전 1 2 3 4 다음