[자바의정석]Java - 객체지향(3) #005

박정현·2022년 1월 8일
0

Java

목록 보기
5/16
post-thumbnail

캡슐화

접근제어자를 사용하는 이유

  • 외부로부터 데이터를 보호하기 위해서
  • 외부에는 불필요한, 내부적으로만 사용되는 부분을 감추기 위해서
  • 그래서 값을 바꿔주는 메소드를 통하게 한다
  • getter,setter

다형성

다형성

  • 조상 타입 참조 변수로 자손 타입 객체를 다루는 것!
  • 여러 가지 형태를 가질 수 있는 능력
  • 상속 관계일때 타입이 불일치해도 사용가능 하게 해준다
  • 타입이 조상 타입이면 자손 객체여도 조상의 멤버만 사용이가능하다
  • ex) 1번. SmartTv s = new SmartTv , 이거면 모든 기능 사용가능 tv+smartv
    2번. Tv t = new SmartTv , 이거면 SmartTv의 기능만 사용가능

참조변수의 형변환

참조변수의 형변환(

참조변수 형변환 하는 이유

  • 참조변수를 변경함으로써 사용할 수 있는 멤버의 갯수를 조절하기 위해서
  • 타입을 같게 해줄려고

instanceof 연산자

  • 형변환 가능 여부 체크

  • 형변환을 하기전에 instanceof 연산자로 확인하고 형변환 해야된다

  • 참조변수의 형변환 가능여부 확인에 사용 가능하면 true를 반환한다

매개변수의 다형성-다형성 장점1

매개변수의 다형성

  • 참조형 매개변수는 메소드 호출시 , 자신과 같은 타입 또는 자손타입의 인스턴스를 넘겨줄 수 있다

하나의 배열에 여러종류 객체 저장-다형성 장점2

여러 종류의 객체를 배열로 다루기

  • 배열 하나에 여러 객체들을 담을 수 있다

  • 조상타입의 배열에 자손들의 객체를 담을 수 있다

  • Vector 클래스를 이용하면 Object 객체의 밑에 포함되기때문에 모든 배열을 저장 가능

  • 장점1의 실습을 이용해서 장바구니 추가 실습

추상 클래스(abstract class)

추상 클래스

  • 내가 이해한 추상클래스 : 추상 클래스는 자기소개서 양식 . 각자 원하는 자기소개로 편하게 양식에 맞추어 채울수있다

  • 미완성 설계도. 미완성 메서드를 갖고 있는 클래스

  • 메서드는 구현부가,{}이 없음

abstract class Player{
	abstract void play(int pos);
    abstract void stop();
}
  • 다른 클래스 작성에 도움을 주기 위해서, 인스턴스 생성 불가(미완성 설계도는 제품 생산 불가)
  • 상속을 통해 추상 메서드를 완성해야 인스턴스 생성가능

추상 메서드

  • 미완성 메서드, 구현부가 없는 메서드이다
  • 꼭 필요하지만 자손마다 다르게 구현될 것으로 예상되는 경우

추상클래스의 작성(1)

  • 여러 클래스에 공통적으로 사용될 수 있는 추상클래스를 바로 작성하거나
    기족 클래스의 공통 부분을 뽑아서 추상클래스를 만든다.

추상클래스의 작성(2)

  • 추상화된 코드는 구체화된 코드보다 유현하다 <- 변경에 유리하다.
  • 추상클래스를 단계별로 기능을 추가 변경하여 작성하면 중간단계를 사용해서 수정하면
profile
빠샤

0개의 댓글

관련 채용 정보