22.11.07.Mon - 익숙해져야한다.

Doil·2022년 11월 7일

Study

목록 보기
36/38

오늘의 요약 = 익숙해져야한다.

오전 :

INDEX

  • 객체지향의 특징
  • 오버 로딩,라이딩

객체지향 특징

  • 캡슐화 : **
    • 관련성있는 자료와 동작을 묶어줌
  • 상속
  • 추상화
  • 다형성

캡슐화

클래스의 정의.
효과 : 은닉.

상속

기능의 확장이다.

상속을 했는데, 복사가된다고?

상속은 물려받는 대상자가 정한다.

 class B extends A
  • 인터페이스
  • 클래스
  • Enum

같은 종류 끼리의 상속.

상위타입으로 변수를 설정.

장점

상속 설정을 잘해놓으면, Super만 필요한 기능 추가해도 상속된 Sub에 동일하기 사용할 수 있다.

단일 상속.

클래스간의 상속은 오직 단일 상속만 된다.

단 인터페이스끼리, C++ 은 다중 상속이 가능하다. (가능은 하지만, 실제로는 단일을 사용하는 것이 좋다.)

자식인 SubType 보다 부모인 SuperType으로 호출하는 것이 좋다.

서브타입에 추가된 멤버들을 사용하고자 한다면 서브타입으로 형 변환을 한다음 사용한다.

 ((SubExam01).obj). method2();

final

상속을 금지하는 지역변수.


추상화

메서드 구체적이지 않다.

내용이 없는 추상 메서드.
다양한 형태로 사용될 수 있도록

다형성

큰 타입의 자료에 작은타입을 넣을 수 있다.
단 참조 자료 일때.

객체

큰그릇으로 변수를 선언한다.
큰 Type.

 list 변수명 = new Arraylist

OverLoding,OverRiding

오버로딩

오버로딩 : 같은 클래스 안에 다른 동일 이름의 메서드를 작성하는 것,
타입이 다르거나, 매개변수가 다른 것을.

오버로딩은 최소화해주는 것이 좋다.

오버라이딩

상속관계에서 부모 클래스의 메서드를 재정의하는것.

부모에게 받은 메서드의 매개변수를 재정의 하는 것.
형식이 똑같아야 오버라이딩 할 수 있다.

생성자

클래스 이름과 똑같은 메서드 이며, 반환되는 값이 없다.

기본 생성자.

필요 없는 경우(Scanner)도 있지만, 가능하면 기본 생성자를 만들어라.


점심 : 야무지게 먹어야징

오후 :

INDEX

  • 추상
  • Enum

abstract(추상)

Define Spec , 스펙만 정의해주는 것이다.
충전기 설명.

개요

  • 메서드 안의 내용물이 없는것.
  • abstract. 클래스 설계적 측면이 강하다.
  • 이텔리체로 표시된다.
  • 반드시 상속을 받아라, 반드시 오버라이딩을 강제한다.
  • 객체를 생성할 수 없다.
  • 추상클래스는 데이터의 타입으로 사용될 수 있다.
  • 메서드의 본체인 중괄호{}가 없어야한다.
  • 추상메서드를 하나라도 멤버로 가지고 있다면 반드시 클래스는 추상클래스여야 한다.
  • 하위 클래스에서 반드시 구체적인 내용을 재정의 해라.(강제성을 띈다.)
    • 오버라이딩을 강제한다.

왜 추상메서드를 사용할까?

역할

  • 형식만 통일시켜 정의한다.
  • 통일성,병렬개발
  • 순서대로 개발이 아닌 차등을 둬서 개발, 누가 잘못했는지 명확하게 확인 가능하다는 장점.
  • 업무 명확.\

왜 사용하는지 알자.



인터페이스

추상 메서드들로만 이루어져있다.

  • 모든(?) 메서드가 추상메서드로만 이루어진 특별한 형태의 클래스
    • 구현체 클래스에 동작을 만든다.
  • 인터페이스 안에 모든 필드는 정적이며 final이다.
  • 필드(변수)명의 첫글자는 대문자로 한다. (관례)
    • static final
  • 모든 필드는 상수이다.
    • static final
  • 모든 메서드는 추상 메서드이다.(기본)
  • 자바 1.8 버전부터 default 메서드와 static 메서드를 지원한다. (무시해도된다.)
  • 레이어가 다를 때 반드시 인터페이스를 통해서 접근을 한다. (oop의 꽃).

O.O.P(객체 지향 프로그래밍)의 꽃-인터페이스 중심의 개발

유지보수를 최소화 한다.

SOLID

인터페이스를 기반으로 한다.

의미론적

멤버가 존재하지 않는 인터페이스

functional

추상 메서드가 하나만 존재하는 것.
람다 표현식으로 객체를 생성하는 경우가 대부분이다.

개발팁

인터페이스에 반드시 메서드를 정의 해야만 하는 것은 아니다.
프로젝트에서 사용되는 모든 상수는 인터페이스 하나에 정의 해 두는 것도 좋은 방법이 될 수 있다.

팩토리

  • 인터페이스 타입으로 변수를 정의하고 객체 생성은 독립적인 객체 생성 클래스.
    (객체만 만들 목적으로 만들어진 클래스)에서 객체를 반환받는 방식으로 개발한다.

C 언어의 벽

통곡의 벽.

  • Pointer.
  • Memory관리.

profile
justdoil

0개의 댓글