목록전체 글 (163)
Frog is cry
package 메소드재정의.ex01; public class SportsCar extends Car{ @Override public void speedUp() { speed += 10; } //public void stop() {// final로 상속 불가 // //} } package 메소드재정의.ex01; public class Car { // 필드 public int speed; // 생성자 // 메소드 public void speedUp() { speed += 1; } public final void stop() { System.out.println("차를 멈춤"); speed = 0; } } package 메소드재정의.ex02; public class Calculator { double area..
package getter_setter; public class Car { private int speed; private boolean stop; // Method public int getSpeed() { // 리턴타입 int return speed; } public void setSpeed(int speed) {// 리턴타입 void if(speed is로 시작 return stop; } public void setStop(boolean stop) { this.stop = stop; //if(stop) { speed =..
안터페이스, 상수 필드, 추상 메소드, 구현 클래스, 인터페이스 사용 인터페이스(Interface) > 개발 코드는 인터페이스를 통해서 객체와 서로 통신한다. > 인터페이스의 메소드 호출하면 객체의 메소드가 호출된다. > 개발 코드를 수정하지 않으면서 객체 교환이 가능하다. > 인터페이스란 객체의 사용 방법을 정의한 타입이다. > 인터페이스를 통해 다양한 객체를 동일한 사용 방법으로 이용할 수 있다. > 인터페이스를 이용해서 다형성을 구현할 수 있다. 인터페이스 선언 > .java 형태 소스 파일로 작성 및 컴파일러 통해 ~class 형태로 컴파일된다. 클래스와 물리적 파일 형태는 같으나 소스 작성 내용이 다르다. ex) [public] interface 인터페이스이름 {....} 인터페이스는 객체로 생..
추상 클래스, 추상 메소드, 재정의 여러 클래스의 공통된 특성(필드, 메소드)를 추출해서 선언한 것을 추상클래스라고 한다. 추상 클래스 > 실체 클래스(객체 생성용 클래스)들의 공통적인 특성(필드,메소드)을 추출하여 선언한 것 > 추상 클래스와 실체 클래스는 부모, 자식 클래스로서 상속 관계를 가짐 ex) Bird, Insect, Fish를 실체 클래스라고 부르며, Animal은 추상 클래스이다. ex) TelePhone, SmartPhone를 실체 클래스라고 부르며, Phone은 추상 클래스이다. 추상 클래스의 용도 > 실체 클래스에 반드시 존재해야할 필드와 메소드의 선언(실체 클래스의 설계 규격 - 객체 생성용이 아님) > 실체 클래스에는 공통된 내용은 빠르게 물려받고, 다른 점만 선언하면 되므로 시..
클래스 타입 변환, 자동 타입 변환, 다형성, 강제 타입 변환, instanceof 기본타입과 마찬가지로 클래스도 타입 변환이 있다. ex) int i = 10; / double d = i; ex) A a = new A(); / B b = a; 이를 활용하면 객체 지향 프로그래밍의 다형성을 구현할 수 있다. 다형성 > 사용 방법은 동일하지만 다양한 객체 활용에 여러 실행결과가 나오도록 하는 성질 > 메소드 재정의와 타입 변환으로 구현 자동 타입 변환(promotion) > 프로그램 실행 도중 자동으로 타입 변환 일어나는 것 > 부모타입 변수 = 자식타입; 일경우만 가능 부모 타입으로 자동 타입 변환 이후에는 부모 클래스에 선언된 필드 및 메소드만 접근 가능 예외적으로, 메소드가 자식 클래스에서 재정의될 ..
메소드 재정의 (오버라이딩 / Overriding) > 부모 클래스의 메소드가 자식 클래스에서 사용하기에 부적합할 경우 자식 클래스에서 수정하여 사용 메소드 재정의 방법 > 부모 메소드와 동일한 시그니처 가져야 함 > 접근 제한 더 강하게 재정의할 수 없음 > 새로운 예외를 throws 할 수 없음 final 클래스와 final 메소드 > 해당 선언이 최종 상태이며 수정될 수 없음을 의미 > 클래스 및 메소드 선언 시 final 키워드를 사용하면 상속과 관련됨 상속할 수 없는 final 클래스 > 부모 클래스가 될 수 없어 자식 클래스 만들 수 없음을 의미 ex) public final class 클래스 { ...} > extedns 불가 상속 > 부모 클래스의 필드와 메소드를 자식 클래스에서 사용할 수..
상속, 메소드 재정의, final 클래스, final 메소드 상속 > 이미 개발된 클래스를 재사용하여 새로운 클래스를 만들기에 중복되는 코드를 줄임 > 부모 클래스의 한번의 수정으로 모든 자식 클래스까지 수정되는 효과가 있어 유지보수 시간이 줄어듬 클래스 상속 > 자식 클래스 선언 시 부모 클래스 선택 > extends 뒤에 부모 클래스 기술 ex) class 자식클래스 extends 부모클래스 { } > 여러 개의 부모 클래스 상속할 수 없음 > 부모 클래스에서 private 접근제한 갖는 필드와 메소드는 상속 대상에서 제외 > 부모와 자식 클래스가 다른 패키지에 존재할 경우 default 접근 제한된 필드와 메소드 역시 제외
메소드 package day18; public class Calc1 { public void method1(int m1) { System.out.println(m1); } public String method2(String m2, String m3) { String result = m2 + m3; System.out.println(result); return result; } } package day18; public class Calc1_Ex { public static void main(String[] args) { Calc1 c1 = new Calc1(); c1.method1(10); c1.method2("1","2"); } } package day18; public class Calc2 { Str..