8일차 - Java강의(객체지향 ☆)

2024. 7. 24. 21:31·Java & Spring/Java
목차
  1. ◇ 클래스

◇ 클래스

- 객체란?

  • 객체는 세상에 존재하는 물체를 뜻하며 식별이 가능한 것을 의미
  • 객체는 속성과 행위로 구성
  • Java에서는 이러한 속성과 행위를 필드와 메서드로 정의하여 구현
    ※ 이처럼 현실 세계에 있는 객체를 소프트웨어의 객체로 설계하는 것을 ‘객체 모델링’이라함

- 객체 간의 관계

  1. 사용관계 : '사람 객체'가 '자동차 객체' 를 사용
  2. 포함관계 : '엔진 객체', '타이어 객체', '핸들 객체'는 '자동차 객체'에 포함
  3. 상속관계 : '자동차 객체'는 '기계 객체'를 상속받음

- 객체지향 프로그래밍의 특징

  1. 캡슐화
    • 필드와 메서드를 하나로 묶어 객체로 만든 후 실제 내부 구현 내용은 외부에서 알 수 없게 감추는 것
    • 외부 객체에서는 캡슐화 된 객체의 내부 구조를 알 수 없기 때문에 노출시켜준 필드 혹은 메서드를 통해
      접근할 수 있다.
    • 필드와 메서드를 캡슐화하여 숨기는 이뉴는 외부 객체에서 해당 필드와 메서드를 잘못 사용하여 객체가
      변화하지 않게 하기 위해서다.
    • Java에서는 캡슐화된 객체의 필드와 메서드를 노출시킬지 감출 지 결장하기 위해 접근 제어자를 사용한다.
  2. 상속
    • 객체지향 프로그래밍에는 '부모 객체'와 '자식 객체'가 존재한다.
    • '부모 객체' 는 가지고 있는 필드와 메서드를 자식 객체에 상속해 '자식 객체'가 사용 할 수 있도록 만들 수 있다.
    • 상속이 필요한 이유는 객체 간의 구조 파악, 일관성 유지, 코드 중복 감소, 코드 재사용성 증가가 있다.
  3. 다형성
    • 객체가 연산을 수행 할 때 하나의 행위에 대해 각 객체가 가지고 있는
      고유한 특성에 따라 여러 가지 형태로 재구성되는 것을 의미
  4. 추상화
    • 객체에서 공통된 부분으로 모아 상위 개념으로 새롭게 선언하는 것
    • 공통적이고 중요한 것들을 모아 객체를 모델링
    • ex) 모든 자동차마다 가지고있는 엔진, 타이어, 핸들등의 객체를 모아 자동차 객체를 모델링

'Java & Spring > Java' 카테고리의 다른 글

10일차 - Java강의(제어자, package, import, 상속, this, super)  (0) 2024.07.26
9일차 - Java강의(클래스, 필드, 생성자, 멤버, this)  (0) 2024.07.25
enhanced switch()문  (0) 2024.07.24
7일차 - Java강의(연산자, 조건문, 반복문, 배열, 컬렉션)  (0) 2024.07.23
String, StringBuffer, StringBuilder의 차이점  (0) 2024.07.23
  1. ◇ 클래스
'Java & Spring/Java' 카테고리의 다른 글
  • 10일차 - Java강의(제어자, package, import, 상속, this, super)
  • 9일차 - Java강의(클래스, 필드, 생성자, 멤버, this)
  • enhanced switch()문
  • 7일차 - Java강의(연산자, 조건문, 반복문, 배열, 컬렉션)
DJ.Kang
DJ.Kang
백엔드 개발 기록 블로그
  • DJ.Kang
    DJ Hello World
    DJ.Kang
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 이론공부
      • 시스템설계
      • Java & Spring
        • TIL
        • 트러블슈팅
        • 고도화
        • 알고리즘
        • 코딩테스트
        • Java
        • Spring
        • Thymeleaf
      • 프로젝트
        • coin-trading
        • 트러블슈팅
      • Docker
      • DB
      • AWS
      • CI-CD
      • 웹
      • git & github
      • 구인공고분석
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    프로그래머스 java 기초 트레이닝
    Java 생성자
    java enhance switch
    java arrays.copyofrnage()
    java two-pointer
    java 제어자
    프로그래머스 java 기초트레이닝
    java super
    java 유클리드 호제법
    데이터 타입
    자료구조
    개발로드맵
    java 에라토스테네스의 체
    데이터 크기
    java 세수의합
    java기초
    Java this
    java 메서드
    java
    java 멤버
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
DJ.Kang
8일차 - Java강의(객체지향 ☆)
상단으로

티스토리툴바

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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