분류 전체보기
-
[Java] 자바의 인터페이스Programming/Java 2021. 4. 6. 15:51
자바의 인터페이스를 알아보자 자바의 인터페이스 1. 인터페이스의 선언 자바 어플리케이션에서 사용되는 인터페이스는 추상 메서드의 집합이라고 설명할 수 있다. 사실상 추상메서드 이외에도 상수, default 메서드, static 메서드 등을 포함할 수 있다. 하지만 이러한 것들은 인터페이스의 본질에서 벗어난 추가적인 기능이기 때문에, 우선 인터페이스를 추상 메서드의 집합으로 이해해보자. 인터페이스의 본질과 이론적 의미에 대해서는 인터페이스의 역할(의미) 파트에서 알아보겠다. 구현된 것이 없는 설계도(껍데기) 모든 멤버가 public public, abstract, static, final 등의 키워드는 생략 가능. 언제나 그렇기 때문에. 인터페이스의 선언 interface 인터페이스이름{ (public) (..
-
[Java] 자바의 패키지와 클래스패스Programming/Java 2021. 4. 5. 13:03
자바의 패키지와 클래스패스를 알아보자 자바의 패키지 Package란 다수의 클래스와 인터페이스를 캡슐화하기 위한 매커니즘이다. 1. 패키지의 역할 패키지는 연관된 클래스를 담는 컨테이너 역할을 한다. 패키지 내에는 외부로부터 접근 가능한 클래스들과 특정 목적을 위해 접근이 제한된 클래스가 존재한다. 1-1) 동일한 이름을 가진 클래스들을 구분할 수 있다. 예를 들어, Test라는 이름의 클래스가 2개의 패키지에 각각 존재할 수 있다. livestudy.week7.Test , livestudy.week6.Test 1-2) class, interface, enumeration, annotation 등을 보다 쉽게 검색하고 사용할 수 있다. 1-3) 접근을 제어할 수 있다. 패키지 레벨에서 protected ..
-
[Java] 자바의 다형성Programming/Java 2021. 4. 5. 13:02
자바의 다형성과 관련된 개념을 알아보자 다형성(Polymorphism)? 동일한 부모로부터 태어난 자식이라도 외모, 성격, 취향 등이 서로 다른 것 처럼, 동일한 부모 클래스로부터 상속받은 하위 클래스들을 각기 다르게 수정하여 사용할 수 있다. 다형성은 상속받은 기본 형질에 서로 다른 변화를 주어 다양한 형태를 표현하는 것이다. 자바의 다형성은 메서드 오버라이딩, 업캐스팅, 다운캐스팅, 추상 클래스, 인터페이스 등을 통해 구현할 수 있다. 1. 오버라이딩(Overriding) 객체지향언어에서의 오버라이딩은 자식클래스가 부모클래스에서 이미 선언된 메서드를 구현해서 사용할 수 있게 하는 기능이다. 오버라이딩이란 부모클래스의 메서드와 자식 클래스의 메서드가 메서드 이름, 메서드 파라미터, 리턴타입이 모두 같은..
-
[Java] 자바의 상속Programming/Java 2021. 4. 5. 13:01
상속(Inheritance)? 상속은 객체지향 프로그래밍(Object Oriented Programming)에서 매우 중요한 개념이다.상속을 통해서 하나의 클래스가 가진 특징(필드와 메서드)을 다른 클래스들에게 물려줄 수 있다. 주요 용어 Super Class - 부모 클래스 다른 클래스들에게 상속을 하는 주체가 되는 클래스이다. 상위 클래스, super class, base class 라고도 불린다. Sub Class - 자식 클래스 다른 클래스의 특징을 상속받는 클래스이다. 서브 클래스, derived class, extended class라고도 불린다. 자식 클래스는 부모 클래스로부터 상속받은 필드와 메서드뿐 아니라, 자기 자신의 필드와 메서드를 추가하여 사용할 수 있다. Reusability - ..
-
[Java] 트리 자료구조의 개념과 구현Programming/Java 2021. 4. 5. 13:01
1. 트리 트리(Tree)란 계층적인 구조를 표현하기 위해 일상적으로 사용하는 구조이다. 회사의 조직도 컴퓨터 파일 시스템에서의 디렉토리와 서브디렉토리 구조 내 컴퓨터\C:\Program Files 트리의 용어 노드의 명칭 루트(root) 노드 : 맨 위에 위치한 노드 dog 가 루트노드이다. 리프(leaf) 노드 : 자식이 없는 노드 canine, fox, wolf가 리프노드이다. 리프노드가 아닌 노드를 인터널(internal) 노드라 부른다. 기타 용어 서브트리(sub-tree): 트리에서 어떤 한 노드와 그 노드의 자손들로 이루어진 트리를 부트리(sub-tree)라고 부른다. cat과 canine으로 이루어진 트리가 서브트리이다. 간선/엣지/링크/브랜치: 노드와 노드를 연결하는 선 레벨(level)..
-
[Java] 클래스와 인스턴스Programming/Java 2021. 4. 5. 13:00
클래스와 인스턴스 관련 개념을 알아보자 들어가기 전에! 자바는 객체지향 프로그래밍(OOP, Object-Oriented Programming)이 가능한 객체 지향 언어이다. 객체 지향 프로그래밍이란, 프로그래밍에서 필요한 모든 데이터를 객체(Object)로 취급하여, 각 객체들간의 관계를 서술하는 방식으로 프로그래밍하는 기법을 말한다. 해당 프로그래밍 기법을 기반으로 위의 워딩들을 이해할 수 있다. 따라서 앞으로 나올 단어들도 OOP의 관점에서 이해하면 된다. 용어정리 1. 클래스(Class): 객체(Object)를 만들 수 있는 '틀' 1.1. 필드(Field) : 클래스 내에서 정의한 객체의 속성/상태(state) 1.2. 메서드(Method) : 클래스 내에서 정의한 객체의 행위(behavior) ..
-
[Java] Queue 구현하고 JUnit5로 테스트하기Programming/Java 2021. 4. 5. 12:59
java로 Queue를 구현해보자! Requirements int 배열을 사용해서 정수를 저장하는 Queue를 구현하세요. ListNode head를 가지고 있는 ListNodeQueue 클래스를 구현하세요. void enqueue(int data)를 구현하세요. int dequeue()을 구현하세요. 목차 1. 큐 1.1. 큐의 개념 1.2. 큐의 기본연산 1.3. 큐의 활용 1.4. 자바의 큐 인터페이스 2. 코드 2.1. int 배열을 사용한 큐 2.1.1. 구현코드 2.1.2. 테스트코드 2.2. 노드를 사용한 큐 2.2.1. 구현코드 2.2.2. 테스트코드 1. 큐 1.1. 큐의 개념 제약조건이 있는 리스트 스택과 마찬가지로 제약조건이 있는 리스트이다. 데이터 삽입은 한쪽 끝에서, 삭제는 반대쪽..
-
[Java] Stack 구현하고 JUnit5로 테스트하기Programming/Java 2021. 4. 5. 12:59
Java로 Stack을 구현해보자! Requirements int 배열을 사용해서 정수를 저장하는 Stack을 구현하세요. void push(int data)를 구현하세요. int pop()을 구현하세요. ListNode head를 가지고 있는 ListNodeStack 클래스를 구현하세요. void push(int data)를 구현하세요. int pop()을 구현하세요. 목차 스택 1.1. 스택의 개념 1.2. 스택의 기본연산 1.3. 스택의 활용 : 괄호검사문제 1.4. 자바의 스택 클래스 코드 2.1. int 배열을 사용한 스택 2.1.1. 구현코드 2.1.2. 테스트코드 2.2. 노드를 사용한 스택 2.2.1. 구현코드 2.2.2. 테스트코드 1. 스택 1.1. 스택의 개념 제약조건이 있는 리스트 ..