쌓고 쌓다

[JAVA] 클래스와 객체 본문

프로그래밍/java

[JAVA] 클래스와 객체

승민아 2021. 12. 20. 22:59

클래스

클래스는 객체를 만들어 내기 위한 설계도, 틀이다.

객체

객체는 클래스를 이용해 생성된 것인데, 클래스가 붕어빵 틀이라면 객체는 틀을 이용해 만든 붕어빵이라고 할 수 있다.

객체를 클래스의 인스턴스(instance)라고 부른다.

 

사람이 클래스라면 옆집 이웃, 형, 부모님, 친구 등은 객체로 보며 각 객체마다 모두 동일하게 공유하는 속성이 있지만 

각자 구분되는 나이, 이름 등 다른 값을 가지기도 한다.

 

클래스의 선언

public class Person {
    
    public String name;
    public int age;
    
}

 

객체의 생성

Person person = new Person();

Person이라는 클래스를 이용해 person이라는 객체를 생성을 할 때 new연산자를 이용한다.

C++과 달리 Person person; 로 객체가 생성되는 것이 아니다. 이것은 단지 객체의 주소를 가질 수 있는 변수일뿐이다.

 

new 연산자에 의한 객체가 생성되는 과정은 아래와 같다.

1. Person타입 크기의 메모리 할당.

2. Person의 생성자 실행

 

객체 멤버의 접근 방법

객체의 멤버에 접근할 때는 아래와 같이 접근한다.

person.name = "이승민"; // (객체 레퍼런스.멤버) 와 같이 접근한다.
person.age = "22";

 

결과

 

class Person {

    public String name;
    public int age;

}
public class Main {

    public static void main(String[] args) {

        Person person = new Person();
        person.name = "이승민";
        person.age = 22;
        System.out.print(person.name + " " + person.age);

    }
}

 

객체 치환 시 주의점

Person Aperson = new Person();
Person Bperson = new Person();
Bperson = Aperson;

 이 코드를 통해 Bperson에 Aperson의 정보가 복사되어 담길 것 같지만!

Bperson는 Aperson이 가리키는 객체를 같이 가리킬 뿐 복사가 되는 것은 아니다.

즉, Bperson 레퍼런스는 Aperson 레퍼런스를 따라 Aperson객체를 가리킬 뿐이다.

이렇게 된다면 원래 Bperson이 가리키는 객체는 아무도 가리키게 되지 않게 되고 이 객체는 가비지라고 부르며

자바 가상 기계에 의해 자동으로 수거된다고 한다.

'프로그래밍 > java' 카테고리의 다른 글

[JAVA] this 와 this()  (0) 2021.12.21
[JAVA] 생성자  (0) 2021.12.20
[JAVA] for-each 문  (0) 2021.12.19
[JAVA] 예외 처리  (0) 2021.12.19
[JAVA] 배열 선언 및 초기화 방법 정리  (0) 2021.12.18
Comments