개발/JAVA

(JAVA) 클래스와 객체/인스턴스

hubaek 2024. 2. 21. 20:32

자바는 객체지향언어이기 때문에 클래스와 객체는 매우 중요하다.

 

클래스(Class)

클래스는 객체를 생성하기 위한 '틀', '설계도'이다.

객체가 가져야 할 속성(변수)과 기능(메서드)를 정의함

 

클래스는 붕어빵 틀이라고 생각해보면, 붕어빵 틀(클래스)은 붕어빵(객체)를 만드는 틀일 뿐이지 붕어빵(객체)이 아니다.

               붕어빵 틀(클래스)에서 팥붕어빵(객체)이던 슈크림붕어빵(객체)를 만드는 것이다.

 

public class Student {
	String name;
	int age;
}

학생(Student)클래스 - 클래스는 관례상 대문자로 시작하고 낙타표기법(카멜케이스)을 사용한다.

카멜케이스 예시 : Student, OrderDate, UserName

Student라는 클래스에 name과 age라는 속성(변수)를 정의함.

 

 

객체(Object)

객체는 클래스에서 정의한 속성(변수)과 기능(메서드)을 가진 실체이다. 객체는 서로 독립적인 상태를 가진다.

 

public static void main(String[] args) {
    Student student1 = new Student();
    student1.name = "김자바";
    student1.age = 17;
    
    Student student2 = new Student();
    student2.name = "백자바";
    student2.age = 19;
    
}

위 코드에서 student1은 "김자바"의 속성을 가지는 객체이고 student2는 "백자바"의 속성을 가지는 객체이다.

위 코드 student과 student2는 같은 Student(클래스)로 만들었지만, 서로 다른 객체이다 - 서로 독립적

 

각 객체에 접근하려면 student1 or student2하고 .(점) 속성(변수)로 접근가능

student1.name = "김자바";   => student1객체의 name 속성에 "김자바"라는 문자열을 저장한다.

 

객체와 인스턴스

- 객체라는 단어를 쓸때, 객체/인스턴스 두가지를 쓰는데 거의 동일한 의미인데

   인스턴스는 관계에 더 초점을 맞춘 용어이다.

예시로 student1과 student2는 Student의 객체라고 얘기할 수 있지만, 

            student1은 Student의 인스턴스이다. 

곧, Student라는 해당 클래스와 관계된 student1(객체)을 얘기할 때 인스턴스라고 표현한다.