오버라이딩 조상 클래스로부터 상속받은 메서드의 내용을 상속받는 클래스에 맞게 변경하는 것 class Point { int x; int y; String getLocation() { return "x :" + x + ", y :"+ y; } } class Point3D extends Point { int z; String getLocation() {// 오버라이딩 return "x :" + x + ", y :"+ y + ", z :" + z; } } 조건 선언부가 같아야 한다.(이름, 매개변수, 반환타입) 접근 제어자, 예외는 제한된 조건 하에서 다르게 변경할 수 있다. 접근 제어자는 조상 클래스의 메서드보다 좁은 범위로 변경할 수 없다. 조상 클래스의 메서드보다 많은 수의 예외를 선언할 수 없다. 인스턴..
정의 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것 상속을 통해 보다 적은 양의 코드로 새로운 클래스를 작성할 수 있다. 코드를 공통적으로 관리할 수 있기 때문에 코드의 추가 및 변경이 매우 용이 이러한 특징으로 코드의 재사용성을 높이고 코드의 중복을 제거하여 프로그램의 생산성과 유지보수에 크게 기여 상속 구현 방법 class Child extends Parent { // ... } 상속해 주는 클래스를 '조상 클래스', 상속받는 클래스를 '자손 클래스'라고 한다. 조상 클래스 부모 클래스, 상위 클래스, 기반 클래스 자손 클래스 자식 클래스, 하위 클래스, 파생된 클래스 자손은 조상의 모든 멤버를 상속받는다. (생성자, 초기화블록 제외) 자손 클래스의 멤버 개수는 조상 클래스보다 항상 같거나 ..
변수의 초기화 변수를 선언하고 처음으로 값을 저장하는 것 가능하면 선언과 동시에 적절한 값으로 초기화하는 것이 바람직 멤버변수, 배열 (초기화 선택) 따로 초기화를 하지 않아도 자동적으로 변수의 자료형에 맞는 기본값으로 초기화된다. 지역변수 (초기화 필수) 사용하기 전 반드시 초기화해야 한다. 멤버변수의 초기화 방법 1. 명시적 초기화 2. 생성자 3. 초기화 블록 - 인스턴스 초기화 블록 - 클래스 초기화 블록 명시적 초기화 변수를 선언과 동시에 초기화 class Car { int door = 4;// 기본형 변수의 초기화 Engine e = new Engine();// 참조형 변수의 초기화 } 생성자 https://ewok.tistory.com/334#%EB%A7%A4%EA%B0%9C%EB%B3%80..
생성자 인스턴스가 생성될 때 호출되는 인스턴스 초기화 메서드 인스턴스 변수의 초기화 작업에 주로 사용되며, 인스턴스 생성 시에 실행되어야 할 작업을 위해서도 사용된다. 조건 생성자의 이름은 클래스의 이름과 같아야 한다. 생성자는 리턴 값이 없다. (하지만 void를 쓰지 않음) 생성자 정의 클래스이름(타입 변수명, 타입 변수명, ... ) { // 인스턴스 생성 시 수행될 코드, // 주로 인스턴스 변수의 초기화 코드를 적는다. } class Card { Card() {// 매개변수가 없는 생성자 ... } Card(String k, int num) {// 매개변수가 있는 생성자 ... } ... } 연산자 new가 인스턴스를 생성하는 것이지 생성자가 인스턴스를 생성하는 것은 아니다. Card c = n..
오버로딩 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것 오버로딩의 조건 메서드 이름이 같아야 한다. 매개변수의 개수 또는 타입이 달라야 한다. 오버로딩 예시 void println() void println(boolean x) void println(char x) void println(char[] x) void println(double x) void println(float x) void println(int x) void println(long x) void println(Object x) void println(String x) 오버로딩이 아닌 것의 예시 매개변수의 이름이 다른 경우 int add(int a, int b) { return a+b; } int add(int x, int ..
메서드 앞에 static이 붙어 있으면 클래스 메서드이고 붙어 있지 않으면 인스턴스 메서드이다. 인스턴스 메서드 인스턴스 변수와 관련된 작업을 하는, 즉 메서드의 작업을 수행하는 데 인스턴스 변수를 필요로 하는 메서드이다. 클래스 메서드 인스턴스와 관계없는(인스턴스 변수나 인스턴스 메서드를 사용하지 않는) 메서드를 클래스 메서드(static 메서드)로 정의한다. 멤버변수 클래스 변수(static 변수)와 인스턴스 변수를 모두 통칭 1. 클래스를 설계할 때, 멤버변수 중 모든 인스턴스에 공통으로 사용하는 것에 static을 붙인다. 각 인스턴스는 서로 독립적이기 때문에 인스턴스의 변수는 서로 다른 값을 가질 수 있다. 하지만 모든 인스턴스에서 같은 값이 유지되어야 하는 변수는 static을 붙여 클래스 변..