JAVA

[JAVA]클래스

당고개 2023. 8. 30. 01:36

1. 클래스

객체의 생성의 가장 첫 번째는 단계는 클래스 생성입니다. 클래스는 class 키워드를 이용하여 클래스를 만들 수 있습니다.

class Person {

}

그리고 클래스를 통해 객체 인스턴스를 만들 수 있습니다.

Person person = new Person();

맨 앞의 Person을 참조 자료형이라고 부릅니다.

Person person;

그리고 이러한 변수를 참조 자료형 변수라고 부릅니다.

int num;

이러한 변수는 기본 자료형 변수라고 부릅니다.

2. 인스턴스

 

new  키워드를 통해 생성된 객체를 인스턴스라고 부르며 클래스를 인스턴스화했다고도 하고, 객체를 메모리에 적재했다고도 부릅니다. 다 유사한 의미입니다.

new Person();

new라는 키워드는 새로 만든다는 의미입니다. 인스턴스는 생성될 때 마다 별도의 메모리 공간에 적재됩니다.

Person person1 = new Person();
Person person2 = new Person();

// person1 참조 자료형 변수에 저장된 인스턴스 참조값과
// person2 참조 자료형 변수에 저장된 인스턴스 참조값은 서로 다르다. 
// (인스턴스 끼리 적재된 메모리 공간이 다르다)

예시로 메모리 주소가 같은 인스턴스 인지 확인해 보는 방법은 일반적으론 비교 연산자(=)를 통해 확인할 수 있습니다.

Person person1 = new Person();
Person person2 = new Person();

System.out.println(person1 == person2); // false

두 변수는 서로 다른 인스턴스를 참조하고 있으므로 false가 출력됩니다.

Person person1 = new Person();
Person person2 = person1;

System.out.println(person1 == person2); // true

person1 참조 자료형 변수person2 참조 자료형 변수같은 인스턴스 참조하고 있으므로 true가 출력됩니다.

3. 객체,클래스, 인스턴스의 차이

객체

객체는 속성과 행위를 가지고 있는 물리적인 것을 포함하여 논리적인 어떤 것, 현실 세계에 존재하는 것을 프로그램으로 구현할 대상입니다.

클래스

클래스는 현실 세계를 프로그래밍의 세계로 가져와서 실제로 구현한 것입니다. 또한 클래스는 프로그램에서 사용할 인스턴스를 생성하기 위한 틀이라고 볼 수 있습니다.

인스턴스

클래스를 통해 객체를 메모리에 적재한 실체를 인스턴스라고 부릅니다. 그리고 참조 자료형 변수는 인스턴스에 접근할 수 있 참조값을 저장할 수 있습니다.

4. 객체와 배열 인스턴스

배열 변수에는 하나의 값을 저장하고 배열 인스턴스에는 배열에 저장하는 값들이 저장된다고 했었는데 

배열 변수에 저장되는 것은 인스턴스에 접근할 수 있는 참조값을 저장합니다. 이 원리는 객체 배열(참조 자료형 배열)에서도 동일합니다.

배열을 선언 시에 기본 자료형(int, long, double, boolean 등) 뿐만 아니라 참조 자료형(String,Person, 그 외) 배열을 만들 수 있습니다.

일반적으로 Person 참조 자료형 배열을 만들면 Person 인스턴스 배열만 저장할 수 있으며 다른 자료형 인스턴스를 저장 할 수 없습니다.

만약에 아래와 같은 예시 코드를 작성하고 실행한다면 다음과 같은 상황이 됩니다.

예시 코드

Person[] array = new Person[6];
array[0] = new Person();
array[1] = new Person();
array[2] = new Person();

또는 

Person[] array = new Person[] {new Person(), new Person(), new Person(), null, null, null};

Person[] array 변수는 Person 인스턴스를 저장할 수 있는 배열 인스턴스 new Person[6]에 접근할 수 있는 참조값을 저장하며 배열 인스턴스의 각 공간은 여러 개의 Person 인스턴스의 참조값을 저장합니다.

참조 자료형 배열 인스턴스에 아무것도 저장하지 않은 경우는 기본적으로 null 값을 저장하고 있습니다.

Person[] array = new Person[6];
System.out.println(array[0]);
System.out.println(array[1]);
System.out.println(array[2]);
System.out.println(array[3]);
System.out.println(array[4]);
System.out.println(array[5]);

// 출력 시
null
null
null
null
null
null

 

 

 

출처 : https://www.codelatte.io/courses/java_programming_basic/M1EI7YNAC861NAIT

'JAVA' 카테고리의 다른 글

[JAVA]생성자, this  (0) 2023.09.05
[JAVA]멤버 변수  (0) 2023.09.05
[JAVA]문자열 만들기  (0) 2023.08.21
[JAVA]반복문  (0) 2023.08.15
[JAVA]조건문(switch문)  (0) 2023.08.04