프로그래밍 언어/JAVA

프로그래밍 언어/JAVA

상속과 다형성

상속과 다형성은 객체 지향 프로그래밍의 핵심 개념들이다. 다른 객체 지향 프로그래밍의 요소들에는 어떤 것이 있는지에 대한 설명은 여기서 확인할 수 있다.이 글에서는 상속과 다형성을 중점적으로 설명해 보겠다.1. 상속(Inheritance)상속은 아래처럼 Animal이라는 큰 부모 클래스의 속성과 메서드를 물려받아 재사용하고 확장할 수 있게 해 준다.이 상속을 자식 클래스가 되는 클래스에서 extends를 이용해 선언할 수 있다.이때, 부모 클래스의 public, protected는 속성과 메서드는 상속되지만 private은 상속되지 않는다.// 부모 클래스class Animal { void eat() { System.out.println("This animal eats food."); ..

프로그래밍 언어/JAVA

Enum - 2

Enum - 1에서는 Enum과 final을 비교했을 때 아래의 장점이 있다는 것을 알아보았다.코드의 가독성 상승상수들에 대한 관리 용이타입 안전성 제공Enum의 내장 메서드 활용필드나 메서드를 추가해 복잡한 로직 구현 가능이번에는 Enum의 특징과 사용법 등에 대해서 자세히 알아보도록 하겠다.Enum은 기본적으로 아래와 같이 사용된다.public enum Day { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY}Day today = Day.MONDAY;switch (today) { case MONDAY: System.out.println("Today is Monday!"); break; case ..

프로그래밍 언어/JAVA

예외 처리

예외 처리는 프로그램에서 발생할 수 있는 오류 상황을 처리하는 방법이다.자바의 예외 처리는 주로 try, catch, finally 블록을 사용하여 구현된다. 또한 사용자 정의 예외를 만들어 특정 상황에 맞게 사용할 수도 있다.1. 자바 예외 처리 클래스 계층 구조자바의 예외 처리 클래스는 Throwable 클래스를 루트로 하여 계층 구조를 이룬다.Throwable: 모든 예외의 루트 클래스.Error: 시스템 레벨에서 발생하는 심각한 오류. 애플리케이션 코드에서 처리할 필요가 없음.Exception: 애플리케이션 코드에서 발생하는 예외의 루트 클래스.RuntimeException: 실행 시 발생하는 예외. 주로 프로그래밍 오류(예: NullPointerException, ArrayIndexOutOfBo..

프로그래밍 언어/JAVA

Static / Non-Static method

객체 지향 프로그래밍(OOP)에서 메서드는 static 메서드와 non-static 메서드 크게 두 가지로 나눌 수 있다. 이 두 가지 메서드는 사용되는 방식과 목적이 다른데 이에 대해서 알아보도록 하자.1. Non-Static Method (인스턴스 메서드)정의Non-static 메서드는 클래스의 인스턴스(객체)에 속하는 메서드이다. 이러한 메서드는 특정 객체와 연관되어 있으며, 객체의 상태(인스턴스 변수)를 변경하거나 그 상태를 기반으로 작업을 수행할 수 있다.특징객체 인스턴스 필요: Non-static 메서드를 호출하려면 먼저 해당 클래스의 객체를 생성해야 한다.객체 상태 접근 가능: 이 메서드는 객체의 인스턴스 변수와 다른 인스턴스 메서드에 접근할 수 있다.호출 방식: object.methodNa..

프로그래밍 언어/JAVA

Enum - 1 (feat. final)

Enum이란 특정한 이름이 있는 상수들의 집합을 정의하는 클래스이다.Enum은 주로 코드의 가독성을 높이고, 상수들에 대한 관리를 쉽게 하며, 타입 안전성을 확보하기 위해 사용된다. 상수를 정의하기 위해서 final을 사용할 수도 있는데, Enum을 사용하면 어떤 이점이 있을지 알아보도록 하겠다.final 변수는 인스턴스 변수, 지역 변수, 또는 매개변수로 사용할 수 있으며, 한 번 초기화되면 더 이상 값을 변경할 수 없다.public class FinalExample { public final int instanceVariable; public FinalExample(int value) { this.instanceVariable = value; // 초기화 후 변경 불가 }..

프로그래밍 언어/JAVA

Stream

Java Stream API는 Java 8에서 도입된 기능으로, 컬렉션 데이터의 조작을 보다 간결하고 효율적으로 할 수 있도록 해준다. 스트림은 컬렉션의 요소를 하나씩 처리할 수 있는 연속된 데이터 흐름을 나타내며, 이를 통해 데이터를 필터링, 변환, 집계 등의 작업을 선언형으로 처리할 수 있다.주요 개념과 구성 요소1. 스트림 생성 (Stream Creation)컬렉션, 배열 또는 I/O 채널에서 스트림을 생성할 수 있다. List list = Arrays.asList("a", "b", "c");Stream stream = list.stream();2. 중간 연산 (Intermediate Operations)중간 연산은 스트림을 변환하고 또 다른 스트림을 반환한다. 중간 연산은 게으르게 평가(lazy ..

프로그래밍 언어/JAVA

Optional

Optional은 변수에 null이 아닌 값을 포함할 수도 있고 null일 수도 있는 상황을 처리하기 위한 클래스이다. Java 8에서 처음 도입되었고, 주로 NullPointerException을 방지하고, 코드의 가독성을 높이기 위해 사용된다.Optional의 주요 메서드값의 존재 여부 확인isPresent(): Optional 객체가 값을 가지고 있는지 여부를 확인ifPresent(Consumer): 값이 존재할 때 특정 동작을 수행값 가져오기get(): 값이 존재하면 그 값을 반환하고, 값이 없으면 NoSuchElementException을 발생시킴orElse(T other): 값이 존재하면 그 값을 반환하고, 그렇지 않으면 기본 값을 반환orElseGet(Supplier other): 값이 존재..

프로그래밍 언어/JAVA

Interface

자바에서 인터페이스(Interface)는 메서드의 집합을 정의하는 데 사용되는 추상 타입이다. 인터페이스는 클래스가 구현해야 하는 메서드의 서명을 지정하지만, 실제 구현은 제공하지 않는다. 이를 통해 특정 기능을 클래스가 구현하도록 강제할 수 있다.자바 인터페이스의 주요 특징추상 메서드(abstract methods)인터페이스 내의 모든 메서드는 기본적으로 abstract이며, 메서드 본문이 없다.자바 8부터는 default 메서드와 static 메서드를 사용할 수 있어 메서드 본문을 가질 수 있다.상수(constants)인터페이스 내에 정의된 변수는 'public static final'로 자동으로 지정되며, 상수로 취급된다.다중 상속클래스는 하나의 부모 클래스만 상속할 수 있지만, 여러 개의 인터페이..

sngyng
'프로그래밍 언어/JAVA' 카테고리의 글 목록