[JAVA] 객체지향프로그래밍(JAVA) 기본

2020. 10. 12. 05:23·Computer Science/Programming Language

객체(Object)란? 

고유한 속성(state)과 동작(behavior)을 가지고 있는 것

- 속성 : 필드(field)

- 동작 : 메소드(method)

 

객체 모델링(Object Modeling)

(간단히 말하면) 현실 세계의 객체를 소프트웨어 객체로 설계하는 것

= 현실 세계 객체의 속성과 동작을 추려내어 소프트웨어 객체의 필드와 메소드로 정의하는 과정 

 

객체지향 프로그래밍의 특징 - 1. 캡슐화 2. 상속 3. 다형성

1. 캡슐화(Encapsulation)

객체의 필드, 메소드를 하나로 묶고 실제 구현 내용을 감추는 것

- 외부의 접근으로부터 객체 보호

- Access Modifier(접근 제한자) 사용 : 객체의 필드와 메소드의 사용범위를 제한

 

2. 상속(Inheritance)

상위 클래스(부모)가 자신이 가지고있는 필드와 메소드를 하위클래스(자식)에게 물려줌

- 반복된 코드 중복을 줄여줌 (객체의 재사용) -> 효율적, 시간 절약

- 부모클래스(super class) 자식클래스(serve class) 

 

3. 다형성(Polymorphism)

하나의 타입에 여러 객체를 대입함으로써 다양한 기능을 이용할 수 있도록 하는것

- 부모 클래스, 인터페이스의 타입변환 허용 

  : 부모타입에는 모든 자식 객체 대입 O

  : 인터페이스 타입에는 모든 구현 객체 대입 O

- 메소드 오버로딩 : 같은 이름 but 다르게 작동하는 여러 메소드

- 메소드 오버라이딩 : super class의 메소드를 server class마다 다르게 구현

 

객체(object)와 클래스(class)의 차이

● 클래스(class)

- 객체 모양을 선언한 틀/설계도

- 객체를 생성하기 위한 필드와 메소드가 정의되어 있음

- 와플틀이 있어 와플을 계속 찍어내듯이 클래스(틀)이 있어 객체를 찍어낸다 생각

 

● 객체

- 클래스로부터 만들어진 객체 = 클래스의 인스턴스(instance)

- 메모리 공간을 갖는 구체적인 실체

- 와플틀로 찍어내는 와플

 

 

객체지향 프로그래밍의 개발 단계

1. 클래스 설계 2. 클래스를 이용해 객체 생성 3. 생성된 객체 이용

 

 

저작자표시 비영리 변경금지 (새창열림)

'Computer Science > Programming Language' 카테고리의 다른 글

[JAVA] 스트림 - 바이트 스트림, 문자 스트림, 버퍼스트림을 이용한 파일 입출력  (0) 2020.12.12
[JAVA] 클래스(class) 구성 멤버  (0) 2020.10.12
[JAVA] 열거 객체의 메소드  (0) 2020.10.12
[JAVA] 열거상수, 열거 타입변수, 객체 ?  (0) 2020.10.10
[JAVA] 배열 복사 ( System.arraycopy() 메소드 )  (0) 2020.10.10
'Computer Science/Programming Language' 카테고리의 다른 글
  • [JAVA] 스트림 - 바이트 스트림, 문자 스트림, 버퍼스트림을 이용한 파일 입출력
  • [JAVA] 클래스(class) 구성 멤버
  • [JAVA] 열거 객체의 메소드
  • [JAVA] 열거상수, 열거 타입변수, 객체 ?
BS Kwak
BS Kwak
  • BS Kwak
    Slow but steady wins the race
    BS Kwak
  • 전체
    오늘
    어제
    • 카테고리 (161)
      • Project (2)
      • Next.js (3)
      • HTML+CSS+JS (17)
      • Computer Science (139)
        • Programming Language (52)
        • 자료구조와 알고리즘 (75)
        • Digital circuit (3)
        • 기타 error (9)
  • 블로그 메뉴

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

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    해시
    LNK2001
    오블완
    런타임 에러
    leetcode
    cmd error
    mysql error
    티스토리챌린지
    c++error
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
BS Kwak
[JAVA] 객체지향프로그래밍(JAVA) 기본
상단으로

티스토리툴바