반응형

전체 글 149

Java에서의 함수형 인터페이스와 람다식

자바에서는 함수형 프로그래밍 패러다임을 지원하기 위해 람다식과 함수형 인터페이스를 도입하였습니다. 이번 포스팅에서는 이 두 개념이 무엇인지, 그리고 어떻게 활용할 수 있는지에 대해 알아보겠습니다. 함수형 인터페이스란? 함수형 인터페이스는 추상 메소드를 하나만 가지고 있는 인터페이스를 가리킵니다. 이 때 '@FunctionalInterface'를 인터페이스 위에 작성하여 단 하나의 추상 메소드만 선언할 수 있도록 제한할 수 있습니다. 예시코드: @FunctionalInterface interface MyInterface { void print(String message); } 위의 예시코드에서 MyInterface는 '@FunctionalInterface' 애노테이션을 가지고 있으며, print라는 하나의..

개발/Java 2023.07.19

Java에서의 익명 클래스 (Anonymous Classes)

오늘은 자바에서 흔히 사용되지만, 익숙하지 않은 개념인 '익명 클래스'에 대해 알아보겠습니다. '익명 클래스'라는 이름에서 알 수 있듯이, 이는 이름이 없는 클래스입니다. 이름이 없다고 해서 그 존재가 희미한 것은 아니라는 것을 이 글을 통해 알아가시기 바랍니다. 이번 포스팅에서는 익명 클래스의 선언 방법, 활용 예시, 그리고 장점에 대해 알아보도록 하겠습니다. 익명 클래스란? 익명 클래스는 이름이 없는 클래스로, 주로 한 번만 사용할 클래스에 사용됩니다. 클래스의 구현과 객체 생성을 동시에 하기 때문에 코드가 간결해지는 장점이 있습니다. 익명 클래스는 어떤 클래스를 상속 받거나 인터페이스를 구현해야만 생성이 가능합니다. 다음은 익명 클래스의 선언 방법입니다. 클래스 상속을 통한 익명 클래스 선언 방법:..

개발/Java 2023.07.19

Java에서의 내부 클래스

오늘은 자바에서 중요한 개념 중 하나인 '내부 클래스'에 대해 이야기하려 합니다. 클래스 내부에 또 다른 클래스가 있는 이상한 구조, 과연 어떤 이유에서 이런 구조를 사용하는지, 어떤 이점이 있는지 함께 알아봅시다. 내부 클래스란? 내부 클래스는 말 그대로 클래스 안에 선언된 또 다른 클래스를 의미합니다. 이런 구조에서 바깥에 위치한 클래스를 '외부 클래스', 그 내부에 선언된 클래스를 '내부 클래스'라고 부릅니다. 그럼 외부 클래스와 내부 클래스의 관계에 대해 좀 더 자세히 알아봅시다. 외부 클래스와 내부 클래스의 관계 외부 클래스가 메모리에 할당된 후에야 내부 클래스를 객체화할 수 있습니다. 즉, 내부 클래스는 외부 클래스의 필드처럼 동작합니다. 내부 클래스는 외부 클래스의 필드에 자유롭게 접근할 수..

개발/Java 2023.07.19

Java에서의 마커 인터페이스(MarkerInterface)

이번 포스팅에서는 Java의 마커 인터페이스에 대해 다루어 보겠습니다. 인터페이스에 대한 기본적인 이해가 있다면 더 쉽게 이해할 수 있을 것입니다. 여기서는 마커 인터페이스가 무엇인지, 어떻게 사용하는지에 대해 알아보겠습니다. 마커 인터페이스란? 마커 인터페이스는 자바에서 특정 클래스가 특정 동작을 할 수 있음을 나타내기 위한 목적으로 사용됩니다. 마커 인터페이스는 어떠한 메서드도 포함하지 않은 인터페이스로, 클래스가 특정한 성질을 가짐을 표시하는 역할을 합니다. public interface MyMarkerInterface { } 위 코드는 MyMarkerInterface라는 이름의 마커 인터페이스를 선언하는 코드입니다. 보시다시피 이 인터페이스는 어떠한 메서드도 포함하지 않습니다. 마커 인터페이스 활..

개발/Java 2023.07.19

Java에서의 다중상속

다중 상속이란 하나의 클래스가 두 개 이상의 부모 클래스로부터 상속을 받는 것을 의미합니다. 그러나 JAVA는 모호성 때문에 다중 상속을 지원하지 않습니다. 그렇다면 무슨 모호성 때문일까요? 모호성 문제 하나의 클래스가 여러 부모를 상속 받을 때, 부모 클래스 간에 동일한 이름의 필드나 메소드가 있다면, 어떤 부모 클래스의 필드 또는 메소드인지 알 수 없는 문제가 발생합니다. 예를 들어, 클래스 A와 B가 각각 int형 변수 data를 가지고 있고, 클래스 Child가 A와 B를 상속받는다면 다음과 같은 상황이 발생합니다. class A { int data = 100; } class B { int data = 200; } class Child extends A, B {} // JAVA에서는 이 문법 자체..

개발/Java 2023.07.19

Java의 추상 클래스와 인터페이스의 차이

오늘은 추상 클래스(Abstract Class)와 인터페이스(Interface)의 차이에 대해 살펴보려고 합니다. 두 개념은 상당히 비슷하게 보이지만, 서로 다른 역할을 하는 중요한 구성 요소입니다. 이 둘의 차이점을 이해하는 것은 자바 프로그래밍에서 꼭 필요한 지식입니다. 추상 클래스 (Abstract Class) 추상 클래스는 하나 이상의 추상 메소드(구현되지 않은 메소드)를 포함하는 클래스입니다. 이 클래스를 상속받는 자식 클래스는 부모 클래스의 추상 메소드를 모두 구현해야 합니다. 추상 클래스는 일반적인 클래스처럼 멤버 변수, 생성자, 일반 메소드를 포함할 수 있습니다. 그래서 추상 클래스를 상속받는 클래스는 이미 구현된 일부 기능을 재사용할 수 있습니다. 추상 클래스는 그 자체로는 객체를 생성할..

개발/Java 2023.07.18

Java에서의 인터페이스(Adapter)의 강제성 소멸과 장점

안녕하세요, 이전에는 인터페이스의 기본 개념과 사용 방법에 대해 알아보았습니다. 오늘은 좀 더 심화된 주제로, 인터페이스의 '강제성 소멸'과 '장점'에 대해 알아보겠습니다. 이 글을 통해 인터페이스를 더 깊이 이해하고 효과적으로 사용하는 방법을 배워가실 수 있길 바랍니다. 인터페이스의 강제성 소멸: Adapter 패턴 우선, 인터페이스를 바로 클래스에 지정하게 되면, 모든 메소드를 구현해야 하는 강제성이 생깁니다. 하지만 실제 프로그래밍에서는 인터페이스의 모든 메소드를 사용하지 않을 경우가 많습니다. 어떤 메소드는 필요하지 않거나, 다른 방식으로 구현할 필요가 있을 수 있습니다. 이런 경우에 사용할 수 있는 패턴이 바로 'Adapter 패턴'입니다. 이 패턴을 사용하면, 인터페이스의 메소드 중 필요한 메..

개발/Java 2023.07.18

Java에서의 인터페이스 (Interface)

인터페이스는 클래스와 다르게 '무엇을 할 것인지' 보다 '어떻게 할 것인지'를 중점적으로 정의하는 방법 중 하나입니다. 다시 말해, 인터페이스는 클래스의 행동 방식을 정의하는 규격서 또는 설계도와 같은 것입니다. 인터페이스의 선언 자바에서 인터페이스는 interface 키워드를 사용하여 선언하며, 구조는 아래와 같습니다. interface InterfaceName{ public static final type CONSTANT_NAME = value; public abstract returnType methodName(parameters); } 이때 인터페이스 내에서 선언하는 모든 변수는 자동으로 public, static, final이며, 모든 메소드는 public, abstract입니다. 이 특성들은 ..

개발/Java 2023.07.18

Java에서의 추상 클래스와 추상 메소드

자바의 OOP(객체지향 프로그래밍)에서는 추상 클래스와 추상 메소드라는 핵심적인 개념을 지닙니다. 이들은 클래스의 설계 및 확장을 위해 굉장히 중요한 역할을 합니다. 이번 글에서는 이 두 가지 개념에 대해 설명하고 예시 코드를 통해 그 사용법을 이해해보도록 하겠습니다. 추상 메소드(Abstract Method) 추상 메소드는 선언만 있고 본체({})는 없는 메소드입니다. 이 메소드는 'abstract' 키워드를 사용하여 선언하며, 이 메소드가 하나라도 있는 클래스는 반드시 추상 클래스로 선언해야 합니다. abstract void sound(); // 추상 메소드 선언 추상 메소드는 자식 클래스에서 구현해야 한다. 이는 강제적인 오버라이딩을 통해 클래스의 일관성을 보장합니다. 추상 클래스(Abstract ..

개발/Java 2023.07.18

Java에서의 Private 접근 제어자와 Getter/Setter 메서드

자바에서 클래스의 필드나 메서드에 접근 제어자를 설정하는 것은 중요한 작업입니다. 이를 통해 필드나 메서드의 보안성을 유지하고 데이터 캡슐화를 도모할 수 있습니다. 이번 포스트에서는 'private' 접근 제어자와 이와 관련된 'getter'와 'setter' 메서드에 대해 살펴보겠습니다. Private 접근 제어자란? 'private'는 가장 엄격한 접근 제어자로, 이를 선언한 클래스 외부에서 해당 필드나 메서드에 접근할 수 없게 하는 역할을 합니다. 이는 데이터의 안정성을 보장하고 무분별한 접근으로부터 데이터를 보호하는데 큰 역할을 합니다. 하지만, 때때로 외부에서 이 데이터에 접근하거나 변경해야 할 필요가 있을 수 있습니다. 그럴 때 필요한 것이 'getter'와 'setter' 메서드입니다. Ge..

개발/Java 2023.07.18
반응형