코딩하는 타코야끼

[Java][TIL]_Ch07_객체 지향 프로그래밍의 기초 본문

[T.I.L] : Today I Learned/Java

[Java][TIL]_Ch07_객체 지향 프로그래밍의 기초

가스오부시 2023. 3. 30. 14:55
728x90
반응형

1. 객체 지향 프로그래밍 개요

1-1. 객체 지향 프로그래밍이란

객체 지향 프로그래밍(OOP)이란

  • 프로그램을 조립하여 만드는 방식
  • 프로그램을 부분별로 만든 뒤 전체를 구성하는 형식

자전거를 예를 들면,

  • 자전거는 바퀴, 몸체, 손잡이 등의 부품으로 구성
  • 자전거를 프로그램이라 한다면 각 부품은 객체가 됨
  • 이렇게 각 객체가 모여 전체 프로그램을 구성하는 방식을 OOP라 한다.

1-2. 객체 지향 프로그래밍의 장점

유지 보수성( 고치기 쉽다 )

  • OOP 기반 프로그램은 객체별 관리 기능.
  • 문제가 생기더라도 특정 객체의 코드만 고치면 된다.

코드 재 사용성

  • 다양한 코드뿐 아니라 다른 프로그램에서까지 손쉽게 사용할 수 있다.

프로그램 확장성

  • 처음부터 조립 방식을 고려해 만들기 떄문에 새로운 코드로 확장하기 편리하다.

1-3. 클래스와 객체의 관계

클래스(class): 객체의 설계도

  • 자전거 부품의 설계도가 필요하듯 객체를 만들려면 클래스가 필요.

객체(object): 클래스를 토대로 만들어진 프로그램의 구성 요소

인스턴스화(instantiation) : 클래스를 토대로 객체를 만드는 과정

  • 이러한 이유로 객체를 인스턴스(instance)라고 부르기도 함

2. 클래스 설계와 구현

1. 클래스를 설계하기

1-1. 클래스 설계란

  • 객체를 미리 구상하는 과정으로
  • 객체의 상태(state)와 동작(behavior)을 정의하는 것
  • 이때 상태는 변수, 동작은 메소드로 만들 수 있는데
  • 클래스는 객체가 가질 상태를 필드(field), 동작을 메소드(method)로 정의

1-2. 클래스를 도식화한 것을 클래스 다이어그램(class diagram) 이라고 한다.

  • 고양이를 클래스를 설계해보자

3. 객체의 활용

1. 객체 생성하기

1-1. 객체 생성 형식

  • new 키워드와 함께 클래스명과 소괄호를 적어 생성한다.

  • 생성 객체를 다시 사용하기 위해 레퍼런스 변수를 활용할 수 있다.

1-2. 객체 생성 과정

  • Cat 클래스를 객체로 만드는 예

  • Cat.java 파일(실행 X) - Hard Disk에 있음
  • Cat 클래스가 실행 가능한 상태(메모리에 있음)
  • 객체→ 수증기(실행게임)

2. 필드 사용하기

2-1. 인스턴스 변수

  • 객체 속에 존재하는 필드를 인스턴스변수(instance variable)라 한다.
  • Cat 객체의 인스턴스변수 name, breeds, weight를 출력하는 예이다.

2-2. 닷 연산자

  • 닷(.) 연산자는 객체 접근을 위한 연산자
  • c.name은 다음의 두 단계로 동작

  • 다음은 인스턴스변수를 변경하는 코드

예제)

결과)

3. 여러 객체 만들기

3-1. 클래스 설계와 구현

  • 하나의 클래스로 여러 객체를 만들 수 있다.
  • 강아지(Dog) 클래스 다이어드램을 설계 및 구현해 이를 확인할 수 있다.

3-2. 객체 생성과 필드의 사용

  • 두 강아지 객체를 레퍼런스 변수 d1과 d2에 연결하는 코드 예

!

  • 두 강아지의 상태 변경 예(레펀러스 변수와 닷 연산자를 사용)

4. 인스턴스 메소드 호출하기

4-1. 인스턴스 메소드(instance method)

  • 특정 객체가 주체가 되어 수행하는 동작을 뜻한다.
  • 다음은 두 강아지 객체의 인스턴스 메소드의 호출 예

  • 인스턴스 메소드의 호출 결과

  • 누가 꼬리를 쳤는지, 누가 짖었는지를 다음과 같이 구분하려면?

⇒ 메소드 내부에서 필드를 사용

  • 필드의 활동영역이 클래스 전체이기 때문에 메소드 내부에서 사용 가능.
  • 메소드에서 필드값을 사용한 예

예제)

결과)

반응형