230109_Mon

2023. 1. 9.·강의정리들/[2023] FullStack
반응형
더보기

복습

  • 클래스 : 행동과 data 의 집합
    • 필드 > 지속적으로 사용할 경우
      • 데이터의 보호, 캡슐화 ... 허용되는 범위 내에서만 사용할 수 있는 권한 부여 = private 
        • 인스턴스 
          • 객체당 하나씩 생기는 공간 > 객체 생성 시 사용 가능 
        • static : 모든 객체가 공유
          • 스태틱은 생성자 불가
    • 생성자
      • 기본생성자 = 객체 등록
    • 메소드 > 내/외부를 연결시키는 목적

 

final : 마지막, 바꿀 수 없다.. => 상수화

  • field :
    • MAX : 상수 = 모든 글자를 대문자로 쓸 때 
    • final int MAX = 100;  ( 값 변경 불가이므로, 선언과 동시에 초기화 필수)
    • 상수는 언제나 같은 값, 바꾸는 값이므로 static 을 붙여준다. > final static 상수
  • class
    • final class ≠ is a 관계 (상속) 을 사용하지 않는다
    • has a 관계만 가능
  • method
    • 오버라이드 : (재정의)  를 할 수 없다
    •  

-- day04.Test.java / 싱글톤

더보기

디자인 패턴 하루에 두개씩 정리 + 예제 짜서 제출

... 스터디로 짜고 코딩은 각자 


클래스 관계

  • is - A 관계 ( 상속 )  : ~는 ~ 이다.
    • 하위-상위 클래스 (super class)
    • 상속 = 확장성 + 재사용성 극대화
    • is like a (관계) : ~는 ~와 같다. ≠
    • 명확성을 위해.. 자바는 객체 사이의 다중상속이 불가하다

  • has - A 관계 ( 포함 오브젝트 ) : ~는 ~ 를 가지고 있다.
    • data 클래스 : 독립된 클래스 // 필요하면 가져다 쓸 수 있는 
    • data 관리 클래스 : 여러개의 data 클래스를 가져다 쓰는 클래스
    •  
package day04;
class A { // data 클래스 : 항상 독립적으로 만들어라
public A() {
System.out.println("A");
}
public void dispA() {
System.out.println("Disp:A");
}
}
class B {
public B() {
System.out.println("B");
}
public void dispB() {
System.out.println("Disp:B");
}
}
public class IsA {
// 접근할 수 있도록 만든것. 객체 생성 x
A aa; //has a 관계
B bb;
public IsA() {
aa = new A();
bb = new B();
}
public void dispA() {
aa.dispA();
}
public static void main(String[] args) {
IsA isa = new IsA();
// isa.dispA(); > 바로 접근 불가, 중간 매개체 필요
isa.aa.dispA();
isa.dispA();
}
}

더보기

score //  name  // subject  // studentmany .

 

상속

  1. 자바는 100% 상속 구조로 되어 있다
  2. Object 클래스가 최상위 클래스
  3. 확장성 재사용성 => is a 관계
  4. 단일상속이 원칙 ( 복잡성 피하기 위해)
  5. 다중상속은 객체끼리는 허용 불가,. 인터페이스는 다중상속을 허용
  6. 상속해주는 클래스 : Super class, 부모 클래스
    1.  상속 받는 클래스 : Sub class , 자식 클래스 
  7. super 클래스는 항상 sub 클래스의 공통된 사항을 멤버로 제공한다.
  8. 상속을 받는다 = super 클래스의 모든 것을 내것처럼 사용할 수 있다. 
  9. super class 의 private 멤버는 sub 클래스에서 직접적으로 접근할 수 없다. // 상속받았어도 안됨

super() :

  • 생성자의 첫 라인에는 항상 super()호출이 존재함
  • 현재 객체가 상속받고 있는 생성자르 호출
  • 명시적으로 사용한다 = 상위클래스의 오버로딩된 생성자를 고른다.. pick

오버라이딩 Override = 다형성 .. 동적 바인딩

  • 부모의 메소드 재정의 @ 
  • 부모의 제공 기능을 가공 ( 추가 삭제 변경 )
  • 부모를 부르고 싶으면 => super 호출 이용 .

추상클래스 :  확장성

  • 구체화가 되지 않는 클래스
  • 객체를 생성할 수 없다.
  • 기본적으로 상속을 목적으로 사용
  • super class 로 사용
  • 추상 메소드를 하나 이상 가지고 있는 클래스
    • 추상 메소드란?
      • 바디가 없는 메소드 =>  이름만 가지고 있는 메소드
      • 추상 메소드는 오버라이딩 (강제성을 부여.. 내용(바디) 알아서 꼭 채워라?)
      • 추상클래스를 상속 받으면 그것도 추상클래스.. 
      • 추상 메소드를 오버라이딩 하면 객체를 만들 수 있다.?

 

동적 바인딩

 : 부모의 래퍼런스로 자식을 접근하는 방식

 > 다형성, 하나의 이름으로 여러 방식을 실행시킬 수 있다.

정적 바인딩

 : 내가 나를 접근하는 방식

 

반응형
저작자표시 (새창열림)

'강의정리들 > [2023] FullStack' 카테고리의 다른 글

230101_Wed_1  (0) 2023.01.11
230110_Tue  (0) 2023.01.10
230106_Fri  (0) 2023.01.06
230105_Thu  (0) 2023.01.05
230104_Wed  (0) 2023.01.04
'강의정리들/[2023] FullStack' 카테고리의 다른 글
  • 230101_Wed_1
  • 230110_Tue
  • 230106_Fri
  • 230105_Thu
keartt
keartt
shalpha_2@naver.com
주니어 탈출일기shalpha_2@naver.com
주니어 탈출일기 🐽
shalpha_2@naver.com
  • keartt
전체
오늘
어제
  • 전체보기
    • CS & 알고리즘
      • CS (컴과학)
      • 알고리즘
      • 백준
    • Spring
      • SpringBoot (JPA)
      • Spring (Legacy)
    • Server
      • Linux
      • Docker
    • Java
      • Design Pattern
    • PostgreSQL
    • GIS (공간정보)
    • 오류정리
    • Git
    • JavaScript
      • Node.js
      • React
    • Tool
      • IntelliJ
      • MacOS
      • VSCode
      • Eclipse
      • Other
    • 강의정리들
      • [2023] FullStack
      • [2022] Spring Boot
      • [2021] Spring Boot

인기 글

태그

구간합
코딩애플
브루트포스
이분탐색
반응형
hELLO· Designed By정상우.v4.6.1
keartt
230109_Mon

개인정보

kearttshalpha_2@naver.com계정관리

운영중인 블로그

주니어 탈출일기쓰기블로그 관리

이동링크목록

  • 티스토리 홈
  • 피드
  • 로그아웃
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.