[Java] 1 클래스-1. 객체 지향 프로그래밍/ 객체와 클래스

🐷Jinie (juniorDeveloper)·2020년 10월 19일
0

Java

목록 보기
1/12

Java 를 공부하면서 어려운 개념을 다시한번 확인하고, 복습해보자!!
'객체 지향 언어' 에서 '객체'를 모르면 진짜 답없으니까 객체부터 차근차근

1. 객체 지향 프로그래밍

  • 현실 세계에서 어떤 제품을 만들때 부품을 만들고 하나씩 조립하듯
    객체(부품)를 만들고 하나씩 조립해서 완성된 프로그램을 만드는 기법
    : OOP(Object Oriented Programming) 객체 지향 프로그래밍

1-1. 객체?

  • 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있고 다른 것과 식별 가능한 것.
  • 객체는 속성(필드, field)과 동작(메서드, method)으로 구성
  • 현실세계의 객체를 소프트웨어 객체로 설계하는 것을 객체 모델링(Object Modeling)이라고 한다. 속성과 동작을 추려내어 필드와 메서드로 정의하는 과정.

1-2. 객체의 상호작용

  • 객체들은 각각 독립적으로 존재, 다른 객체와 서로 상호작용을 하면서 동작.
  • 객체들 사이의 상호작용 수단은 메서드
  • 객체가 다른 객체의 기능을 이용하는 것 : 메서드 호출
  • [객체.메서드이름] 으로 호출할 수 있다.
  • 메서드를 실행하기 위해 매개값이 필요한 경우가 있다.
  • 리턴값 : 메서드가 실행하고 나서 호출한 곳으로 돌려주는 값
int result =  Calculator.add(10,20);

1-3. 객체 간의 관계

  • 개별적으로도 사용될 수 있음
  • 집합관계 : 하나는 부품, 하나는 완성품의 관계
  • 사용관계 : 다른 객체의 메서드를 호출하여 원하는 결과를 얻어내는 관계, 사용하는 관계
  • 상속관계 : 상위(부모)객체를 기반으로 하위(자식)객체를 생성하는 관계

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

  • 캡슐화, 상속, 다형성

2-1. 캡슐화(Encapsulation)

  • 객체의 필드, 메서드를 하나로 묶고, 실제 구현 내용을 감추는 것.
  • 외부 객체는 객체 내부의 구조를 알지 못하고 객체가 노출해서 제공하는 필드와 메서드만 이용할 수 있음.
  • 외부의 잘못된 사용으로 객체가 손상되지 않도록 하기 위해
  • '접근제한자'(Access Modifier) 를 사용

2-2. 상속 (Inheritance)

  • 상위(부모)객체가 하위(자식)객체에 가지고 있는 필드와 메서드를 물려주어 하위객체가 사용할 수 있도록 한다.
  • 상위객체를 재사용해서 하위 객체를 쉽고 빨리 설계할 수 있다.
  • 이미 잘 개발된 객체를 사용하므로 반복된 코드의 사용을 줄여준다.
  • 유지보수시간 단축

2-3. 다형성 (Polymorphism)

  • 같은 타입이지만 실행결과가 다양한 객체를 이용할 수 있는 성질
  • 하나의 타입에 여러 객체를 대입하면서 다양한 기능을 이용할 수 있도록 함
  • 부모 클래스 또는 인터페이스의 타입 변환을 허용
  • 부모 타입에는 모든 자식 객체가 대입될 수 있음.

3. 객체와 클래스

  • 제품을 만들기 위한 설계도 = 클래스
  • 클래스로부터 만들어진 객체 = 해당 클래스의 인스턴스 (instance)
  • 클래스로부터 객체를 만드는 과정 : 인스턴스화
  • 하나의 클래스로부터 여러개의 객체를 만들 수 있다.
  1. 클래스를 설계한다.
  2. 설계된 클래스를 가지고 사용할 객체를 생성한다.
  3. 생성된 객체를 이용한다.
profile
ᴘᴇᴛɪᴛs ᴅᴇ́ᴠᴇʟᴏᴘᴘᴇᴜʀ. ᴘʀᴏɢʀᴀᴍᴍᴀᴛɪᴏɴ = ᴘʟᴀɪsɪʀ 💕

0개의 댓글