2023. 1. 12. 19:16ㆍ기술 창고/Java
객체 (Object)
객체라는 것은 물리적으로 존재하거나 추상적인 존재들 중에서 자신의 속성을 가지고 있으며, 식별할 수 있는 것을 말한다.
예를 들어, 사람이라는 객체는 이름, 나이, 성별 과 같은 속성과 먹다, 자다 등의 동작을 수행한다.
이러한 이름, 나이와 같은 속성을 필드라고 하고, 먹고 자는 동작은 메소드라고 표현한다.
# 예 : 물리적 존재 - 자동차, 컴퓨터, 사람 / 추상적 존재 - 강의, 주문
클래스 (Class)
클래스는 Java에서 객체를 생성하기 위한 설계도이다.
객체가 가지는 속성(필드)과 동작(메소드), 생성자로 이루어져 있다.
- 필드 : 객체의 속성으로서 실제 값이 저장되는 변수에 속한다.
- 메소드 : 객체의 동작을 수행하는 블록 혹은 함수이다.
- 생성자 : 객체가 실제로 생성될 때 초기화하는 역할.
public class Person{
//필드(field)
String name;
int age;
char sex;
//생성자(Constructor)
Person(String name, int age, char sex){
this.name = name;
this.age = age;
this.sex = sex;
}
//메소드(method)
void eat(){
System.out.println("밥 머겅..");
}
void walk(){
System.out.println("탁탁");
}
void sleep(){
System.out.println("쿨쿨...");
}
}
Person 이라는 사람을 표현한 class 이다.
사람을 구성하기 위한 설계도로서 필요한 요소들을 살펴보자면,
name, age, sex 와 같은 특정 속성 필드값을 포함하고 있고,
Person() 생성자를 통해 필드로 지정한 속성들을 초기화하며,
eat, walk, sleep 과 같은 함수를 통해 동작을 수행한다.
인스턴스 (Instance)
인스턴스란 객체로 구성된 클래스(설계도)를 통해 생성된 실제 구현체이다.
Java 프로그램이 실행이 되면 클래스는 JVM 메모리의 클래스 영역에 로드되고 이 클래스를 사용하여 Heap 영역에 새로운 인스턴스를 생성한다.
생성된 인스턴스들은 각자 고유의 특성을 가지고 독립적으로 존재한다.
public class PersonTest{
public static void main(String[] args){
// 객체 생성 = 인스턴스
Person p1 = new Person("청년", "20", "M");
Person p2 = new Person("중년", "20", "F");
// 메소드 사용
p1.eat();
p1.walk();
p1.sleep();
p2.eat();
p2.walk();
p2.sleep();
}
}
new Person() 으로 객체를 생성하여 Heap 영역에 할당되고 Person 객체를 참조하는 p1 p2 변수가 생성이 되었다.
'기술 창고 > Java' 카테고리의 다른 글
[Java] StringBuilder / StringBuffer (0) | 2023.01.23 |
---|---|
[Java] Object 클래스 내의 equals() / hashcode() 함수 (0) | 2023.01.23 |
[Java] Stack / Heap (0) | 2023.01.12 |
[Java] 자바 컴파일 과정 (0) | 2023.01.12 |
[Java] JVM (Java Virtual Machine) (1) | 2023.01.11 |