본문 바로가기
  • alert("Rocomi의 개발공부 블로그")
JAVA 공부

객체와 클래스

by Rocomi 2024. 6. 21.

객체와 클래스는 객체지향 프로그래밍(OOP)의 핵심 개념입니다. 각각의 개념과 그들 간의 관계를 다음과 같이 상세하게 설명할 수 있습니다:

클래스 (Class)

클래스는 객체를 생성하기 위한 템플릿 또는 설계도입니다. Java에서 클래스는 다음과 같은 요소들로 구성됩니다:

  1. 속성 (Fields):
    • 클래스에 속하는 변수들을 의미합니다. 이는 클래스가 가지는 데이터를 나타냅니다. Java에서는 이를 멤버 변수 (member variables) 또는 인스턴스 변수 (instance variables)라고도 합니다.
  2. 메서드 (Methods):
    • 클래스에 속하는 함수들을 의미합니다. 이는 클래스가 수행하는 동작을 정의하며, 데이터를 처리하거나 조작하는 기능을 수행합니다.
  3. 생성자 (Constructor):
    • 클래스의 객체가 생성될 때 호출되는 특별한 메서드입니다. 주로 객체 초기화를 위해 사용됩니다. Java에서 생성자는 클래스명과 동일하며, 객체 생성 시 new 키워드와 함께 호출됩니다.
  4. 정적 멤버 (Static Members):
    • 클래스에 속하지만 특정 인스턴스와는 관련이 없는 멤버들입니다. 정적 변수와 정적 메서드로 구성됩니다. 정적 변수는 모든 인스턴스가 공유하며, 정적 메서드는 인스턴스 생성 없이 클래스명을 통해 호출될 수 있습니다.
  5. 접근 제어 지시자 (Access Modifiers):
    • 클래스의 멤버 변수와 메서드에 대한 접근 권한을 제어하는 키워드로, public, private, protected, default 등이 있습니다.
  6. 캡슐화 (Encapsulation):
    • 클래스 내부의 데이터와 메서드를 하나로 묶어 외부에서 직접 접근하지 못하도록 보호하는 OOP의 개념입니다. Java에서는 접근 제어 지시자를 통해 캡슐화를 구현합니다.

객체 (Object)

객체는 클래스의 인스턴스입니다. 클래스를 기반으로 실제 메모리에 할당된 데이터를 포함하며, 다음과 같은 특성을 가집니다:

  1. 상태 (State):
    • 객체가 가지는 데이터 값들을 의미합니다. 클래스의 인스턴스 변수들이 객체의 상태를 결정합니다.
  2. 행동 (Behavior):
    • 객체가 수행할 수 있는 동작을 의미합니다. 이는 클래스의 메서드들이 제공하는 기능입니다.
  3. Identity:
    • 각 객체는 고유한 식별자를 가지며, 메모리에서 다른 객체와 구별됩니다.

클래스와 객체의 관계

  • 설계와 실체화: 클래스는 객체를 설계하기 위한 틀을 제공하고, 객체는 클래스를 기반으로 실제로 생성된 인스턴스입니다.
  • 다중 객체 생성: 하나의 클래스로부터 여러 객체를 생성할 수 있으며, 각 객체는 고유한 상태를 가집니다.
  • 객체의 상호 작용: 객체는 다른 객체와 메서드 호출을 통해 상호 작용할 수 있습니다.

ex.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package com.kh.practice.demension;
 
import java.util.Scanner;
 
    // Person 클래스 정의
    public class Student {
        // 멤버 변수 (인스턴스 변수)
        private String name;
           private int age;
    
        // 생성자
        public Student(String name, int age) {
            this.name = name;
            this.age = age;
        }
    
        // 메서드
        public void inform() {
            System.out.println("학생명 : " + name + " 나이 : " + age + "살");
        }
    
        // 정적 메서드
        public static void main(String[] args) {
            // 객체 생성
           Student sd1 = new Student("Alice"30);
            Student sd2 = new Student("Bob"25);
            
            // 객체 사용
            Sd1.inform();
            Sd2.inform();
        }
    }
}
cs

 

'JAVA 공부' 카테고리의 다른 글

참조변수와 일반변수  (0) 2024.06.24
MVC 모델  (0) 2024.06.21
2차원 배열  (0) 2024.06.21
멤버 변수의 종류와 특징  (0) 2024.06.20
배열  (0) 2024.06.18