# 02 썸네일형 리스트형 [윤성우 열혈자바] 16-2. Object 클래스와 final 선언 그리고 @Override 모든 클래스는 Object 클래스를 상속한다. class MyClass { ... } 상속하는 클래스가 없다면 컴파일러에 의해 다음과 같이 java.lang.Object 클래스를 상속하게 코드가 구성된다. class MyClass extends Object { ... } class MyClass extends OtherClass { ... } 이렇듯 다른 클래스를 상속한다면 Object 클래스를 직접 상속하지는 않게 된다. 그러나 간접적으로 (Object 클래스를 상속하는 클래스를 상속하는 형태로) Object 클래스를 상속하게 된다. 모든 클래스가 Object를 직접 또는 간접 상속하므로 // System.out.printlnpublic void println(Object x) {. . .String .. [윤성우 열혈자바] 16-1. 상속이 도움이 되는 상황의 소개 상속 기반의 문제 해결 : 두 클래스 상속 관계로 묶기 class Friend {protected String name;protected String phone; public Friend(String na, String ph) {name = na;phone = ph;}public void showInfo() {System.out.println( "이름 : " + name );System.out.println( "전화 : " + phone);}} "연관된 일련의 클래스들에 대해 공통적인 규약을 정의 및 적용할 수 있다." "CompFriend와 UnivFriend 클래스에 대해 Friend 클래스라는 규약을 정의하고 적용할 수 있다." class CompFriend extends Friend {privat.. [윤성우 열혈자바] 15-3. instanceof 연산자 instanceof 연산자의 기본 class Cake {} class CheeseCake extends Cake {} class StrawberryCheeseCake extends CheeseCake {} public static void main(String[] args) {Cake cake = new StrawberryCheeseCake(); if (cake instanceof Cake) { ... } // true if (cake instanceof CheeseCake) { ... } // true if (cake instanceof StrawberryCheeseCake) { ... } // true} if (ref instanceof ClassName)ref가 ClassName 클래스의 인스턴스를.. [윤성우 열혈자바] 15-2. 메소드 오버라이딩 상위 클래스의 참조변수가 참조할 수 있는 대상의 범위 class SmartPhone extends MobilePhone { . . . . } 스마트폰은 모바일폰이다. SmartPhone phone = new SmartPhone ( "010-555-7777", "Nougat" ); 따라서 스마트폰 참조변수로 스마트폰 참조 가능하고, 이 역은 성립하지 않음에 주의! (다운캐스팅 안됨)MobilePhone phone = new SmartPhone( "010-555-777", "Nougat" ); 모바일폰 참조변수로 스마트폰 참조도 가능하다. (업캐스팅 가능) 단 , 업캐스팅 시 SmartPhone 인스턴스 생성되었지만 메서드는 MobilePhone에 제한된다. SmartPhone에 만 있는 기능은 사용 못함!.. [윤성우 열혈자바] 15-1. 상속을 위한 두 클래스의 관계 상속 관계에 놓은 두 대상의 관찰 상속의 특성 하위 클래스는 상위 클래스의 모든 특성을 지닌다.거기에 더하여 하위 클래스는 자신만의 추가적인 특성을 더하게 된다. 상속 관계에 있는 두 대상은 IS-A 관계를 가져야 한다. ( A is a B ) IS - A 관계 .. 은 .. 이다. 의 관계 IS - A 관계를 갖지 않는 두 클래스가 상속으로 연결되어 있다면, 적절한 상속이 아니다!! 예) 스마트폰 is a 모바일폰 ( 스마트폰은 일종의 모바일 폰이다. ) 옳은 상속! [윤성우 열혈자바] 14-2. 클래스 변수, 클래스 메소드와 상속 클래스 변수, 메소드는 상속이 되는가? class SuperCLS {static int count = 0; // 클래스 변수 public SuperCLS() {count++; // 클래스 내에서는 직접 접근이 가능}} 프로그램 전체에서 딱 하나만 존재하는데 상속의 대상이 되겠는가? 상속안됨! class SubCLS extends SuperCLS {public void showCount() {System.out.println(count); // 상위 클래스에 위치하는 클래스 변수에 접근}} 그러나 하위 클래스에서 이름만으로 접근 가능하다!접근 수준 지시자에서 허용한다면! [윤성우 열혈자바] 14-1. 상속의 기본 문법 이해 상속은 코드의 재활용을 위한 문법이 아닌 연관된 일련의 클래스들에 대해 공통적인 규약을 정의하는 것 입니다. 상속과 생성자1 class Man {String name; public Man( String name ) {this.name = name;} public void tellYourName() {System.out.println( "My name is " + name );}} class BusinessMan extends Man {String company;String position; public BusinessMan( String company, String position ) {this.company = company;this.position = position;} public void tell.. [윤성우 열혈자바] 13-2. enhanced for문 enhanced for문 ( for-each문 )의 이해 코드의 특징 : 배열 요소의 순차적 접근 int[] ar = {1, 2, 3, 4, 5}; for( int i = 0; i < ar.length; i++ ) {System.out.println( ar[i] );} 위 유형의 코드는 for-each 문으로 다음과 같이 구성 가능 int[] ar = {1, 2, 3, 4, 5}; for( int e : ar ) {System.out.println( e );} 코드의 양이 줄고 배열의 길이와 요소에 신경 쓸 필요 없다. 이전 1 ··· 48 49 50 51 52 53 54 ··· 86 다음