상세 컨텐츠

본문 제목

생활코딩 java 160강 (103강~120강. 객체지향 (3))

정보 리뷰/생활코딩 Java

by NayC 2021. 4. 12. 06:18

본문

728x90

93~102강
ㅡ 클래스패쓰, 패키지, UI 점프


15번째줄을 'A를 사용한다'라고 읽으시니 이미지가 확 그려짐

z는 A에서만 사용
고객은 x를 통해서! z를 사용

고객은 굳이 sum이 어떻게 만들어지는지 신경쓰지 않는것.

예전에 private가 없었을때는 cl.left해서 값을 지정해줄 수도 있었는데, 이렇기때문에ㅋㅋㅋ private를 해주는것! 누가 임의로 값을 수정하는걸 막기 위해.

인스턴스,
상속

인스턴스는 public만
상속은 public, protected

앞에 아무것도 안쓰여있으면 default

//

b까지 override해서 상속해줘야! 에러가 안남
즉 부모에서 abstract한 부분은 다 상속시켜줘야!한다는점.

(그리고 부모는 자기가 가진 메소드 중에 한 개라도 abstract가 있으면 abstract가 됨)

abstract는 자식한테 구현하라고 넘기는거지 (()그냥 이렇게만 끝남) 스스로 구현 로직을 가질 수 없다!
ㅡ abstract class는 구현 가질 수 있지만

8번째줄
ㅡ 앞에 아무것도 없으면 default (클래스 접근제어자)
같은 패기지 안에서 사용 가능

//
인터페이스

계산기 로직 개발하는 개발자
그 이후 계산기 로직 이용해서 다른데 쓰일곳 만드는 개발자가 있다고 할 때, 둘이 같이 일하기 위해서(계산기 로직 만들어질때까지 기다리는 시간 줄이기 위해) dummy(가짜)를 만든다고 가정.
ㅡ 그래서 상수값도 그냥 막 집어넣고.

근데 개발자들이 추후 맞춰보니 다르게 쓰여진게 발견되면...완전 잘못 일한 것. (위의 예는 간단한거지만 실제로는 코드량도 훨씬 많고 복잡해서 다시 일해야할정도)

이런 사태를 방지하기위해 나온게 인터페이스!
일종의 약속! 명세서!
이대로해야 컴파일이 됨. 자바 내부에서 실수없이 일처리하도록 도와주는것.
ㅡ 인자는 3개야!
ㅡ sum, avg있고 반환되게 하자!

개발자들이 각각! 인터페이스를 implements하고 일을시작하면 저대로 하지 않으면 컴파일되지 않아서 약속한대로 일할 수 있게된다.

그리고 추후 서로 다 개발하면 dummy만 빼면 합체~!


//

어떤 인스턴스가 class A 행세를 한다는 것은
ㅡ class A에 정의된 메소드들만 실행할 수 있다는 것
ㅡ class B에서 추가적으로 정의한 메소드는 (여기서 y) 실행할 수 없는 것

그런데 하위 클래스에서 상위 클래스를 오버라이드한게 있을 경우
ㅡ 오버라이드한 메소드가 우선순위를 가짐



하나의 데이터 타입으로 :)
run을 불러올 수 있게되었다>_< 가 요지!

 




728x90
반응형

관련글 더보기