프로그래밍 언어

Java 상속 #6
혼자공부하는 자바(07-3) 마무리문제 1. 추상 클래스에 대한 설명입니다. 맞는 것에 O표, 틀린 것에 X표 하세요. ① 추상 클래스는 직접 new 연산자로 객체를 생성할 수 없다. ( O ) ② 추상 클래스는 부모 클래스로만 사용된다. ( O ) ③ 추상 클래스에는 최소한 하나의 추상 메소드가 있어야 한다. ( O ) ④ 추상 클래스에는 최소한 하나의 추상 메소드가 있어야 한다. ( X ) 2. 추상 메서드에 대한 설명입니다. 맞는 것에 O표, 틀린 것에 X표 하세요. ① 추상 메소드는 선언부만 있고, 실행 블록을 가지지 않는다. ( O ) ② 추상 메소드는 자식 클래스에서 재정의해서 실행 내용을 결정해야 한다. ( O ) ③ 추상 메소드를 재정의하지 않으면 자식 클래스도 추상 클래스가 되어야 한다...

Java 상속 #5
추상 클래스 추상 클래스의 용도 실체 클래스의 공통적인 특성(필드, 메소드)을 뽑아내어 추상 클래스로 만드는 이유가 무엇일까? 추상 클래스는 구현목적보다는 설계의 목적으로 사용한다. 공통된 필드와 메소드의 이름을 통일할 목적 : 실체 클래스를 설계하는 사람이 여러 사람일 경우, 실체 클래스마다 필드와 메소드가 제각기 다른 이름을 가질 수 있다 예를 들어 소유자의 이름을 저장하는 필드를 Telephone 클래스에서는 owner라고 하고, SmartPhone클래스에서는 user라고 할 수 있습니다. 전원을 켜는 메소드를 Telephone에서는 turnOn()으로 설계하고, SmartPhone에서는 powerOn()이라고 설계할 수 있습니다. 이렇게 데이터와 기능이 모두 동일함에도 불구하고 이름이 다르다 보니..

Java 상속 #4
7-2 타입변환과 다형성 마무리 문제 1. 클래스 타입 변환에 대한 설명입니다. 맞는것에 O표 틀린것에 X표 하세요. ① 자식 객체는 부모 타입으로 자동 타입 변환된다. ( O ) ② 부모 객체는 항상 자식 타입으로 강제 타입 변환된다. ( X ) ③ 자동 타입 변환을 이용해서 필드와 매개변수의 다형성을 구현한다. ( O ) ④ 강제 타입 변환 전에 instanceof 연산자로 변환 가능한지 검사하는 것이 좋다. ( O ) 2. Tire 클래스를 상속받아 SnowTire 클래스를 다음과 같이 작성했습니다. SnowTireExamle 클래스를 실행했을때 출력 결과는 무엇일까요? SnowTire 객체 (자식)을 생성했고, Tire 타입의 tire 부모 변수에 이 SnowTire객체를 대입했다. 그리고 sno..

Java 상속 #4
7-2 타입변환과 다형성 마무리 문제 1. 클래스 타입 변환에 대한 설명입니다. 맞는것에 O표 틀린것에 X표 하세요. ① 자식 객체는 부모 타입으로 자동 타입 변환된다. ( O ) ② 부모 객체는 항상 자식 타입으로 강제 타입 변환된다. ( X ) ③ 자동 타입 변환을 이용해서 필드와 매개변수의 다형성을 구현한다. ( O ) ④ 강제 타입 변환 전에 instanceof 연산자로 변환 가능한지 검사하는 것이 좋다. ( O ) 2. Tire 클래스를 상속받아 SnowTire 클래스를 다음과 같이 작성했습니다. SnowTireExamle 클래스를 실행했을때 출력 결과는 무엇일까요? SnowTire 객체 (자식)을 생성했고, Tire 타입의 tire 부모 변수에 이 SnowTire객체를 대입했다. 그리고 sno..

Java 상속 #3
타입 변환과 다형성 다형성(多形性, polymorphism) : 다형(多形), 다형 현상은 생물학과 동물학에서 동종 개체들 가운데에서 2개 이상의 대립 형질이 뚜렷이 구별되어 나타나는 것을 말한다. 자바에서의 다형성 하나의 객체나 메소드가 여러가지 다른 형태를 가질 수 있는 것을 말합니다. 다형성을 구현하려면 메소드 재정의 + 타입 변환 -> 다형성 자동 타입 변환 타입 변환이란 타입을 다른 타입으로 변환하는 행위를 말합니다. 자동 타입 변환(promotion)은 프로그램 실행 도중에 자동적으로 타입 변환이 일어나는 것을 말합니다. 자동 타입변환은 다음과 같은 조건에서 일어납니다. 자동타입변환 예제 부모 타입으로 자동 타입 변환된 이후에는 부모 클래스에 선언된 필드와 메소드만 접근이 가능하다. 비록 변수..

Java 상속 #2
혼자공부하는 자바 마무리 문제 상속 마무리 문제 상속에 대한 설명입니다 맞으면 O, 틀리면 X ① 자바는 다중 상속을 허용한다 ( X ) ② 부모의 메소드를 자식 클래스에서 재정의(오버라이딩)할 수 있다. ( O ) ③ 부모의 private접근 제한을 갖는 필드와 메소드는 상속의 대상이 아니다. ( O ) ④ protected 멤버는 같은 패키지의 모든 클래스와 다른 패키지의 자식 클래스만 접근할 수 있다. ( O ) 메서드 재정의(오버라이딩)에 대한 설명입니다 맞으면 O, 틀리면 X ① 부모의 메서드는 숨김 효과가 나타난다. ( O ) ② 재정의 시 접근 제한을 더 강하게 할 수 있다. ( X ) ③ @Override를 붙이면 컴파일러가 재정의를 확인한다. ( O ) ④ 부모 메소드를 호출하고 싶다면 ..

Java 상속 #1
상속 상속(Inheritance) 부모가 자식에게 물려주는 행위 부모 클래스의 멤버를 자식 클래스에게 물려주는 행위 잘 개발되어 있는 클래스를 재사용해서 새로운 클래스를 만들때 중복코드를 최소화 시켜준다. 클래스 상속 속성 class 자식클래스 extends 부모클래스{ //필드 //생성자 //메서드 } 자식 클래스를 선언할 때 어떤 부모 클래스를 상속받을 것인지 결정하고, 선택된 부모 클래스는 다음과 같이 extends 뒤에 기술한다. 규칙 ① 여러 개의 부모 클래스를 상속할 수 없다. ② 부모 클래스에서 private 접근 제한을 갖는 필드와 메소드는 상속 대상에서 제외됩니다. 그리고 부모 클래스와 자식 클래스가 다른 패키지에 존재한다면 default 접근 제한을 갖는 필드와 메소드도 상속 대상에서 ..

Java 패키지와 접근 제한자 #1
패키지와 접근 제한자 패키지 패키지는 물리적인 형태는 파일 시스템의 폴더입니다. 패키지는 단순히 파일 시스템의 폴더 기능만 하는것이 아니라 클래스의 일부분으로, 클래스를 유일하게 만들어주는 식별자 역할을 합니다. 클래스 이름이 동일하더라도 패키지가 다르면 다른 클래스로 인식합니다. 클래스 이름이 같지만 패키지가 달라서 다른 클래스로 인식해서 오류가 발생하지 않음 윈도우 문서\pdf문서\abc.pdf 문서\엑셀문서\abc.xls 문서\한글문서\abc.hwp 자바 패키지 문서.pdf문서.abc.class 문서.엑셀문서.abc.class 문서.한글문서.abc.class 패키지 선언 상위패키지.하위패키지.클래스 package 상위패키지.하위패키지; public class CalssName { ... } 패키지는..