본문 바로가기
CNU/2023 CNU SW 아카데미

오전 수업(객체지향)

by 김뱅쓰 2023. 2. 16.

생성자

클래스를 객체화 할때, 객테의 상태를 초기화하는 메소드

- 모든 클래스는 반드시 1개이상의 생성자를 가짐

- 객체화시에 항상 호출

- 메소드 이름은 클래스와 동일하며 반환 자료형이 없는 특징

- 클래스에 생성자가 없을 시, 컴파일러가 기본 생성자를 만듦

 

생성자 여러개 만들기

메소드 오버로딩

- 메소드 호출시 사용되는 인자의 개수, 자료형에 따라 호출되는 대상 함수가 결정

 

뱐수의 초기화

모든 멤버 변수는 클래스의 생성자에서 초기화하는 것이 원칙

-스태틱 변수는 별도의 스태틱 블록을 사용하거나 면시적 초기화 수행

 

상속이란

기존의 클래스를 재사용하여 새오룬 클래스를 파생해 내는 것

 

 

클래스 사이의 관계 : has-a

포함( has-a) 관계란, 한 클래스의 멤버변수로 다른 클래스의 객체를 갖는 것

클래스를 조합하여 하나의 큰 클래스를 생성

 

상속(is-a)

 

is-a vs has-a

클래스사이 관계를 정의할 때 , 상속과 포함 사이의 고려가 필요

is-a와 has-a로 문장을 만들어 판단

 

접근 지정자( 접근 제어자)

객체 내부의 상태를 외부에서 훔쳐가거나 마음대로 변경하지 못하도록 보호

public, private

 

상속과 오버라이딩

오버아리딩은 부모 클래스의 메도르르 자식 클래스에거 재정의 하는 ㅓㄳ

- 메소드를 자식 클래스에 맞도록 덮어씀

 - 매소드 이름, 매개변수, 리턴타입이 반드시 같아야 함

 - 접근 지정자가 같거나 넓어져야 함

 

상속과 다형성

다형성이란 어떤 하나의 것이 여러 형태 또는 의미를 가질 수 잇는 것

상속을 통해 다형성을 지원

 

동적 디스패치

어떤 메소드를 부를지를 실행 시점에 결정하는 것 (반대어) 정적 디스패치 : 어떤 메소드를 부를지 컴파일 시점에 결정

함수를 호출할때 어떤 함수를 호출할지 정하는것

java는 수신자 객체에 기반한 동적 디스패치를 수행

- static, private 메소드 호출은 정적 디스패티로 처리