수업노트 - 패키지, 상속, 오버라이드, 어노테이션, 다형성, 추상클래스

sanchez9·2023년 6월 28일
0

JAVA 수업노트

목록 보기
7/16
  • 패키지
    • 비슷한 기능의 클래스를 그룹화 시킨 디렉토리
    • 다른 패키지 클래스에 접근하기 위해서는 import를 사용해야 한다.
      • ex) import org.java.MemberDto; ← 클래스만 import
      • ex) import org.java.dto.*; ← org.java.dto 패키지에 있는 모든 클래스를 import
      • 이클립스는 자동으로 import를 해준다
    • 패키지를 생성하지 않을 시 (클래스는) default package에 자동으로 저장된다.
    • 갯수가 정해지지 않는 객체는 Collection을 이용해서 저장한다.
    • 자바의 기본 패키지(java.lang)는 import를 안해도 자동으로 인식한다.

  • 상속이란?

    • “부모(슈퍼)클래스의 멤버(필드, 매서드)를 자식(서브)클래스에 물려주는 것”
    • 클래스간의 단일 상속만 가능
    • 자식클래스의 멤버의 수는 반드시 부모클래스보다 크거나 같다
    • 자식클래스 extends 부모클래스의 형태로 선언
    • 모든 생성자를 상속하지는 않는다
    • 상속시 기본생성자는 자식생성자 첫번째 줄에 자동으로 생성해준다
    • 상속시 부모클래스의 생성자는 자식클래스의 첫번째 줄에
      • 자식클래스가 부모의 생성자를 선택 할 수 있다.
        • 자식생성자의 첫번째 줄에서 super(), super(a)…
    • 부모클래스 = 슈퍼클래스, 자식클래스 = 서브클래스
    • final 클래스는 상속할 수 없다 ← 추가하기.
    • Object클래스는 자바의 모든 클래스의 슈퍼클래스다.
  • 자바 상속의 특징

    • 자바클래스 다중상속 허용하지 않는다
      • C++은 다중 상속 가능
    • 자바 인터페이스(interface)의 다중 상속 허용
      • 모든 자바 클래스는 묵시적으로 object클래스 상속받음
      • java.lang.Object

  • 오버라이드(or 오버라이딩, Override)
    • 상속관계에서 부모의 매서드를 자식객체에서 재정의 사용 → 다양성 → 재사용
      • 매서드 선언부가 똑같다
      • 매서드 구현부를 재정의하는 방식
      • @override 어노테이션 이용해서 오버라이드 되었음을 알려준다
        • 어노테이션
          @Override
          매서드(){    //부모로부터 상속 받은 매서드(구현부가 같은 매서드)
          {
          • @
          • 주석
          • 자바에서는 어떤 특정 기능을 수행되도록 미리 정의하고 해당 코드 바로 위에 작성하면, 특정 기능이 수행된다.
      • 오버라이드 된 매서드는 자식매서드가 구현
      • 단, super 키워드를 사용하면 부모매서드도 구현 가능
      • 자식 클래스에서 오버라이드 매서드를 구현할 때, 자동 설정 가능.

  • 다형성(Polymorphism)

    • 하나의 역할이 여러가지 기능을 수행하는 방식
      • 오버로딩 → 같은 이름의 매서드
      • 오버라이딩 → 부모의 매서드를 상속 받아서 구현
      • 부모 타입의 객체 참조 변수로 자식 객체를 참조 할 수 있다. (상속관계)
  • 어노테이션

임플리멘트(implement)

Object 클래스 ← 모든 클래스의 부모 클래스.

CRUD = Create, Read, Update, Delete


Dto → DB에 연관된

Dao → DB에 접근해서 DB관련 CRUD 처리

Controller → 일을 시키는

Service → 시킨 일을 하는. 기본이 CRUD → Dao에 시킨다

  • MVC→Model View Controller

    • 대표적인 프로그래밍 방식
    • Client → 요청 → Server (Controller ↔ Model ↔ DB)
      ↘view
  • MVC → Model1, Model2

  • MVC Model2

  • Framework → Spring → Spring Framework, Spring Boot, Spring Security

  • 다형성(Polymorphism)

    • 부모 타입의 객체참조 변수로 여러 자식객체(인스턴스)를 참조 할 수 있다.
    • 하나의 매서드나 객체가 다양한 기능을 구현 할 수 있는 것 → 오버라이딩
    • 장점 : 유지보수가 쉽다. 재사용
  • 추상클래스(abstract)

    class A{
            abstract public void m1();    // 추상매서드 (abstract)
    }
    • 추상매서드가 있는 클래스 → 추상매서드는 반드시(강제) 구현
    • 추상매서드는 미완성 매서드(선언부만 있고 구현부가 없다
    • 반드시 상속을 통해서 추상매서드를 구현한다.
    • 객체를 생성하지 못한다.
      • new x
      • 익명(anonymous)클래스를 통해서 오버라이딩 할 수 있다.
    • 추상클래스 상속을 통해서 구현객체에 적용하는 방법
      • 상속을 통해서 구현객체를 만들고, 추상매서드를 구현 → implement(오버라이딩)
      • 상속을 통해서 구현객체를 만들고, 새로운 추상클래스로 만든다. → unimplement, 다시 추상클래스만듬
    • 클래스이다. → 일반 필드나, 일반 매서드를 멤버로 구성할 수 있다.
    • 다른 클래스에 도움이 되기 위한 클래스
  • 추상클래스 (재차 설명, 다른 노트에서 발췌)

    • 추상매서드가 있는 클래스(미완성, 공통, abstract)

    • 객체를 생성하지 못한다(new) → 구현 클래스가 필요

    • 멤버(일반클래스 멤버+추상매서드)

    • 다른 클래스에게 도움을 주기 위한 클래스(강제성)

    • 상속을 통해서 반드시 추상매서드를 오버라이드해서 구현한다 → implement

    • 구현 객체를 통해서 구현한다

    • 추상클래스 상속시(클래스의 유형을 선택)***

      • 추상클래스로 설정(다시 추상클래스화)
      • 일반클래스에서 추상매서드를 오버라이드 설정
    • 단일 상속만 허용

      실제 프로젝트에서는 추상매서드를 이용해서 강제성→상속을 통해서 매서드를 오버라이딩


profile
자바를 배우고 있어요

0개의 댓글