Search

객체지향 프로그래밍(2)

태그
캡슐화
상속
다형성
생성자
자바
멀티캠퍼스
파일
JVM.pdf
캡슐화
클래스 내부의 필드변수에 클래스 외부에서 직접적으로 접근하는 것을 막는것,
클래스에서 숨길 것과 드러낼 것을 결정하여 추상성을 확보하는 과정이다.
필드변수 관련 페이지 객체지향 프로그래밍(1)
외부에서 메세지를 전달 받는 용도의 public 메서드와 세부적인 기능을 구현하는
private 메서드를 분리하여 클래스간 결합도를 낮춘다. → 유연한 설계 가능
클래스의 구체적인 기능을 감추는 추상화를 통해 유연성을 확보한다.
필드변수의 접근 제한자를 private 으로 지정해 외부에서 필드변수에
직접 접근 하는 것을 막는 대신 getter / setter 를 이용해 접근권한을 관리한다.
→ 멤버 변수에 대한 접근권한을 관리할 수 있다.
getter / setter 메서드
getter :필드 변수의 값을 읽을 때 사용한다. get[필드변수명]()
setter : 필드 변수의 값을 넣거나 수정할 때 사용한다. set[필드변수명]()
getter 만 만들면 ? : 읽기만 가능하다.
getter / setter 를 만들면 ? : 읽기 / 쓰기 모두 가능
안만들면 ? 모두 불가능
상속
자바에서 상속은 단일 상속만 가능하며 클래스의 부모 클래스는 하나만 존재한다.
super() : 부모 클래스의 생성자이다. 반드시 생성자의 가장 위에 위치한다.
super : 부모 클래스의 주소를 저장하고 있는 레퍼런스이다.
다형성
객체를 여러 타입으로 다루는 것이다.
상속을 통해서 부모클래스의 메서드, 속성, 타입을 물려받는다.
강제형변환과 명시적 형변환
Upcasting : 자식타입에는 자식 타입이 상속받은 선조타입에 대한 정보가 있기 때문에 선조타입으로 형변환 할때는 자동으로 형변환 된다.
Downcasting : 선조타입은 자신을 상속받고 있는 클래스가 무엇인지에 대한 정보가 없기 때문에 선조타입을 후손 타입으로 형변환 할 때는 명시적 형변환을 수행해야 한다.
생성자
클래스를 인스턴스화 할 때 호출하는 메서드
클래스 이름과 같은 이름을 가진 메서드이다.
기본생성자(매개변수가 없는 생성자)는 명시적으로 작성하지 않아도,
JVM 이 기본생성자를 자동으로 만들어준다.
종류
this : 생성된 인스턴스의 주소를 저장하는 특수한 레퍼런스
super : 부모 인스턴스의 주소를 저장하는 특수한 레퍼런스
this(args) : 자기 자신의 생성자를 호출
super(args) : 부모클래스의 생성자를 호출
생성자 내에서 부모 클래스의 생성자를 호출하는 코드를 작성하지 않을 경우 super() 코드(부모 클래스의 기본생성자)를 JVM 이 자동으로 생성한다.
만약 부모 클래스에 기본생성자가 없고, 매개변수가 있는 생성자만 존재한다면 반드시 부모 클래스의 생성자를 호출하는 코드를 작성해야 한다.