본문 바로가기
Programming/객체 지향 프로그래밍(OOP)

OOP 개념: 클래스와 객체 생성(클래스의 필드 구현)

by vita12321 2023. 9. 13.
728x90
반응형

이번 글에서는 객체 지향 프로그래밍(Object-Oriented Programming, OOP) 핵심 개념 하나인 '클래스와 객체 생성' 대해 자세하게 알아보겠습니다. 주제를 이해하면 프로그램을 효과적으로 설계하고 구현하는 도움이 됩니다.


1. 클래스 (Class)

 

객체 지향 프로그래밍에서 클래스는 중요한 역할을 합니다. 클래스는 사실상 사용자 정의 데이터 타입입니다. 이를 통해 우리는 필요한 형태의 데이터를 보유하고, 해당 데이터에 수행할 있는 연산을 정의할 있습니다.

 

예를 들어, 'Dog'라는 클래스를 만들어 있습니다. 클래스에는 강아지의 속성(: 이름, 나이, 품종 ) 나타내는 필드와 강아지가 있는 행동(: 짖다, 뛰다 ) 나타내는 메서드가 포함될 것입니다.

 

class Dog {

    String name;

    int age;

    String breed;

 

    void bark() {

        // 짖는 코드

    }

 

    void run() {

        // 달리기 코드

    }

}

 

예제에서 `Dog`라는 이름의 클래스가 선언되었습니다. 안에 `name`, `age`, `breed`라고 하는 필드와 `bark()`, `run()`이라고 하는 메서드가 선언되어 있습니다.


2. 객체 생성 (Object Creation)

 

객체 지향 프로그래밍에서 '객체' 실체(instance) 의미합니다. , 위에서 정의한 'Dog' 클래스로부터 각각 다른 이름과 나이, 품종을 가진 여러 마리의 강아지 객체를 생성할 있습니다.

 

객체 생성은 일반적으로 `new` 키워드와 함께 사용됩니다. 아래 예제처럼 Dog 타입의 변수 `myDog` 새로운 Dog 객체를 할당하는 방식으로 사용됩니다.

 

Dog myDog = new Dog();

myDog.name = "Bingo";

myDog.age = 3;

myDog.breed = "Beagle";

 

예제에서 우리는 'Bingo'라는 이름과 3살이며 'Beagle' 종인 강아지 객체를 만들었습니다. 객체는 `Dog` 클래스의 인스턴스로, `Dog` 클래스에서 정의한 필드와 메서드를 가지고 있습니다.


3. 클래스 필드 (Class Fields)

 

클래스 필드란 해당 클래스가 가진 속성(attribute)들을 의미합니다. 예시로 'Dog' 클래스에서 name, age 그리고 breed 필드에 해당합니다.

 

필드 값은 해당 인스턴스마다 독립적이므로 각각 다른 값을 가집니다. , `myDog` 객체와 다른 `Dog` 객체는 각각 다른 이름, 나이, 품종 값을 가질 있습니다.

 

Dog anotherDog = new Dog();

anotherDog.name = "Rex";

anotherDog.age = 5;

anotherDog.breed = "Bulldog";

 

예제에서 우리는 또다른 강아지 객체를 만들었습니다. 이번에는 'Rex'라는 이름과 5살이며 'Bulldog' 종인 강아지입니다. 이렇게 여러 개의 독립적인 객체를 생성할 있는 것이 OOP 중요한 특징 하나입니다.


4. 결론

 

객체 지향 프로그래밍의 핵심 개념인 클래스와 객체 생성을 이해하면, 우리는 현실 세계의 복잡한 문제를 소프트웨어로 모델링하는 도움이 됩니다. 클래스는 공통된 속성과 메서드를 가진 객체들의 일반적인 틀을 제공하며, 이를 기반으로 실제 사용할 있는 객체들을 생성합니다.

 

이렇게 클래스와 객체 생성을 통해 우리는 데이터와 그에 관련된 연산을 하나로 묶고, 이를 재사용하여 코드의 중복을 줄일 있습니다. 따라서 좋은 클래스 설계는 유지 보수가 쉽고 확장 가능한 프로그램 작성에 중요한 역할을 합니다.

728x90
반응형

 

728x90
반응형