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

OOP 개념: 클래스로부터 객체 생성

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

이번 글에서는 객체 지향 프로그래밍(Object-Oriented Programming, OOP) 핵심 요소 하나인 '클래스로부터 객체 생성' 대해 더욱 깊이 있게 알아보겠습니다. 클래스는 실세계의 개체를 모델링한 설계도이며, 설계도를 바탕으로 실제로 작동하는 객체를 생성하는 과정을 배워보겠습니다.


1. 클래스와 객체란 무엇인가?

 

객체 지향 프로그래밍에서 '클래스' 특정 개체를 나타내는 설계도라고 있습니다. 클래스에는 변수(필드) 함수(메서드) 정의되어 있으며, 이들은 해당 클래스의 속성과 행동을 나타냅니다.

 

한편, '객체' 해당 클래스에 따라 메모리에 할당된 실체입니다. , 클래스가 설계도라면 객체는 설계도를 기반으로 만들어진 실제 제품과 같습니다.

 

예시 코드:

public class Dog {

    String name;

    int age;

 

    public void bark() {

        System.out.println("Woof!");

    }

}

 

Dog myDog = new Dog();

 

코드에서 `Dog`라는 이름의 새로운 클래스가 정의되었습니다. 그리고 `new Dog();` 구문을 통해 Dog 클래스의 새로운 인스턴스(객체) 만들어졌습니다.


2. 인스턴스 생성하기

 

클래스를 정의하면 해당 클래스 타입의 변수를 선언하고 `new` 연산자와 생성자(constructor) 사용하여 인스턴스(객체) 생성할 있습니다. 여기서 `new` 연산자는 메모리 상에 새로운 공간을 할당하고, 생성자 함수(`Dog()` 부분)는 공간을 초기화합니다.

Dog myDog = new Dog();

 

코드에서 `myDog` Dog 타입의 변수이며, `new Dog();` 부분으로 인해 메모리 상에 실제 Dog 객체가 만들어집니다.


3. 필드 접근 수정하기

 

생성된 객채 내부 필드값은 (.) 연산자를 사용하여 접근할 있으며 값을 읽거나 변경할 있습니다.

myDog.name = "Rex";

myDog.age = 5;

 

예제에서 `name` `age` 필드에 값을 할당하였습니다.


4. 메소드 호출하기

 

객체가 생성되면 해당 클래스에 정의된 메소드를 호출할 있습니다. 이때도 (.) 연산자를 사용합니다.

myDog.bark(); // "Woof!" 출력

 

예제에서는 `bark()` 메소드를 호출하였습니다.


5. 여러 객체 생성하기

 

하나의 클래스로부터 여러 개의 객체(인스턴스) 생성할 있습니다. 인스턴스는 독립적인 필드 값을 가지며, 하나의 인스턴스 상태가 다른 인스턴스에 영향을 주지 않습니다.

Dog myDog1 = new Dog();

myDog1.name = "Rex";

 

Dog myDog2 = new Dog();

myDog2.name = "Fido";

 

System.out.println(myDog1.name); // "Rex" 출력

System.out.println(myDog2.name); // "Fido" 출력

6. 결론

 

객체 지향 프로그래밍에서 '클래스로부터 객체 생성' 중요한 개념입니다.

 

클래스란 설계도처럼, 객체가 가져야 속성과 행동을 정의하고, 클래스를 기반으로 실제로 작동하는 객체를 생성합니다. 이렇게 클래스와 객체를 이용하면, 실세계의 복잡한 문제를 코드로 더욱 표현할 있습니다.

 

이처럼 '클래스로부터 객체 생성' 이해하면, 우리는 데이터와 함수를 효과적으로 조직화하고 관리하는 방법을 배울 있습니다. 이것은 객체 지향 프로그래밍의 핵심이며, 좋은 소프트웨어 설계의 기본입니다.

 

또한 클래스와 객체는 코드 재사용성과 유지 보수성을 높여주며, 대규모 프로그램 개발에 필수적인 요소입니다. 따라서 각각의 역할과 작동 원리를 정확히 이해하는 것이 중요합니다.

728x90
반응형

 

728x90
반응형