본문 바로가기

전체 글64

(네이버클라우드 부트캠프) 33일차 - Java프로그래밍 기초(중첩) 중첩클래스 (이어서) 1.정적 중첩 클래스(static nested class) 1) 개념 바깥 클래스의 인스턴스에 종속되지 않는 클래스. top level class와 동일하게 사용된다. 2) 접근제한자(modifier) 정적 중첩클래스도 클래스의 멤버이기 때문에 필드나 메서드처럼 접근 제한자를 붙일수 있다. 클래스 내부에서 사용되기도 하지만, 외부에서 사용되는 경우도 많아 default나 public을 많이 쓴다.₩ public class StaticNestedClass { private static class A1 {} static class A2 {} //(package-private) protected static class A3 {} .. 2024. 7. 11.
(네이버클라우드 부트캠프) 32일차 - 실습프로젝트(Iterator패턴, 중첩클래스) Iterator 디자인패턴 1.Iterator 패턴의 개념 Iterator 디자인 패턴은 컬렉션(예: 리스트, 트리, 해시맵 등)의 내부 구조를 노출하지 않고 그 요소들에 순차적으로 접근할 수 있는 방법을 제공하는 패턴이다. 반복자(Iterator)를 사용하여 컬렉션의 요소를 하나씩 차례대로 탐색할 수 있다. 2.Iterator 설계패턴 1) Iterator의 필요성 자료 구조마다 메서드를 호출하는 방법이 상이하다. 자료 구조마다 동일 기능을 하는 메서드가 다르면 유지보수에 불리하다. 2) Iterator 패턴적용하기 Iterator 인터페이스를 활용하여 동일한 메서드를 만든.. 2024. 7. 10.
(네이버클라우드 부트캠프) 31일차 - 실습프로젝트(DIP, Stack, Queue) SOLID PatternSOLID Pattern 이란 ?객체지향 프로그래밍 및 설계에서 중요한 다섯가지 원칙원칙: 하나의 클래스는 하나의 책임의미: 각 클래스는 하나의 기능만 가져야 한다.예: 사용자 정보를 처리하는 클래스는 사용자 데이터베이스 접근과 같은 역할만 한다.2. Open/Closed Principle (OCP, 개방/폐쇄 원칙)원칙: 엔티티(클래스, 모듈, 함수 등)는 확장에는 열려 있어야 하고, 수정에는 닫혀 있어야 한다.의미: 새로운 기능을 추가할 때 기존 코드를 변경하지 않고도 확장할 수 있어야 한다.예: 새로운 기능을 추가할 때 기존 코드를 수정하지 않고 새로운 클래스를 추가하여 기능을 확장한다.3. Liskov Substitution Principle (LSP, 리스코프 치환 원칙).. 2024. 7. 9.
(네이버클라우드 부트캠프) 30일차 - 실습프로젝트(리팩토링) UMLUML이란?UML caseUML은 크게 6가지로 구분 할 수 있다. 실습프로젝트 리팩토링하기인터페이스의 활용기존 프로젝트의 List 항목들에서 중복된 코드를 줄이자.다음가 같은 UML을 가지도록 수정 한다.먼저 ArrayList와 LinkedList의 공통 코드를 추상 메소드(pulic abstract)로 선언한다. //List 인터페이스 public interface List { void add(Object obj); Object remove(int index); Object[] toArray(); int indexOf(Object obj); int size(); Object get(int index); }다음 ArrayList와 LinkedList의 동일한 .. 2024. 7. 8.