TIL

Day13

jackpods 2023. 2. 13. 22:41

인스턴스(객체)

  • 특정 타입의 객체 ex) Scanner x = new Scanner() x라는 이름을 가진 무언가는 Scanner라는 타입의 객체라고 부른다. (Scanner라는 타입으로 x를 만든다)
  • 객체
    • 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신과 다른 것을 식별 가능한 것.
    • 클래스와 new연산자를 통해 만든 실질적 데이터가 들어있는 변수
  • 클래스
    • 객체를 정의하는 틀 또는 설계도와 같은 의미로 사용된다.
    • 객체의 상태를 나타내는 필드(field)와 객체의 행동(함수)를 나타내는 메소드(method)로 구성되어있다.
    • 필드=클래스에 포함된 변수 , 메소드=어떠한 특정 작업을 수행하기 위한 명령문의 집합.
  • 인스턴스이렇게 클래스로부터 객체를 선언하는 과정을 클래스의 인스턴스 화라고 한다.클래스의 모든 메소드는 해당 클래스에서 생성된 모든 인스턴스가 공유하게 된다.
    • 어떤 객체가 어떤 클래의 객체인지 관계를 설명할 때
    • 클래스에 의해 만들어진 객체
    • Person jack = new Person(); > jack은 객체이다. 또한 jack이라는 객체는 Person의 인스턴스이다.
  • 이렇게 선언된 해당 클래스 타입의 객체를 인스턴스라고 한다.⇒ 인스턴스란 메모리에 할당된 객체를 의미.
  • 자바에서 클래스를 사용하기 위해서 해당 클래스 타입의 객체(object)를 선언해야한다

ex)

클래스= 자동차 설계도, 필드= 현대자동차, 주황색, 최고속도 ,메소드 = 브레이크, 엑셀 , 인스턴스 = 내 차- 설계도에 의해 생산된 차량 & 친구 차 - 설계도에 의해 생산된 또 다른 차량

객체지향(Object Oriented)

장점

  • 개발이 간단하다
  • 유지보수가 쉽다
  • 코드 재사용이 용이하다

단점

  • 처리속도가 느리다.
  • 객체에 따른 용량 증가
  • 설계단계에 많은 시간 소요.

특징

  1. 추상화(Abstraction)ex) 주방 도구 중 칼, 주걱, 국자, 도마 등이 기능적으로 다르지만 공통적인 속성으로 주방 도구라는 클래스를 정의할 수 있다. 이처럼 추상화는 다른 객체들과 구분되는 핵심적인 부분에 집중.
  2. 객체에서 공통된 속성과 행위를 추출
  3. 캡슐화(Encapsulation)
  • 연관 있는 변수와 메소드를 묶어주는 작업.
  • 정보은닉: 접근 제어 지시자(public,private)를 통해 외부로부터의 접근을 제한하여 객체 내에서만 접근이 가능하도록 한다.
  • 정보은닉을 통해 결합도를 낮추며 응집도를 높인다.
    1. 상속(Inheritance)
  • 상속을 통해 부모클래스의 속성과 기능을 상속받아 사용하는 것.
  • 상속을 통해 중복되는 기능을 반복하지 않는다.
  • 자식클래스는 상속을 통해 부모클래스의 속성과 기능을 물려받는다.
    1. 다형성(Polymorphism)
  • 프로그래밍 언어의 자료형 체계의 성질을 나타낸것.즉 동일한 변수와함수명 등이 다양한 방법으로 가능한 것.