본문 바로가기

Developer

(52)
#021. Collection HashSet<E> 알아보기... #021. Collection HashSet 알아보기... 1. HashSet 의 특징은 이전 시간에서 알아 봤듯이, 중복을 허용하지 않으며, 순서가 변경될 수 있다. 순서가 보장되지 않아 거의 사용을 하지는 않는다. 그래서 이번 시간엔, 데이터가 어떻게 들어가는지 디버그 화면을 통해 알아보겠다. 2. 테스트를 위해 util 패키지를 만들고, SetDemo class 를 만들어 아래의 코드를 작성해보자. 1) 먼저 HashSet 의 사용법을 익혀보자. 코드package util; import java.util.HashSet; public class SetDemo { public static void main(String[] args) { HashSet names = new HashSet(); names...
#020. Collection Set / List / Map 알아보자... #020. Collection Set / List / Map 알아보자... 1. Collection 의 특징을 알아보자. 1. Collection 의 객체는 같은 유형의 객체를 저장할 수 있는 자료구조다. 2. 이전 강좌에서 알아본 배열로 예를 들어보면, 배열의 크기를 한번 지정하면, 더 이상 크기를 변경할 수가 없다. 그에 반면, Collection 은 자료구조의 크기를 지정하지 않고 사용을 한다. 3. 기본 자료형인 int, char, double, boolean 등 .... 은 Collection 에 넣을 수 없기 때문에 이전강좌에서 알아본 wrapper class 로 변형해서 넣어야 한다. 위 2번과 같은 특징 때문에 프로그램 개발할 때 배열보다는 Collection을 많이 사용한다. 2. Con..
#019. final 예약어 알아보기... #019. final 예약어 알아보기... 1. final 이란 예약어가 붙으면, 우리는 더 이상 뭔가를 할 수 없다는 것을 기억하면 되겠다. 2. final 이 사용하는 위치에 따라서 의미가 달라진다. 그 의미는 아래와 같다. 1. public final class: class 에서의 final 의 의미는 "상속을 금지"한다. 2. public final void view() { }: method 에서의 final 의 의미는 "재정의 금지"한다. 3. public final int MAX_SIZE=32: 변수 에서의 final 의 의미는 "값 변경 금지"한다. 3. 뭐.. 확인해봤자 출력은 안되지만, 에러의 모습을 확인 해보자. 테스트를 위해 oop2 패키지에 Final class / FinalMeth..
#018. Interface (인터페이스) 알아보기... #018. Interface (인터페이스) 알아보기... 1. 인터페이스의 특징은 추상메서드 와 상수 만 가질 수 있다. 이전시간에 알아봤듯이 추상(abstract)메서드의 특징상 상속받는 자식은 꼭 같은 이름으로 오버라이딩을 사용해 구현을 해야 한다. (구현하지 않으면 컴파일이 안 된다.) 인터페이스끼리는 다중상속(extends)이 가능하며, 클래스에서 여러개의 인터페이스를 구현 (implements) 할 수 있다. 2. 이번 시간엔 interface 를 테스트 하기 위해 아래와 같은 작업을 할 것이다. 1. MP3를 듣기 위해서는 play(), stop() 기능이 필요하다. 2. IPod 의 클래스를 만들어 이곳 저곳에 사용을 하고 싶다. IPod에는 MP3 기능을 구현해야 한다. 3. MP3Play..
#017. abstract (추상화) 알아보기... #017. abstract (추상화) 알아보기... 1. 추상화란 상속받는 자식 클래스가 꼭! 구현해야 하는 메서드를 정의 하는 것이며, 자식클래스가 오버라이딩으로 메서드 재정의를 하지 않는다면 컴파일이 안된다. 오버라이딩으로 메서드를 재정의하지 않으면, 오버라이딩 특성상 컴파일이 안되기 때문에 자식 클래스의 메서드의 이름 과 사용방법의 통일이 될 것이다. 추상화 클래스는 new로 객체를 만들 수 없다. 2. 이번엔 abstract 를 테스트 하기 위해 아래와 같은 작업을 할 것이다. 부모 = Parent Class 를 Abstract (추상화)로 만든다. 추상화 메서드 who 를 만든다. 자식1 = Son Class 에 Parent 를 상속받고, who 메서드 재정의를 한다. 자식2 = Daughter..
#016. method overriding (메서드 재정의) 알아보기... #016. method overriding (메서드 재정의) 알아보기... 1. 오버라이딩 이란 부모의 메서드를 자신에 맞게 재정의 하는 것이다. 오버라이딩 관계에서는 부모클래스로 upcasting 되어도 자기 자신의 함수를 호출한다. 2. 이전에 했던 School 예제에서 조금 더 수정해 보자. 이번엔 overriding 을 하기 위해 아래와 같은 작업을 할 것이다. 학교 = School Class 에 exe 메서드를 만든다. 학생 = Student Class 에도 exe 메서드를 만든다. 교수 = Professor Class 에도 exe 메서드를 만든다. 테스트 = SchoolDemo Class 에 exeTest 메서드를 만들고, 그 안에 exe 메서드를 호출한다. 1) 학교 class (School..
#015. upcasting / downcasting 알아보자... #015. upcasting / downcasting 알아보자... 1. upcasting 은 자식객체를 부모타입의 객체에 저장을 할 수가 있다. 부모타입으로 저장된 자식의 객체는 자식의 내용을 처리 할 수가 없다. 이것이 캡슐화다. downcasting 은 이렇게 캡슐화된 객체로 어떤 자식인지 구별 할 수 있다면, 자식의 내용도 처리 할 수 있는 것을 말한다. 2. 먼저 upcasting 에 대해서 테스트를 해보자. 이전시간에 했던 예제 중 SchoolTest Class 의 내용을 변경해서 작성해보자. 코드package oop2; public class SchoolDemo { public static void printerTest(School sc) { sc.printer(); } public stat..
#014. inheritance (상속) 알아보자... #014. inheritance (상속) 알아보자... 1. 자바에서 상속은 부모클래스(SuperClass) 의 변수, 메서드, 생성자 등을 자식클래스(SubClass) 에게 사용 할 수 있도록 해주는 것이다. 1) 자식클래스는 하나의 부모클래스만 가질 수 있다. 2) 자식클래스는 부모의 모든 것을 받아야 하며, 부분적으로 받을 수 없다. 3) 부모의 private 접근제한자 와 생성자는 물려주지 않는다. 4) 자식객체가 생성될 때 부모의 객체도 같이 생성이 된다. 2. 아래 예제를 통해 자세히 알아보자. 우선 학교가 있다. 학교에는 학생과 교수가 있다. 학교에는 학과, 성명 의 저장공간이 있고, 그 내용을 출력하는 기능이 있다. 학교에서는 학생과 교수의 학과, 성명 이 필요하고, 그 내용을 확인할 수 ..