01-22 학습!! 😎
OOP is APIE
상속 = 확장! extends
UML 에서는 삼각형화살표
Object 클래스!
is a 관계! SpiderMan is a Person
java의 상속은 Single Inheritance 단일상속!
interface와 has a 관계로 단점 극복
상속 이외에 클래스를 재활용 하는 방법
하나는 상속 나머지는 멤버 변수
UML : 실선 화살표
개발 관점으로 포함관계를 쓸지 상속관계로 쓸지 선택해야 함
상속은 한번밖에 못함 신중한 선택!
메서드 오버라이딩 -> 덮어쓰기 밖에서 봤을 땐 하나!
메서드 이름 같게, 매개 변수의 갯수, 타입, 순서가 같아야 함, 리턴 타입이 같아야 함
super를 통해 조상 클래스 멤버 접근
호출한 method 위치부터 찾음
없으면 this도 찾고 , super도 다 찾아서 표출!
🚨 중요!! super 생성자 없을 시 super 생성자 자동 생성
🚨 중요!! default 생성자!! 초기화안해도 가능했던 이유? 정확히 알기 자식에서도 super(); 가 생략되어있기 때문에 조상 생성자가 생성되면 맞추어서 바궈줘야 함
annotation
@Override 오버라이드 메서드인 줄 알려줌 - 고마운 기능
Package
회사identity.projectname.~~
import
static import
접근 제한자 public, protected, default=package, private
static 클래스 레벨의 요소 설정
final 요소를 더 이상 수정할 수 없게 함
abstract 추상 메서드 및 추상 클래스 작성
synchronized 멀티스레드에서의 동기화 처리
하나의 대상에 여러 제한자를 조합 가능하나 접근 제한자는 하나만 사용 가능
final
마지막, 더 이상 바뀔 수 없음
final class - 더이상 확장 할 수 없음 : 상속 금지 -> 오버라이드 방지
ex) String, Math ~~
final method - 오버라이딩 방지!
final variabel - 값 변경 불가능
Blank final - 값이 할당되지 않은 멤버 변수 🔔스프링에서 엄청 쓸 예정 - 주소를 못바꿈!
ex) 혈액형 - 사람들이 혈액형이 다 다른데 변하는 경우는 없음! 최초 초기화 용도
static final - 파이
접근제한자
private면 상속이 아에 불가한데
부모가 default 면 자식 default protected public 이렇게 높은 학벌 가져야 함 👌
public 상속하면 무조건 public
예외처리는 부모의 커버 범위 안에서만 - 부모의 예외처리가 더 커야 함
🔔 String은 Concate 하고 emurable 하다
🔔 String은 내용이 같으면 hashcode도 같게 준다
🔔 String은 == 말고 equals로 해라
🔔 new 하면 heap에 올라감 null이 되어도 바로 사라지지는 않음
🔔 우리는 메모리 관리 불가 그래서 Object가 항상 상속되어있음
🔔 getClass, toString, equals, hashCode
🔔 copy by value vs copy by reference
🔔 static은 오버 로딩만 있다.
🔔 설계로를 보이게 하는게 promotion
🔔 Arrays.toString 1차원 배열 찍을 때 씀
🔔 빵집 백준 정통 dfs 이 문제 풀어보고 연구!
🔔 순열, 조합, 중복 순열, 중복 조합 하는 법 배움!
빵집 하나 풀면서 dfs 풀어보기
자바의 정석 한번 읽어보기 (심심하면)
정처기 실기 정리 언제 할지 고민하기