쌓고 쌓다
[JAVA] 클래스와 객체 본문
클래스
클래스는 객체를 만들어 내기 위한 설계도, 틀이다.
객체
객체는 클래스를 이용해 생성된 것인데, 클래스가 붕어빵 틀이라면 객체는 틀을 이용해 만든 붕어빵이라고 할 수 있다.
객체를 클래스의 인스턴스(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