자바 디자인 패턴(행동 패턴)
·
Java 문법정리 (Array부터)
객체 간의 상호작용과 책임 분배를 정의하는 패턴 1. 옵저버(Observer) 패턴객체의 상태 변화를 감지하고 자동으로 업데이트하는 패턴Observer 인터페이스와 Subject 사용 import java.util.ArrayList;import java.util.List;interface Observer { void update(String message);}class ConcreteObserver implements Observer { private String name; public ConcreteObserver(String name) { this.name = name; } public void update(String message) { Syste..
자바 디자인 패턴(구조 패턴)
·
Java 문법정리 (Array부터)
구조(Structural) 패턴은 클래스와 객체의 구조를 조합하여 더 큰 구조를 형성하고, 코드의 유연성과 확장성을 높이는 데 초점을 둔 디자인 패턴이다. 구조 패턴의 주요 특징객체 간 관계를 정의하고 관리하여 유지보수성을 높임코드 재사용성을 증가시키고 확장에 용이함시스템의 복잡성을 줄이고 일관성을 유지 주요 구조 패턴1. Adapter (어댑터) 패턴서로 다른 인터페이스를 가진 클래스를 연결하여 함께 동작할 수 있도록 해주는 패턴이다.예제: USB-C 포트에 HDMI를 연결하는 어댑터처럼, 기존 코드와 새로운 코드 사이의 호환성을 제공. // 기존 코드 (호환되지 않는 인터페이스)interface OldSystem { void legacyMethod();}class OldSystemImpl imp..
자바 디자인 패턴 종류 (생성패턴)
·
Java 문법정리 (Array부터)
생성패턴 (Creatrional Patterns)생성 패턴은 객체 생성과 관련된 문제를 해결하기 위한 패턴. 객체를 직접적으로 생성하는 대신, 객체를 생성하는 방법을 캡슐화하여 객체 생성 로직을 분리한다. 싱글턴 패턴(Singleton Pattern)목표: 클래스의 인스턴스가 오직 하나만 존재하도록, 보장하고, 그 인스턴스에 접근할 수 있는 전역적인 접근점을 제공하는 패턴이다. 사용시기: 한 애플리케이션에서 하나의 객체만 존재하야 할 경우에 사용된다. 예를 들어, 설정 관리 객체, 데이터베이스 연결 객체, 로그 관리 객체 등에 유용하다. 구현방법인스턴스를 private static으로 선언하여 외부에서 직접 접근할 수 없게 하고, public static 메서드를 통해 인스턴스에 접근한다.클래스의 생성자..
패턴 매칭(Pattern Matching)
·
Java 문법정리 (Array부터)
패턴 매칭(Pattern Matching)이란?패턴 매칭은 문자열 데이터에서 특정 규칙(패턴)을 사용하여 원하는 부분을 추출하거나 확인하는 기술입니다. 주로 정규 표현식(Regualr Expression)을 활용하며 문자열을 분해, 분석, 검증하는 데 널리 사용된다. 패턴 매칭의 동작 방식패턴 매칭은 두 가지 주요 단계로 이루어진다. 패턴 정의 정규 표현식으로 문자열의 구조를 정의합니다.예를 들어, (\d{1, 2})([SDT])([*#]?)는 다트 점수 문자열에서 숫자, 보너스, 옵션을 추출하기 위한 패턴이다. 패턴 적용문자열과 정규식을 비교하며 패턴과 일치하는 부분을 추출하거나 매칭 결과를 반환한다. 패턴 매칭의 활용자바에서는 java.util.regex 패키지의 pattern 클래스와 Matcher..
동등성, 동일성
·
Java 문법정리 (Array부터)
자바에서 동등성과 동일성은 객체의 비교와 관련된 두 가지 중요한 개념이다.이 두 개념은 객체를 비교할 때 매우 중요한 역할을 한다.1. 동등성 (Equality)동등성은 두 객체가 논리적으로 같은지를 판단하는 개념. 자바에서 동등성을 비교할 때 주로 equals() 메서드를 사용한다. equals() 메서드는 객체의 논리적 동등성을 비교하는 데 사용되며, Object 클래스에서 기본적으로 정의되어 있다.기본 동작Object 클래스의 기본 equals() 메서드는 객체의 참조를 비교한다. 즉, 두 객체가 동일한 메모리 주소를 참조하는지를 비교한다. 이는 객체의 실제 내용을 비교하지 않는다.public class Person { private String name; private int age; ..
Enum
·
Java 문법정리 (Array부터)
일단 Enum의 아주 간단한 의미는 Enum(열거형)은 프로그래밍에서 상수 집합을 정의하는 자료형이다. Enum을 사용하면 관련된 상수 값을 그룹화하여 코드의 가독성을 높이고, 값의 범위도 제한 가능하다. 특징 정의된 상수 집합: Enum은 특정 상수 값들의 집합을 정의. 예를 들어, 요일이나 월, 상태 코드 등을 정의할 때 사용타입 안정성: Enum은 코드에서 정의한 상수 값만을 허용하기 때문에 타입 안전성을 제공. 이는 잘못된 값의 사용을 방지할 수 있다.가독성: 코드의 의미를 명확하게 하기 때문에 코드의 가독성을 높인다. 상수를 직접 사용하는 것보다 더 직관적이고 이해하기 쉬운 코드 작성을 도울수 있다.내장 메서드: 대부분의 프로그래밍 언어에서는 Enum에 대해 다양한 내장 메서드를 제공하여 상수 ..
Interface
·
Java 문법정리 (Array부터)
인터페이스의 기본 개념인터페이스는 클래스와 비슷하지만, 객체를 생성할순 없다.메서드 정의만 가능!실제 구현은 구현하는 클래스가 제공 인터페이스 정의EX)public interface Animal { void eat(); void sleep();} 인터페이스는 interface 키워드를 사용하여 정의한다.메서드의 서명만을 정의메서드 구현은 x 인터페이스 구현인터페이스를 구현하는 클래스는 implements 키워드를 사용하여 인터페이스를 구현함.인터페이스에 정의된 모든 메서드를 구현해야 한다.인터페이스받은 클래스의 메서드는 오버로드를 한다.public class Dog implements Animal { @Override public void eat() { System.ou..
Calendar(java 8이후는 java.time)
·
Java 문법정리 (Array부터)
Calendar 클래스를 사용하면 날짜와 시간을 조작하고, 날짜와 시간 정보를 쉽게 다루기 가능! 기능날짜 및 시간 설정날짜 및 시간 추출날짜 및 시간 계산날짜 및 시간 비교 Calendar 클래스의 기본 사용법Calendar 클래스는 추상 클래스이므로, 직접 인스턴스를 생성할 수 없다. 대신, Calendar.getInstance() 메소드를 사용하여 Calendar 객체를 얻는다. import java.util.Calendar;public class CalendarExample { public static void main(String[] args) { // Calendar 객체 생성 Calendar calendar = Calendar.getInstance(); ..
기본형 매개변수, 참조형 매개변수
·
Java 문법정리 (Array부터)
매개변수는 메서드나 생성자에 데이터를 전달할 때 사용한다. 자바의 매개변수는 크게 두 가지로 나눌 수 있다.기본형(primitive type) 매개변수와 참조형(reference type) 매개변수입니다. 이 두 가지 매개변수 타입은 메서드에 전달되는 방식과 처리 방식이 다르다. 기본형(Primitive Type) 매개변수기본형 매개변수는 값 자체를 전달한다. 자바의 기본형 데이터 타입에는 int, float, double, char, boolean, byte, short, long 등이 있다. 기본형 매개변수는 메서드 호출 시 복사되어 전달된다. 따라서 메서드 내에서 매개변수의 값을 변경해도 원래 값에는 영향을 미치지 않는다. public class Main { public static void ..
return 문
·
Java 문법정리 (Array부터)
return 문은 자바에서 메서드가 값을 반환하고 메서드의 실행을 종료하는 데 사용된다. return 문은 메서드의 반환 타입에 맞춰 반환할 값을 지정해야 한다. 또한, return 문은 메서드의 종료를 강제로 가능하다. 여기서 두 가지 경우로 나타낸다. 메서드가 값을 반환하는 경우메서드의 반환 타입이 void가 아닌 경우, return 문은 해당 타입의 값을 반환해야 한다.public class Calculator { // int 타입의 값을 반환하는 메서드 public int add(int a, int b) { return a + b; // 덧셈 결과를 반환 } // double 타입의 값을 반환하는 메서드 public double divide(double a..