01-23 학습!!😎😎
정보를 보호하기 위한 대책!
❕ private
❕ 공개되는 메서드를 통한 접근 통로 마련 setter/getter
Singleton 디자인 패턴
객체의 생성을 제한해야 한다면?
수정 가능한 멤버 변수가 없고 기능만 있음 -> stateless 한 객체!
방법🔔
생성자의 접근 제한자를 private
내부에서는 직접 객체 생성
외부에서 private member에 접근 가능한 getter 생성 (setter는 필요X)
객체 없이 외부에서 접근할 수 있도록 getter와 변수에 static 추가
🚨static non static 문제 (뭔소린지 모르겠음)
🚨 부타자생 부모의 타입으로 자식을 생성
🚨 부타자참 부모의 타입으로 자식을 참조
🚨 부메자호 부모의 메서드로 자식을 호출할 수 있게 함 (override)
🔔 상속 관계에 있을 때 조상 클래스의 타입으로 자식 클래스 객체를 레퍼런스 할 수 있다.
다형성의 활용 - 🫢다른 타입의 객체를 다루는 배열
Object의 배열은 어떤 타입의 객체라도 다 저장할 수 있음
🚨 기본형은 (int,long) 은 Object를 상속받지 않았잖아!
Wrapper 로 감싸서 저장 가능! Integer, Long
Object [] objs = new Object[4];
objs[0] = new SpiderMan("a", false);
objs[1] = objs; // !!!
objs[2] = 1; // autoboxing!!
println이 어떤 클래스 (타입) 이든 출력할 수 있네?😲
어떻게 하는 거지?
println이 Object로 모든 타입을 받아서 toString으로 출력!
다형성과 참조형 객체의 형 변환
Person person = bew SpiderMan();
냉정하게 Person 타입이기 때문에 person은 거미줄을 쏘지 못함
묵시적 캐스팅, 명시적 캐스팅
형 변환 할때는 반드시 instanceof를 활용하여 돌다리 두들겨 보고 건너자! 👍
오버라이딩을 하고 캐스팅이 발생되면 자식의 오버라이딩의 메소드 호출 발생!
정적 바인딩
컴파일 단계에서 참조 변수의 타입에 따라 연결이 달라짐
상속 관계에서 객체의 멤버 변수(static/instance)가 중복될 때 또는 static method
동적 바인딩 😎
다형성을 이용해서 메서드 호출이 발생할 때 runtime에 메모리의 실제 객체의 타입으로 결정
상속 관계에서 객체의 instance method가 재정의 되었을 때 마지막에 재정의 된 자식 클래스의 메서드가 호출됨
toString 메서드를 Object에서 오버라이딩 해서 동적 바인딩!!
참조 변수의 레벨에 따른 객체의 멤버 연결
toString
equals
==으로 비교! 주소값 비교!
🚨 Integer 배열에서 비교할 때 == 하면 주소값 비교 equals 하면 값 비교
hashCode
🔔 15. abstract -
🔔 응집력 강하게 = 필요 없는 것들을 쳐낸다
🔔 결합도 약하게 = 내가 변할 때 다른 것들이 변하면 안됨
🔔 API -> JDK
🔔 20. 다형성 다양한 형태로 변할 수 있는 능력
🔔 자식의 종류에 따라 메소드가 맞춰짐 => 부메자호!!
🔔 21. abstraction
🔔 22. generic 없으면 다 Object로 바뀜
🔔 상속은 is a, has a extends 는 하나!
🔔 자식 타입으로 생성하면 자식 설계도 우선
🔔 부모 이름으로 자식을 생성하면 부모 것만 됨 but
🔔 static은 오버라이딩 없다 오버로딩은 있다. 멤버는 둘다 없음
🔔 static은 설계도다! 설계도에서 instance는 못 부름 그래서 instance 부르고 싶으면 객체 생성해서 불러야 함
🔔 24. Encapsulation 데이터 보호 private 하고 getter 만 만들어줌
🔔 1단계 private 2단계 default 3단계 interface 쓸 수만 있고 수정은 불가!
🚨 참조타입 (배열) 은 선언 했을 때 []는 메모리에 올라간 게 아님!!! () 객체가 생성이 되어야 메모리에 올라감!!!
🔔 부초자초 부모 초기화 먼저!
🔔 Arrays 특) 메소드 없어서 메소드를 묶어서 올려놓으면 좋을 거 같은디? static 도배 Arrays
🔔 27. Arrays fill 1차원 초기화 sort 부르면 compare to 오는 데
🔔 진짜 book 만 뽑아내? get magazine
🔔 정말 heap에 있어??? 물어보는게 instance of
🔔 instance of로 물어볼때 자식하고 부모 있으면 자식 타입으로 너 magazine이냐? 하면 book이면 False가 뜬다
🚨 instance of 메모리 그려보기 시험에 나온다!!
졸업예정증명서 보내기
자바 총정리 2차 올리기
시간 남으면 과제 git 하기