개발/KH국비지원과정

[KH국비지원 웹개발자 과정] Day_8 키워드_캡슐화,상속,다형성 등

mabb 2022. 6. 23. 14:55
반응형

 안녕하세요. 삶의 질을 높이고자 노력하는 영차영차입니다.
드디어 국비지원 학원을 다니며 공부에 전념을 할 수 있게 되었습니다.
해당 포스팅은 강의 복기용으로 키워드를 기록하는 용도의 포스팅입니다.
--------------------------------------------------------------------------------------------------
-클래스의 등장배경
변수의 단점 : 하나의 변수만 다루니 불편- > 배열 사용
배열의 단점: 하나의 타입만 다루니 불편 -> 구조체 사용 (JAVA에는 없음)
구조체의 단점: 아무 메소드나 접근가능한 보안 문제

-> 변수는 private로 접근할 수 없도록 하고 변수와 메소드를 함께 묶어 클래스로 만듦. 변수를 처리하는 메소드는 공개하여 다른 클래스의 메소드에서 접근할 수 있도록 만듦. -> 캡슐화

-게터와 세터

-캡슐화의 원칙. private필드, public메소드, getter와 setter . 필드에 직접접근을 막는것.

-게터세터 명명규칙 getName, getNum 등..

- this.
|자기자신의 객체 주소를 가지고 있음.. 메소드나 생성자 내에서 매개변수가 우선 인식되기 때문에 this.필드로 구분해줌.


-다이어그램, 접근제한자 표기
- private
+public
~default
#protected

필드 = 속성, 메소드 = 기능

선언 위치에 따른 변수 구분, 클래스변수, 멤버변수(인스턴스변수), 지역변수

-변수별 소멸시기

-static

-final

-메소드 오버로딩 ( 다중 정의) 타개순(타입, 개수, 순서)

-생성자

-디폴트생성자

-생성자의 역할: 객체생성, 객체초기화.

-생성자 오버로딩

-this()

-객체 = 인스턴스

-클래스의 구조 // 헤더, 시그니처, 바디

-객체지향의 3대원칙 캡슐화, 상속, 다형성

-클래스 간 관계 Has a 포함관계, Is a 상속관계

-오버라이딩, 재정의 @Override

-정적바인딩, 동적 바인딩//  로버라이딩 -> 정적바인딩 -> 정적바인딩의 우선순위가 높음.

-super, 부모객체의 주소

-super() 부모객체의 생상저 호출 메소드. 후손생성자의 첫줄에는 부모객체의 생성자가 있어야함.(jvm이 디폴트)

-부모클래스의 생성자는 상속되지 않으나 자동으로 호출됨.

-부모의 private 는 상속은 되지만 직접 접근은 불가하다.

-모든 클래스의 어머니 Object

- extends Object가 숨어있다.

-상속의 특징
자바는 단일상속만 지원함. 단일상속이 다중상속보다 명확하고 신뢰성 있는 코드 작성이 가능하기 때문.
여러 클래스로부터 상속을 받는 다중상속은 불가 . c++에서는 가능 . 인터페이스는 다중구현이 가능함.

-바인딩 , 정적바인딩, 동적바인딩,

-다형성 Parent p = new Child();

-객체배열의 다형성, 매개변수의 다형성

-다형성을 이용하면 부모타입의 변수 하나로 여러종류의 자식객체들을 처리할 수 있기 때문에 편리하다.

-자식객체를 부모 타입으로 사용할 수 있는 것.

-구현객체를 인터페이스 타입으로 사용할 수 있는 것.

-up casting
:  부모타입의 변수에 자식객체를 대입하는 것. 부모타입이기 때문에 자식객체만의 멤버를 사용할 수 없다.
Parent p = new Child();  // Child에는 playGame() 메소드가 있음
p.playGame()  (X) 불가

-down casting
" 부모타입으로 up casting 된 자식 객체에 있는 멤버를 사용하려면 down casting 해주어야함. 변수의 형변환과 같다.
((Child)p).playGame() (O) 가능

반응형