중첩 내부 클래스
·
JAVA
public class Network { public void sendMessage(String text) { // 여기서 new NetworkMessage(text) 함 NetworkMessage networkMessage = new NetworkMessage(text); networkMessage.print(); } // 중첩 클래스를 static으로 선언함 private static class NetworkMessage { private String content; public NetworkMessage(String content) { this.content = content; } ..
중첩클래스 활용
·
JAVA
public class Network { public void sendMessage(String text) { // 여기서 new NetworkMessage(text) 함 NetworkMessage networkMessage = new NetworkMessage(text); networkMessage.print(); } // 중첩 클래스를 static으로 선언함 private static class NetworkMessage { private String content; public NetworkMessage(String content) { this.content = content; } ..
날짜와 시간
·
JAVA
1. 날짜의 경우 윤년 ,각 달의 일수 등을 고려해야함 2. 일광 절약 시간 변환(DST) 예시 특정 지역에서는 3월의 마지막 일요일에 DST가 시작되어 10월의 마지막 일요일에 종료된다. 이 기간 동안 발생하는 모든 날짜와 시간 계산은 1시간을 추가하거나 빼는 로직을 포함해야 함. 3. 타임존 계산세계가 다양한 타임존으로 나뉘어 있다. 타임존 간의 날짜와 시간변환을 정확히 계산하는 것은 복잡하다. 서울의 타임존 Asia/Seoult, UTC +9 . 베를린 타임존 UTC + 1둘 차이는 8시간이다. 근데 만약 베를린에서 DST가 적용되면 타임존 차이는 7시간으로 줄어듬. 자바 날짜와 시간 라이브러리 역사 JDK 1.0 (java.utilDate)문제점타임존 처리 부족 : 초기 Date 클래스는 타임존(..
정렬
·
코딩테스트
문제에서 int[] 이렇게 주어진 경우에서만약 순서대로 정렬하는 경우에는 매우 간단하게 처리할 수 있음.public static int[] sort(int[] arrays){ return Arrays.sort(arrays);} 하지만 역방향으로 정렬해야하는 경우에는 public static int[] reverseSort(int[] arrays){ Integer[] result = Arrays.stream(arrays) .boxed() -> primitive type, Integer로 wrapper된 상태 .distinct()-> 중복값 제거 .toArray(Integer[]:..
디자인 패턴
·
CS
디자인 패턴은 모듈 간의 관계 및 인터페이스를 설계할 때 참조할 수 있는 전형적인 해결 방식 또는 예제를 의미한다. 생성 패턴(Creation Pattern): 클래스나 객체의 생성과 참조 과정을 정의하는 패턴이다. 추상 팩토리(Abstract Factory)더보기 빌더(Builder)더보기 팩토리 메소드 (Factory Method)더보기 프로토타입(Prototype)더보기 싱글톤(Singleton)더보기 구조 패턴(Structural Pattern)어댑터(Adapter)더보기 브리지(Bridge)더보기 컴포지트(Composite)더보기 데코레이터(Decorater)더보기 퍼싸드(Facade)더보기 플라이웨이트(Flyweight)더보기 프록시(Proxy)더보기 행위 패턴(Behavioral Patte..
객체의 응집도 정리
·
CS
우연적 응집정의 :모듈 내의 구성 요소들이 아무런 관련 없이 단순히 하나의 모듈에 모여 있는 경우입니다. 각 기능들 사이에논리적, 기능적 연관성이 전혀 없으며, 단지 우연히 함께 모여 있을 뿐이다.특징:가장 낮은 응집도 단계예시 :하나의 유틸리티 클래스에 파일 입출력, 숫자 계산, 문자열 포맷팅 등 서로 관련 없는 기능을 모두 넣은 경우public class Miscellaneous { public void calculateSum(int a, int b) { System.out.println("Sum: " + (a + b)); } public void printMessage(String message) { System.out.println("Message:..
SOLID 원칙
·
JAVA
SRP(단일 책임 원칙)하나의 객체에는 하나의 책임만이 할당되어야 한다. OCP(개방 폐쇄 원칙)기존의 코드를 변경하지 않고 기능을 추가할 수 있도록 설계해야 한다. LSP (리스코프 치환 원칙)"하위 클래스의 인스턴스는 상위형 객체 참조 변수에 대입해 상위 클래스의 인스턴스 역할을 하는데 문제 없어야 한다." 하위형에서 선행조건은 강화될 수 없다.- 정의 : 메서드를 호출하기 전에 만족되어야 할 조건이다.- 설명 :상위 클래스(부모 클래스)의 메서드가 요구하는 선행조건이 있다면, 하위 클래스(자식 클래스)에서 이 선행조건을 더 엄격하게(강화하여) 변경하면 안 된다.만약 하위 클래스에서 선행조건을 강화하면, 상위 클래스로 작성된 클라이언트 코드가 하위 클래스의 public class Calculator..
스프링 입문을 위한 자바 객체 지향의 원리(자바 기본 문법까지 정리)
·
책 정리
객체는 유일무이한 사물이다.클래스는 같은 특성을 지닌 여러 객체를 총칭하는 집합의 개념이다. 추상화란 구체적인 것을 분해해서 관심 영역에 있는 특성만 가지고 재조합하는 것 = 모델링 OOP의 추상화는 모델링이다.클래스 : 객체 = 펭귄 : 뽀로로클래스 설계에서 추상화가 사용된다.클래스 설계를 위해서는 애플리케이션 경계부터 정해야 한다.객체 지향에서 추상화의 결과는 클래스다. 자바의 class 키워드 = 추상화 = 모델링 클래스와 객체 관계클래스 객체_참조_변수 = new 클래스(); 이름다른 이름사는 곳static 변수클래스 [멤버] 속성, 정적 변수, 정적 속성스태틱 영역인스턴스 변수객체 [멤버] 속성, 객체 변수힙 영역local 변수지역 변수스택 영역(스택 프레임 내부)  객체의 상속은 inherit..