Language/Java56 메서드 오버라이딩 (Method Overriding) = 메서드 재정의 메서드 오버라이딩 (Method Overriding) = 메서드 재정의 - 슈퍼클래스로부터 상속받은 메서드를 서브클래스에서 새롭게 재정의 하는 것(덮어씀) - 기존 슈퍼클래스의 메서드와 동일하게 생긴 메서드를 정의하게 되므로 서브클래스에서는 더 이상 슈퍼클래스의 메서드가 보이지 않고 자신이 오버라이딩한 메서드만 보이게 됨 (즉, 슈퍼클래스의 메서드는 은닉됨) - 슈퍼클래스의 메서드에 기능을 추가하는 등 메서드 내용 변경이 필요할 때 사용 상속 관계 필수 메서드 시그니쳐(메서드명, 리턴타입, 파라미터)가 일치해야함 리턴타입은 상속관계에 있는 서브클래스 타입으로 변경은 가능함 접근 제한자는 같거나 넓은 범위로만 변경 가능 예외 클래스의 범위는 좁은 범위로만 변경 가능함 static, .. 2020. 6. 5. 상속에서의 생성자 [접근제한자] 클래스명 (){} => 메서드와 달리 리턴타입이 없으며, 생성자의 이름은 클래스명과 동일하게 작성 상속에서의 생성자 생성자는 상속되지 않는다 생성자의 이름은 클래스 이름을 사용하므로, 상속받은 생성자는 부모클래스의 이름이 되어 생성자 규칙에 위배됨 서브클래스의 인스턴스를 생성할 때에는, 자동으로 슈퍼클래스의 인스턴스를 먼저 생성한 후 서브클래스의 인스턴스가 생성됨 서브클래스의 인스턴스생성 시점에서 생성자를 호출하게 되면 슈퍼클래스의 인스턴스를 생성하기 위해 자동으로 슈퍼클래스의 생성자를 호출하게 됨 (기본적으로 슈퍼클래스의 파라미터가 없는 기본 생성자를 호출) 2020. 6. 4. 상속(Inheritance) 상속(inheritance) Is-a 관계 ( A is a B 가 성립되면 A는 B를 상속받아 정의했다는 의미가 됨) 슈퍼클래스의 멤버(변수 및 메서드)를 서브클래스에서 물려받아 선언없이 사용하는 것 =>슈퍼클래스(=부모클래스 =상위클래스) : 멤버를 물려주는 클래스 =>서브클래스(=자식클래스 =하위클래스) : 멤버를 물려받는 클래스 => A is a B 일 때 A가 서브클래스, B가 슈퍼클래스가 된다. 코드 중복 제거가 가능하며, 유지보수성이 향상됨 상속을 적용하기 위해서는 서브클래스 정의 시 서브클래스명 뒤에 extends 키워드를 사용하여 슈퍼클래스의 이름을 지정해야함 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 2.. 2020. 6. 4. Singleton Design Pattern(싱글톤 디자인 패턴) Singleton Design Pattern -유일한 인스턴스 하나만 생성해서 공유하는 프로그래밍 작성 패턴 1. 외부에서 인스턴스 생성이 불가능하도록 생성자를 private 으로 지정 2. 외부에서 인스턴스 생성이 불가능하도록, 클래스 내에서 직접 인스턴스 생성 3. 외부에서 인스턴스를 전달받을 수 있도록 Getter 를 사용하여 생성한 인스턴스 리턴 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 public class Ex4 { public static void main(String[] args) { SingletonClass sc = SingletonClass.getInstance(); SingletonClass.. 2020. 6. 1. static 키워드 static 키워드 -변수와 메서드에 사용 가능 - 인스턴스 생성 전, 클래스가 메모리에 로딩되는 시점에 함께 로딩됨 => 인스턴스 생성과 무관하며, 모든 인스턴스에서 하나의 메모리를 공유함 - 인스턴스 주소를 갖는 참조변수 대신 클래스명만으로 접근 가능 static 변수 (= 클래스 변수 = 정적변수) - 변수의 데이터타입 앞에 static 키워드를 사용 - 인스턴스 생성 없이 클래스가 메모리에 로딩될 때 변수도 함께 로딩됨 => 클래스명만으로 접근 가능하며, 모든 인스턴스에서 하나의 변수를 공유함 선언 : [접근제한자] static 데이터타입 병수명; 사용 : 클래스명.변수명 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 2.. 2020. 6. 1. this 레퍼런스 this (참조형 변수 this) 인스턴스 생성 시 생성된 인스턴스 주소가 자동으로 저장되는 레퍼런스 변수(키워드) 단, 개발자가 선언하는 것이 아닌 자바에 의해 자동으로 선언된 레퍼런스 생성자나 메서드 등에서 로컬 변수를 선언 했을 때, 로컬변수의 이름과 인스턴스 변수가 같을 경우 인스턴스 변수를 지정하기 위한 용도로 사용 사용법 : this.인스턴스변수명 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 class Student{ // 인스턴스(멤버) 변수 int id; String name; public Student(int id, String name) { // 로컬변수와 인스턴스변수의 이름이 같을 때, // 로컬변수가 선언된 메서.. 2020. 5. 28. 이전 1 ··· 3 4 5 6 7 8 9 10 다음