JAVA - 객체지향이란 ?

2024. 6. 22. 21:55·JAVA

JAVA는 객체지향 언어이다. 이 말은 하도 많이 들어서 그냥 외우고 있는 JAVA의 특징이었다.

여기서 객체지향이란 뭘까? 

 

객체지향이란, 실세계를 '객체'라는 단위로 나누어 생각하는 것을 말한다.

객체 = 속성 + 동작
           속성 : 멤버변수, fleid, property, attribute
           동작 : 함수, method, function, 기능

 

객체지향 언어의 예시로는 JAVA, C#, Python 등이 있다.

 

객체지향 언어의 특징

1. "설계"
2. 문제를 '객체' 단위로 처리
3. 객체가 많아지고 설계가 복잡해지면 속도가 상대적으로 느려질 수 있음 ( +용량도 커짐)
4. 변화 대처에 용이
5. 유지보수 용이 ( = 재사용하기 좋음)
6. 코드 재사용성 높음

 

객체지향 언어는 유지보수가 용이하기 때문에 웹 프로젝트와 같은 대부분의 대형 프로젝트에서 많이 채택된다.

 

 

[ 객체지향언어 4가지 특징 ] 

 

1. 캡슐화

ex)알약

코드의 내용이 외부로부터 보호되어 있어서 코드내용을 다 몰라도 기능을 사용할 수 있다.
해당 객체의 기능을 ★"어떻게"★ 사용하는지만 알면 기능을 활용할 수 있다는 특징.

 

 

2. 상속

부모(상위) 클래스의 내용을 자식(하위) 클래스가 extends(상속)하면
자식이 별도로 정의하지 않아도 부모의 내용을 모두 사용할 수 있다는 특징.
※ 코드를 ctrl C, V 하면 문제가 발생
1. 변화가 발생하면 문제도 따라서 발생할 확률이 높아짐== 유지보수 불리
2. 코드가 너무 길어짐 == 가독성 떨어짐
 
 

3. 추상화

실세계의 대상, 현상, 과제, 프로젝트 등을 객체로 나누는 과정 (== 설계)
 

4. 다형성

★ 다형성이 일어날 수 있는 이유 ★
함수를 실행하는 주체가 객체이기 때문에 가능하다.
add(10, 20) vs calc.add(10.20)
jump(마리오, 10) vs 마리오.jump() >> 10
jump(마리오, 20) 루이지.jump() >> 20
강아지.울음소리() 멍멍
고양이.울음소리() 야옹

'JAVA' 카테고리의 다른 글

JAVA 함수를 이용해서 학생부 프로그램 만들기  (0) 2024.07.01
JAVA 함수  (0) 2024.06.28
반복문과 배열 예제 풀이  (0) 2024.06.27
디버깅표를 이용한 이중for문 - 별찍기  (0) 2024.06.27
JAVA 코드를 통해 생성자 이해하기  (0) 2024.06.22
'JAVA' 카테고리의 다른 글
  • JAVA 함수
  • 반복문과 배열 예제 풀이
  • 디버깅표를 이용한 이중for문 - 별찍기
  • JAVA 코드를 통해 생성자 이해하기
yn98
yn98
좌우명 : 여전할 것 인가, 역전할 것 인가? 백엔드 개발자가 되고싶은 역전하고 있는 개발자 꿈나무의 블로그입니다. 개발을 하면서 공부한 것들을 기록합니다. 24.06 ~
  • yn98
    개발 꿈나무
    yn98
  • 전체
    오늘
    어제
    • 분류 전체보기 (131)
      • Python (3)
      • 공부 (7)
      • DB (7)
      • JAVA (24)
      • JSP (9)
      • jQuery (2)
      • HTML (3)
      • Spring (20)
      • 웹 (4)
      • C (1)
      • Git (2)
      • 에러일기 (19)
      • 프로젝트 (6)
      • 책 (21)
        • 멘토씨리즈 자바 (14)
        • 2024 수제비 정보처리기사 (7)
      • 기타 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
    • Notion
  • 공지사항

  • 인기 글

  • 태그

    @repository
    티스토리챌린지
    정처기
    codeup 4891 : 행복
    @service
    aop
    객체지향
    html
    Di
    정보처리기사 실기
    스프링 프레임워크
    수제비
    정보처리기사
    오버로딩
    java
    @Component
    2-layered 아키텍처
    정처기 실기
    오블완
    멘토씨리즈 자바
    DispatcherServlet
    생성자
    recoverabledataaccessexception
    상속
    ViewResolver
    어노테이션
    이벤트 스케줄러
    jsp
    MVC
    Spring
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
yn98
JAVA - 객체지향이란 ?
상단으로

티스토리툴바