본문 바로가기

Java

(3)
추상화와 추상 클래스 자바에서 추상화 라는 말을 종종 씁니다. 추상화, 추상 클래스, 추상 메소드 이런 개념들이 뭘까요? 쉽게 풀이하여 설명하겠습니다. 추상화란 상속과 관련이 있습니다. 예를 들면 제가 게임을 만들어요. 게임을 만드는데, 몬스터를 만듭니다. 몬스터에는 여러 종류가 있겠죠? 고블린, 오크, 트롤, 언데드, 뿔사슴 등등 여러 종류의 몬스터가 있을겁니다. 이 몬스터들의 공통점은 뭘까요? 간단하게 생각하면 HP, MP, 공격력, 방어력 등이 있죠. 이 HP, MP, 공격력, 방어력 등을 가지고 있는 class Monster 다른 클래스들은 class Goblin extends Monster class orc extends Monster 등으로 상속을 받아서, 몬스터가 가진 속성을 사용할겁니다. 그런데, 몬스터가 그 ..
람다식이란? #2 사용법 및 예제 자바는 메소드만 인자로 전달하려면 반드시 객체를 만들어서 전달해야 했다. Java8에 람다식이 생기면서, 마치 함수만 전달하는 것처럼 간편하게 문법을 사용할 수 있게 되었다. 람다식 기본 문법 (타입 매개변수, ...) -> { 실행문; ... } (타입 매개변수, ...)는 오른쪽 중괄호 { } 블록을 실행하기 위해 필요한 값을 제공하는 역할을 한다. 이때, 매개 변수의 이름은 개발자가 자유롭게 지정할 수 있다. ' -> ' 기호는 매개 변수를 이용해서 중괄호 { }를 실행한다는 뜻으로 해석하면 된다. 함수적 인터페이스(@FunctionalInterface) 모든 인터페이스를 람다식의 타겟 타입으로 사용할 수 없다. 람다식이 하나의 메소드를 정의하기 때문에 두 개 이상의 추상 메소드가 선언된 인터페이스..
람다식이란? #1 개념 및 특징 람다식 #개념 및 특징 요약 1. Java 8부터 지원되는 함수지향형 코드 2. 람다식, 또는 람다 함수는 프로그래밍 언어에서 사용되는 개념으로 익명 함수(Anonymous functions)를 지칭하는 용어 3. 함수형 인터페이스 - 하나의 추상 메서드만 가지는 인터페이스 4. 특징 (1) 익명 - 보통의 메서드와 달리 이름이 없으므로 익명 입니다. (2) 함수 - 람다는 메서드처럼 특정 클래스에 종속되지 않으므로 함수 입니다. (3) 전달 - 람다 표현식을 메서드 인수로 전달하거나 변수로 저장할 수 있습니다. (4) 간결성 - 익명 클래스처럼 저렴한 코드를 구현할 필요는 없습니다. 5. 목적 변수를 직접 전달해서 그 값을 변경함으로 흐름을 처리하지 않고 , 행위 자체를 전달함으로써 함수형 프로그래밍이..