일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- 국회의원 & 높으신 분들 어록
- https://minkwon4.tistory.com/161
- https://tecoble.techcourse.co.kr/post/2021-08-07-logback-tutorial/
- Today
- Total
목록java/정의 (6)
OPEN between Secret
메소드 오버로딩 1. 같은 클래스나 상속 관계에서의 동일한 이름의 메소드를 중복 작성하는것. 2. 이름이 같은 여러 개의 메소드를 중복 정의하여 편리성을 향상시키기 위함. 3. 메소드의 이름은 반드시 같지만, 인자의 개수나 타입은 달라야 됨. 4. 정적 바인딩이라 하며, 컴파일시에 중복되는 여러 메소들중에 호출되는 메소드로 결정. 메소드 오버라이딩 1. 서브 클래스에서 슈퍼 클래스에 있는 메소드와 동일한 이름의 메소드를 재작성하는것. 2. 슈퍼 클래스에서 정의된 메소드를 무시하고 서브 클래스에서 새로운 기능의 메소드를 재정의하기 위함. 3. 메소드의 이름, 인자 타입, 개수, 리턴타입등이 모두 같아야 함. 4. 동적 바인딩. 실행 시간에 오버라이딩된 메소드를 찾아서 호출함.
메소드 오버라이딩 (슈퍼 클래스 메소드 무시하기 ) 1) 슈퍼 클래스와 서브클래스의 메소드 사이에서 발생하는 것. 2) 슈퍼 클래스의 메소드를 동일한 이름으로 서브 클래스에서 재작성 하는것. |-> 즉 슈퍼클래스에서 선언된 메소드와 같은 이름, 같은 리턴 타입, 같은 매개 변수 리스트를 갖는 메소드를 서브 클래스에 만드는것. 3) 슈퍼 클래스의 메소드를 무시, 서브 클래스에서 오버라이딩된 메소드가 무조건 실행되도록 동적 바인딩이 된다. 4) 메소드 오버라이딩은 객체 지향적 프로그램에서는 꽃이라 할수있다. 재사용을 목적으로 상속받아 쓸때 슈퍼 클래스의 구현된 소스코드를 직접 수정하지 않고 오버라이딩을 통해 서브클래스에다가 내가 바꾸고 싶은대로 바꿔서 쓸수가 있기 때문에 * 메소드 오버라이딩 조건 -> 슈퍼..
상속 관계에 있는 서브 클래스와 슈퍼 클래스는 각자 생성자를 갖고 있는데 서브 클래스에서 인스턴스가 생성됬을시에 어떤 생성사들이 실행되는지 알아보는것 컴파일러는 서브 클래스의 생성자를 기준으로 슈퍼클래스의 적합한 생성자를 찾음 서브 클래스 슈퍼 클래스 1 기본생성자 --------> 기본생성자 2 기본생성자 --------> 매개변수를 가진 생성자 3 매개변수를 가진 생성자 -------> 기본생성자 4 매개변수를 가진 생성자 -------> 매개변수를 가진 생성자 !!! super()를 이용하면 명시적으로 슈퍼 클래스의 생성자를 호출할수가 있다. >>명시적으로 선택하지 않을시 컴파일러는 자동으로 기본생성자를 호출하기 때문
final키워드가 사용될수 있는 곳은 세군데이다. 1. final 클래스 -> final을 클래스 앞에 사용하면 다른 클래스에서 상속받을 수 없음을 말해주는 것이다. 2. final 메소드 -> final을 메소드 앞에 붙이면 이 메소드는 오버라이딩(재정의) 될수가 없다는 것이다. -> 즉, 오버라이딩 못하게 하고 무조건 상속 받아 사용하도록 하고자 할때 쓰인다. 3.final 필드, 상수 정의 -> 상수를 정의할때 사용하는 방법이다. -> 상수 필드는 선언시에 초깃값을 지정하여야 한다.(한번 정의되면 값을 변경할수 없다.) -> final 키워드는 static과 함께 사용하여 프로그램 전체로 공유하여 사용할 수 있는 상수를 만들수 있다.
>>>클래스의 접근 지정자 접근 지정자를 생략하면은 default 접근 지정자로 자동 선언 되는되, 이 경우는 같은 패키지 내에 있는 클래스들만 접근이 가능하다. >>>멤버 접근 지정자 비공개를 의미함. -> 같은 클래스 내부 멤버에 의해서만 접근이 가능. 어떤 다른 클래스에서도 접근할수 없다. -> 동인 패키지내의 다른 클래스더라도 접근이 불가능하다. 3. protected 멤버 -> 보호된 공개를 의미함. -> 같은 패키지 내의 모든 클래스에서 접근이 가능. -> 다른 패키지의 클래스더라도 이 클래스를 상속받은 자식일 경우는 접근이 가능. 4. default 멤버 -> 접근 지정자 선언이 생략될 경우, default로 선언되었다고 함 -> 동인한 패키지 내에 있는 모든 클래스에서 접근가능. ex) c..
public class Book { String title; String author; int ISBN; public Book(String title, String author, int ISBN) { this.title = title; this.author = author; this.ISBN = ISBN; System.out.println(title + author + ISBN); } public Book(String title, int ISBN) { this(title, "Anonymouse" , ISBN); } public Book(){ this(null, null, 0); System.out.println("생성자가 호출되었음;"); } public static void main(String [] ..