생활코딩 - Java(객체지향프로그래밍)

2024. 3. 25. 23:37·Java & Spring/Java

■ 객체지향

□ 문법

객체지향을 편하게 할 수 있도록 언어가 제공하는 기능을 익히는 것이다.

이러한 기능들은 if, for문처럼 문법적인 구성을 가지고 있다.

이 문법을 이해하고, 숙지해야 객체를 만들 수 있다.

객체를 만드는 법에 대한 학습이라고 할 수 있다.

 

□ 설계

좋은 객체를 만드는 법이다.

이것을 다른 말로는 설계를 잘하는 법이라고 할 수 있다.

좋은 설계는 현실을 잘 반영해야 한다. 현실은 복잡하다. 하지만 그 복잡함 전체가 필요한 것은 아니다.

 

□ 부품화

프로그래밍은 정신적인 활동이다.

정신적인 것은 실체가 없고, 무한하고, 유연하다.

정신의 이러한 특성은 때로 오해나 모순 같은 문제점을 유발한다.

소프트웨어도 이러한 문제점을 그대로 상속받는다.

이러한 문제점을 극복하기 위한 노력 중의 하나가 부품화라고 할 수 있다.

객체지향과 부품화를 동일시 할 수는 없지만

부품화라고 하는 소프트웨어의 큰 흐름은 객체지향이 만들어지는데 지대한 공헌을 했다고 할 수 있다.

이것의 핵심은 연관된 메소드와 그 메소드가 사용하는 변수들을 분류하고 그룹핑하는 것이다.

 

□ 은닉화, 캡슐화

그런데 부품화라고 하는 목표는 단순히 동일한 기능을 하는 메소드와 변수를 그룹핑한다고 달성되는 것은 아니다.

제대로된 부품이라면 그것이 어떻게 만들어졌는지 모르는 사람도 그 부품을 사용하는 방법만 알면 쓸 수 있어야 한다.

이를테면 모니터가 어떻게 동작하는지 몰라도 컴퓨터와 모니터를 연결하는 방법만 알면 화면을 표시 할 수 있는 것과 같은 이치다.

즉 내부의 동작 방법을 단단한 케이스 안으로 숨기고 사용자에게는 그 부품의 사용방법만을 노출하고 있는 것이다.

이러한 컨셉을 정보의 은닉화(Information Hiding), 또는 캡슐화(Encapsulation)라고 부른다.

자연스럽게 사용자에게는 그 부품을 사용하는 방법이 중요한 것이 된다.  

 

□ 인터페이스

잘 만들어진 부품이라면 부품과 부품을 서로 교환 할 수 있어야 한다.

인터페이스란 이질적인 것들이 결합하는 것을 막아주는 역할도 하는 것이다.

즉 인터페이스는 부품들 간의 약속이다.

 

출처 : 생활코딩 유튜브 : 

https://www.youtube.com/watch?v=y7Z_Wpgmz-Q&list=PLuHgQVnccGMCeAy-2-llhw3nWoQKUvQck&index=69

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

생활코딩 - Java(접근 제어자)  (0) 2024.04.02
생활코딩 - Java(유효범위)  (0) 2024.03.26
생활코딩 - Java(입력과 출력)  (0) 2024.03.25
생활코딩 - Java(메소드)  (0) 2024.03.23
생활코딩 - Java(배열)  (0) 2024.03.23
'Java & Spring/Java' 카테고리의 다른 글
  • 생활코딩 - Java(접근 제어자)
  • 생활코딩 - Java(유효범위)
  • 생활코딩 - Java(입력과 출력)
  • 생활코딩 - 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 enhance switch
    프로그래머스 java 기초 트레이닝
    Java this
    데이터 크기
    java super
    데이터 타입
    java 멤버
    java 세수의합
    자료구조
    java기초
    Java 생성자
    java arrays.copyofrnage()
    java two-pointer
    java
    java 에라토스테네스의 체
    java 메서드
    개발로드맵
    java 유클리드 호제법
    java 제어자
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
DJ.Kang
생활코딩 - Java(객체지향프로그래밍)
상단으로

티스토리툴바

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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