목록분류 전체보기 (86)
All :L

📒 abstract class1️⃣ abstract class 의미자손 클래스에서 반드시 재정의해서 사용되기 때문에 조상의 구현이 무의미한 메서드메서드의 선언부만 남기고 구현부는 세미콜론으로 대체구현부가 없다는 의미로 abstract 키워드를 메서드 선언부에 추가객체를 생성할 수 없는 클래스라는 의미로 클래스 선언부에 abstract 추가공통 분모를 뽑아 상속 구조상속 관계 정의를 통한 클래스 정비관계를 통한 객체 활용2️⃣ abstract class 특징abstract 클래스는 상속 전용 클래스자식은 abstract method 재정의할 책임클래스에 구현부가 없는 메서드가 있으므로 객체를 생성할 수 X상위 클래스 타입으로써 자식을 참조 가능조상 클래스에서 상속받은 abstract 메서드를 재정의 하지..

[트리]트리트리(tree) : 주로 계층적인 구조를 표현하기 위한 자료구조노드(node) : 데이터를 저장하는 구성 요소간선(edge) : 노드와 노드를 연결하는 선, 링크라고도 함링크로 연결된 노드는 상하 관계 형성용어설명부모 노드(parent node)어떤 노드의 상위에 연결된 노드자식 노드(child node)어떤 노드의 하위에 연결된 노드형제 노드(sibling node)같은 부모 노드를 공유하는 노드조상 노드(ancestor node)부모 노드와 그 부모 노드들자손 노드(descendant node)자식 노드와 그 자식 노드들루트 노드(root node)트리의 최상위 노드, 부모 노드가 없는 노드리프 노드(leaf node)트리의 최하위 노드, 자식 노드가 없는 노드차수(degree)어떤 노드가..

📒 접근제한자 활용1️⃣ 데이터 은닉과 보호 (Encapsulation: OOP Is A PIE)정보 보호 대책변수 private으로 접근 막기공개되는 메서드를 통해 접근 통로 마련 (setter / getter) → 메서드에 정보 보호 로직 작성2️⃣ 객체 생성 제어객체 생성 제한 시여러 개 객체 필요 X 경우 → like 관리자 같은 계정이 필요할 때수정 가능한 멤버 변수 X, 기능만 O이러한 객체를 stateless한 객체라고 함.객체를 계속 생성 / 삭제 하는데 많은 비용이 들어 재사용이 유리한 경우3️⃣ Singleton 디자인 패턴싱글톤 패턴은 클래스가 단 하나만의 인스턴스를 생성해 사용하기 위한 패턴외부에서 생성자에 접근 금지생성자의 접근 제한자를 private으로 설정내부에서 privat..

프리코스 1주차를 마치며... 1주 차 프리코스인 "문자열 덧셈 계산기" 과제는 Java로 하나의 프로그램을 처음 개발해보는 나에게는 도전의 영역이었다. 새로운 언어로 처음부터 끝까지 개발을 진행하며 많은 것을 배우고 깨달았으며 값진 경험이 되었다.과제의 시작 단계에서는 README 작성과 기능 요구 사항을 정리하는 것부터 시작했다. 처음에는 단순히 과제의 내용을 요약해 작성하는 것이라 생각했다. 하지만, 추후 개발을 진행해보며 이 단계가 얼마나 중요한지 깨달았다. 요구 사항을 명확히 정의하는 것이 이후 개발의 방향을 결정짓는 매우 중요한 작업이었기 때문에 앞으로의 개발에서는 기능 요구 사항 정리를 꼼꼼하게 해야겠다는 생각이 들었다.https://github.com/jhw296/java-calculato..

[해시 테이블]해시 테이블해시 테이블(hash table) : 키(key)와 값(value)의 대응으로 이루어진 테이블과 같은 형태의 자료구조키(key) : 해시 테이블에 대한 입력값(value) : 키를 통해 얻고자 하는 데이터버킷(bucket) : 값이 저장되어 있는 곳여러 개 존재 → 여러 버킷이 배열 형성로드 팩터(load factor) : 해시 테이블에 저장된 데이터 수를 버킷의 수로 나눈 값테이블이 얼마나 가득 차 있는지에 대한 지표로드 팩터가 클수록 해시 테이블 성능 ↓구조검색, 삽입, 삭제 연산의 시간 복잡도 : O(1) → 입력과 무고나하게 항상 일정한 속도 보장단점속도 ↑ but, 메모리 공간 소모 多공간 복잡도가 시간 복잡도만큼 우수하지 X충돌 문제 해결 필요[해시 함수]해시 함수해시..

[스택]스택스택(stack) : 한 쪽에서만 데이터 삽입 및 삭제가 가능한 자료구조푸시(push) : 데이터를 저장하는 연산팝(pop) : 데이터를 빼내는 연산후입선출(LIFO) : 한 쪽에서만 데이터 저장, 관리되기 때문에 나중에 삽입된(후입) 데이터가 먼저 나옴(선출)활용 사례 1) 최근에 임시 저장한 데이터를 가장 먼저 활용해야 할 때 (매개변수 저장) int bar(int y) { return y + 2; } int foo(int x) { bar(2); return x + 1; } foo(1);매개변수 x → 1로 초기화bar 함수 호출 → 매개변수 y → 2로 초기화bar 함수 (2 + 2) 반환 → 매개변수 y 삭제foo 함수 (1 + 1) 반환 → 매개변수..