본문 바로가기

#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 : 다른 어떤 객체(클래스)에서도 액세스가 가능한(사용할 수 있는) 접근 권한이다. 이 접근 권한은 다른 코드에서 사용할 수 ..
#011. Array (배열) 알아보기... #011. Array (배열) 알아보기... 1. 배열은 같은 Type의 데이터를 여러 개 저장하는 자료구조이다. 특징은 배열의 크기를 조절할 수 없다. (크기불변) 테스트를 위해 oop 패키지에 ArrayDemo Class 를 만들고 아래와 같이 작성해본다. 코드package oop; public class ArrayDemo { public static void main(String[] args) { int[] i = { 10,70,90 }; for (int idx=0; idx
#010. Wrapper Class 알아보기... #010. Wrapper Class 알아보기... 1. 자바에서 사용되는 변수는 변수(값을 메모리에 저장)와 참조변수(값이 저장된 메모리 위치) 두 가지가 있다. 여기서 변수는 int, double, float, char ... 이 있으며, new 예약어로 생성되는 instance는 모두 참조변수가 된다. 우리는 이전강좌 #008 에서 String 객체에 값이 변할 때마다, 참조 주소 값(메모리 실 주소 값 아님)이 변경되는 것을 보았다. 화면으로 보여 줄 순 없지만, Wrapper의 기능으로 비슷한 결과를 얻을 수 있다. 테스트를 위해 oop 패키지에 WrapperDemo Class를 만들고 아래와 같이 작성해본다. 코드package oop; public class WarpperDemo { public..
#009. StringBuilder 객체 알아보기... #009. StringBuilder 객체 알아보기... 1. StringBuilder 의 객체를 알아보자. 테스트를 위해 oop 패키지에 StringBuilderDemo Class를 만들고 아래와 같이 작성해본다. 코드package oop; public class StringBuilderDemo { public static void main(String[] args) { StringBuilder sb = new StringBuilder(); sb.append("Hi"); sb.append(", "); sb.append("Dong Hyuk"); System.out.println("SB: " + sb+", Code: "+sb.hashCode()); sb.deleteCharAt(8); System.out.pr..