✔️ 클래스(Class)
클래스는 객체지향프로그램밍에서 객체를 생성하기 위한 템플릿이며,
객체의 속성(데이터)과 행위(메서드)를 정의하는 데 사용된다.
클래스는 실제로 데이터를 저장하지 않으며, 객체의 설계도나 구조를 정의하는 역할을 한다.
클래스를 기반으로 여러 개의 객체를 생성할 수 있으며, 이러한 객체는 클래스의 인스턴스이다.
클래스의 구성요소는 다음과 같다.
• 속성(fields 또는 멤버 변수)
클래스의 속성은 객체의 상태를 나타내는 데이터이다.
예를 들어, 사람 클래스에서 이름, 나이, 주소 등의 속성이 있을 수 있다.
• 메서드(methods)
클래스의 메서드는 객체의 동작이나 기능을 정의하는 코드 블록이다.
메서드는 객체의 속성을 조작하거나 특정 작업을 수행한다.
• 생성자(constructor)
생성자는 객체를 생성할 때 초기화하는 역할을 한다.
객체가 생성될 때 호출되며, 주로 초기 속성 값을 설정하는 데 사용된다.
• 접근 제어자(access modifiers)
클래스 내의 멤버들에 대한 접근 권한을 제어하는 키워드로, public, private, protected, default 등이 있다.
• 다형성, 상속, 추상화 등의 개념을 활용한 기능
클래스는 객체지향 프로그램밍의 다양한 개념과 원칙을 적용하여 객체 간의 관계와 동작을 정의할 수 있다.
아래는 간단한 클래스의 예시다.
public class Person {
// 속성(멤버 변수)
private String name;
private int age;
// 생성자
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// 메서드
public void sayHello() {
System.out.println("Hello, my name is " + name + " and I am " + age + " years old.");
}
}
위 Person 클래스는 이름과 나이 속성을 가지며, 생성자를 통해 초기화되고,
sayHello 메서드를 통해 인사말을 출력하는 예시이다.
클래스를 기반으로 하나 이상의 객체를 생성하여 사용할 수 있으며,
클래스는 객체지향프로그래밍에서 중요한 개념 중 하나이다.
✔️ 객체(Object)
객체는 객체지향프로그램밍에서 클래스를 기반으로 생성된 실체이다.
클래스의 인스턴스라고도 부르며, 클래스의 구조를 따라 속성(데이터)과 행위(메서드)를 가지게 된다.
객체는 프로그램 내에서 실제로 동작하며 데이터를 저장하고 조작하며,
다른 객체와 상호작용하면서 프로그램의 동작을 구성한다.
객체의 특징은 다음과 같다.
• 상태와 행위
객체는 클래스의 속성을 나타내는 상태(멤버 변수, 필드)와 클래스의 메서드를 통해 정의된 행위를 가진다.
• 식별성
객체는 고유한 식별자를 가지며, 이를 통해 프로그램 내에서 구별된다.
• 캡슐화와 은닉화
객체는 캡슐화를 통해 내부 상태와 구현을 외부로부터 숨기고, 필요한 정보와 기능만
노출하여 은닉화된 상태를 유지한다.
• 상호작용
객체는 다른 객체와 메시지를 주고받으며 상호작용하며 프로그램의 동작을 구성한다.
• 상속과 다형성
객체지향언어에서는 상속을 통해 새로운 클래스를 생성하고, 다형성을 통해 객체 간의 일관된 인터페이스를 제공한다.
아래는 Person 클래스를 기반으로 생성된 객체의 예시이다.
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public void sayHello() {
System.out.println("Hello, my name is " + name + " and I am " + age + " years old.");
}
}
public class Main {
public static void main(String[] args) {
// Person 클래스를 기반으로 객체 생성
Person person1 = new Person("Alice", 30);
Person person2 = new Person("Bob", 25);
// 객체의 메서드 호출
person1.sayHello();
person2.sayHello();
}
}
위의 예시에서 person1 과 person2 는 Person 클래스의 객체로, 각각 다른 이름과 나이를 가지고 있다.
sayHello 메서드를 통해 객체가 메시지를 주고 받으며 동작하고 있다.
객체를 활용하면 현실 세계의 개념을 프로그램으로 모델링하고 복잡한 동작을 추상화하여 구현할 수 있다.
➕
클래스를 기반으로 생성된 것을 객체라고 하며, 이러한 객체를 생성하는 과정을 인스턴스화(instantiate)라고 한다.
간단히 말해, 클래스의 인스턴스를 생성하면 그것이 객체가 된다.
예를 들어, Person 클래스를 정의한 후에 Person 클래스를 기반으로 생성된 것은 객체이다.
이 객체를 생성하는 과정, 즉 클래스의 구조를 따라 메모리에 할당되고 초기화되는 것을 인스턴스화라고 한다.
따라서 인스턴스와 객체는 일반적으로 동일한 의미로 사용되며,
객체지향프로그래밍에서 클래스를 기반으로 생성된 것을 가리키는 말로 자주 사용된다.
'JAVA' 카테고리의 다른 글
application 객체? (0) | 2023.11.28 |
---|---|
컬렉션(Collection, List/Set/Map) (0) | 2023.09.26 |
객체지향언어란? (0) | 2023.08.17 |
메서드(Method)란? (0) | 2023.08.17 |
접근 제어자란? (public, protected, default, private) (0) | 2023.08.17 |