[JAVA] Lambda
·
JAVA
람다(lambda)는 함수형 프로그래밍에서 사용되는 중요한 개념 중 하나이다. 람다는 익명 함수(anonymous function)를 지칭하며, 일회성으로 사용되거나 간단한 함수를 정의할 때 유용하다. lambda의 특징으로는 1. 익명 함수: 이름 없이 정의되는 함수이다. 2. 간결성: 간단한 연산을 표현할 때 특히 유용하다. 3. 일급 객체: 람다식은 일급 객체로 취급되어 함수의 인자로 전달하거나 함수의 반환 값으로 사용될 수 있다. (parameter1, parameter2, ...) -> expression​ 이 때, parameter1, parameter2, ...는 람다식의 매개변수이고, expression은 람다식의 본문이다. 람다식의 본문은 단일 표현식일 수도 있고, 더 복잡한 블록을 포함..
[JAVA] Generic Type
·
JAVA
제네릭에서 T는 타입 매개변수(Type Parameter)로 사용된다. 이것은 제네릭 클래스나 메서드가 실제로 사용될 때 구체적인 타입으로 대체되는 것을 나타낸다. GenericType에서 T는 어떤 타입이든 될 수 있다. class Box { private T item; public void setItem(T item) { this.item = item; } public T getItem() { return item; } } public class Main { public static void main(String[] args) { // Box 클래스에 대한 인스턴스를 생성하고 정수를 저장 Box integerBox = new Box(); integerBox.setItem(10); // Box 클래스에..
[JAVA] Anonymous Inner Class
·
JAVA
익명 내부 클래스(Anonymous Inner Class)는 이름이 없는 내부 클래스로, 클래스의 정의와 동시에 인스턴스를 생성하여 사용된다. 주로 간단한 인터페이스 구현이나 추상 클래스의 인스턴스화에 사용된다. 익명 내부 클래스는 한 번만 사용되는 경우에 유용하다. 1. 추상 클래스의 인스턴스화: 추상 클래스나 인터페이스를 상속받아서 인스턴스를 생성하고 메서드를 재정의한다. 2. 인터페이스의 구현: 인터페이스를 구현하고 해당 메서드를 정의한다. public class AnonymousInnerClassExample { interface Greeting { void greet(); } public static void main(String[] args) { // 익명 내부 클래스로 인터페이스 구현 Gre..
[JAVA] Inner Class와 Outer Class
·
JAVA
자바에서는 클래스 내부에 다른 클래스를 선언할 수 있다. 이러한 내부 클래스(inner class)는 외부 클래스(outer class) 내부에서만 사용되는 클래스이다. 내부 클래스를 사용하면 논리적으로 연관된 클래스를 그룹화하고 캡슐화할 수 있다. 1. 멤버 내부 클래스 (Member Inner Class): 외부 클래스의 멤버 변수와 마찬가지로 선언되는 클래스이다. 인스턴스화하기 전에는 외부 클래스의 인스턴스가 먼저 생성되어야 한다. 2. 정적 내부 클래스 (Static Nested Class): 내부 클래스에 static 키워드가 사용된 경우이다. 정적 내부 클래스는 외부 클래스의 인스턴스에 바인딩되지 않는다. 3. 지역 내부 클래스 (Local Inner Class): 메서드 내부에 선언되는 클래..
[JAVA] Interface
·
JAVA
인터페이스(Interface)는 자바에서 다중 상속을 지원하기 위한 메커니즘 중 하나이며, 객체 지향 프로그래밍의 핵심 개념 중 하나이다. 인터페이스는 클래스가 구현해야 하는 메서드의 명세(specification)를 정의한다. 이를 통해 클래스는 인터페이스가 제공하는 메서드를 구현하여 특정 동작을 수행할 수 있다. 인터페이스의 특징 1. 추상 메서드(Abstract Method): 인터페이스는 추상 메서드만을 가질 수 있습니다. 즉, 메서드의 시그니처만을 정의하고 구현은 없습니다. 2. 상수(Constant): 인터페이스는 상수를 가질 수 있습니다. 상수는 자동으로 public static final로 설정됩니다. 3. 다중 상속(Multiple Inheritance): 클래스는 여러 개의 인터페이스를..
[JAVA] Abstract 예제
·
JAVA
package DAY0326; import java.util.Scanner; abstract class Command{ abstract public void process(); } class List extends Command{ @Override public void process() { System.out.println("데이터 목록을 출력합니다"); } } class Delete extends Command{ @Override public void process() { System.out.println("데이터 항목을 삭제합니다"); } } class Insert extends Command{ @Override public void process() { System.out.println("데이터를 ..