본문 바로가기

Developer/Java-oop

(32)
#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. 아래 예제를 통해 자세히 알아보자. 우선 학교가 있다. 학교에는 학생과 교수가 있다. 학교에는 학과, 성명 의 저장공간이 있고, 그 내용을 출력하는 기능이 있다. 학교에서는 학생과 교수의 학과, 성명 이 필요하고, 그 내용을 확인할 수 ..
#013. package / import 알아보자... #013. package / import 알아보자... 1. 우리는 지금 것 package를 많이 만들어 왔다. package는 연관성 있는 class들의 묶음(모음) 이라고 보면 되겠다. 컴퓨터라는 솔루션이 있다. 여기에는 입력, 출력 등을 담당하는 패키지 들이 있다. 입력 패키지에는 키보드, 마우스, 터치스크린 등.. 의 클래스 들이 있다. 키보드 클래스 에는 A key, B key 를 눌렀을 때 처리하는 기능의 메서드 들이 있다. 마우스 클래스 에는 왼쪽, 오른쪽 각각의 기능을 처리하는 메서드 들이 있다. 출력 패키지에는 모니터, 프린터, 스피커, 이어폰 등의 클래스 들이 있다. 모니터 클래스 에는 화면크기, 화면밝기 등의 기능을 가진 메서드 들이 있다. 프린터 클래스 에는 .... 여기서 노트북이..
#012. access modifier (접근제한자) 알아보기... #012. access modifier (접근제한자) 알아보기... 1. 접근 제한자는 클래스, 멤버변수, 멤버메서드에 정의하여 사용하는 것으로 접근을 제한하는 용도로 사용을 한다. 접근 제한자는 public, protected, default, private 이렇게 4가지가 있다. 원본출처:: http://blog.naver.com/phoenixttt?Redirect=Log&logNo=70042125108 접근제한자동일한 클래스동일한 패키지하위 클래스모두publicYesYesYesYesprotectedYesYesYes defaultYesYes privateYes - public : 다른 어떤 객체(클래스)에서도 액세스가 가능한(사용할 수 있는) 접근 권한이다. 이 접근 권한은 다른 코드에서 사용할 수 ..