이번 글에서는 객체 지향 프로그래밍(Object-Oriented Programming, OOP)의 핵심 요소 중 하나인 '객체의 필드와 메소드 참조'에 대해 깊이 있게 알아보겠습니다. 이전 글에서는 클래스로부터 객체를 생성하는 방법을 배웠으니, 이제 생성된 객체가 어떻게 작동하는지 살펴보겠습니다.
1. 필드와 메소드란 무엇인가?
객체 지향 프로그래밍에서 '필드'란 클래스에 정의된 변수를 의미합니다. 이 필드는 객체의 상태를 나타내며, 각각의 인스턴스(객체)마다 독립적으로 가지고 있습니다. 예를 들어, 'Dog'라는 클래스가 있다면 그 안에는 'name', 'age', 'breed' 등과 같은 필드들이 존재할 수 있습니다.
한편, '메소드'는 클래스에 정의된 함수입니다. 이 메소드는 해당 클래스(또는 그 인스턴스)가 수행할 수 있는 행동을 나타냅니다. 예를 들어, 위에서 언급한 'Dog' 클래스 안에는 개가 짖다('bark'), 달리다('run'), 먹다('eat') 등과 같은 메서도들이 정의될 수 있습니다.
2. 필드 참조하기
생성된 객체 내부에 저장된 값을 가져오거나 변경하려면 점(.) 연산자를 사용하여 해당 필드에 접근할 수 있습니다.
예시 코드:
myDog.name = "Rex";
myDog.age = 5;
위 예제에서 `name`과 `age` 필드에 값을 할당하였습니다. 이처럼 점 연산자를 통해 각 인스턴스별로 독립적인 상태 정보(name 및 age 값)를 관리할 수 있게 됩니다.
3. 메소드 호출하기
생성된 객체로부터 특정 행동을 실행하려면 점(.) 연산자를 사용하여 해당 메서도를 호출할 수 있습니다.
예시 코드:
myDog.bark(); // "Woof!" 출력
위 예제에서 `bark()` 메서도 호출하여 개가 짖는 소리("Woof!") 출력하였습니다. 마찬가지로 다른 개체(myCat 등)와 별개로 myDog만이 짖게 되므로 각 개체는 독립적인 행동을 가질 수 있습니다.
4. 여러 객체로부터 독립적으로 작동하기
클래스로부터 생성된 각 인스턴스(객체)는 독립적인 필드 값과 행동을 가집니다. 따라서 하나의 인스턴스 상태 변경이 다른 인스턴스에 영향을 주지 않습니다.
예시 코드:
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" 출력
위 예제에서 볼 수 있듯이, 각 개체는 독립적으로 자신의 상태(name)를 관리하며, 한 개체의 상태가 다른 개체에게 영향을 미치지 않습니다.
5. 결론
객체 지향 프로그래밍에서 '객체의 필드와 메소드 참조'는 중요한 개념입니다. 클래스로부터 객체를 생성하면, 해당 객체는 클래스에 정의된 필드와 메소드를 독립적으로 가지게 됩니다. 이를 통해 각 객체는 자신만의 상태와 행동을 가질 수 있습니다.
필드와 메소드 참조를 이해하는 것은 데이터와 함수를 효과적으로 조직화하고 관리하는 방법을 배울 수 있는 중요한 단계입니다. 이것은 객체 지향 프로그래밍의 핵심이며, 좋은 소프트웨어 설계 및 구현에 필수적인 기본 요소입니다.
또한 필드와 메소드 참조는 코드 재사용성과 유지 보수성을 높여주며, 대규모 프로그램 개발에 꼭 필요한 요소입니다. 따라서 이들 각각의 역할과 작동 원리를 정확히 이해하는 것이 중요합니다.
'Programming > 객체 지향 프로그래밍(OOP)' 카테고리의 다른 글
OOP 개념: 생성자(Constructor) (0) | 2023.09.20 |
---|---|
OOP 개념: 필드 참조 메소드 getter, setter 구현 (0) | 2023.09.19 |
OOP 개념: 클래스로부터 객체 생성 (0) | 2023.09.17 |
OOP 개념: 메소드 지정자 (1) | 2023.09.16 |
OOP 개념: 클래스와 메소드 구현 (0) | 2023.09.15 |