Contents

Java
2013.11.22 20:41

2.2.2 클래스의 사용

조회 수 358 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
book_7242.png



2.2.2 클래스의 사용

클래스로 데이터 타입을 만들었다면 변수를 선언한 후 값을 할당하고자 할 것이다. 구조체의 변수를 선언하는 것처럼 자바의 클래스도 다음과 같이 변수를 선언할 수 있다.

▒ 자바의 변수 선언

1
Person brother;


하지만 여기서 구조체와 클래스의 차이점을 발견할 수 있다. 클래스의 경우 변수의 이름만으로는 변수의 실제 메모리가 생성되지 않는다. brother의 이름은 만들어지지만 내부의 메모리는 생성되지 않는다.

□ 클래스 변수의 특징
◇ 클래스로 변수를 선언해도 메모리가 생성되지 않는다.
◇ 클래스는 변수를 선언한 후 별도의 메모리 생성 과정을 거쳐야 한다.

단순히 클래스는 변수의 선언과 메모리 생성을 분리시켜 두었다고 생각하면 된다. 클래스 변수를 선언한 후 메모리 생성 연산자 new를 이용해서 다음과 같이 메모리를 생성해주어야 비로소 완성된 하나의 메모리를 가진 변수가 만들어진다.

▒ 클래스 변수의 선언과 메모리 할당의 분리

1
2
Person brother; //변수의 선언
brother = new Person(); //메모리의 생성


▒ 클래스 변수의 선언과 메모리 할당을 동시에

1
Person brother = new Person();


만약 메모리 생성과정을 생략하고 변수만 선언한 후 클래스 변수를 사용한다면 메모리가 없다는 에러가 발생할 것이다. 메모리가 없는 상태에서 그곳에 값을 할당할 수는 없다.

클래스로 변수를 선언하고 new 연산자로 메모리까지 생성했다면, 여러분들은 구조체에서 점(.)을 사용하는 것처럼 클래스 변수에 점(.)을 사용해서 각각의 멤버에 값을 할당할 수 있다. 다음은 클래스 변수에 값을 할당하는 예를 보여주고 있다.

▒ 클래스 변수의 선언과 값 할당

 
Person brother = new Person();
brother.age = 20;
brother.height = 170.0F;
brother.weight = 67.5F;
 
Person sister = new Person();
sister.age = 15;
sister.height = 165.3F;
sister.weight = 51.0F;


메모리가 생성된 후에도 구조체와 별반 다를 것이 없다. new 연산자 부분만 다를 뿐 똑같다. 물론 이 차이점은 자바에서 너무나 중요한 문제이다. 이 단순한 차이가 기존의 언어와 자바 언어의 차이를 보여주는 부분이기도 하다. new 연산자에 대해서 조금 더 자세하게 알아보자.

☞ 클래스 변수

클래스로 변수를 만들어도 이것을 변수라고 부른다. 기본 데이터 타입의 변수와 구별하기 위해서 클래스 변수를 객체 또는 객체 변수라고 부른다.



List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
32 Java 2.3.1 클래스와 데이터 타입의 관계 IT장인 2013.11.22 385
31 Java 2.2.4 사용자 정의 데이터 타입 테스트 IT장인 2013.11.22 659
30 Java 2.2.3 메모리 생성 연산자 IT장인 2013.11.22 361
» Java 2.2.2 클래스의 사용 IT장인 2013.11.22 358
28 Java 2.2.1 클래스 만들기 IT장인 2013.11.22 333
27 Java 2.1.5 클래스로 가는 길목 IT장인 2013.11.22 314
26 Java 2.1.4 구조체의 사용 IT장인 2013.11.22 356
25 Java 2.1.3 구조체 만들기 IT장인 2013.11.22 361
24 Java 2.1.2 기본 데이터 타입의 한계 IT장인 2013.11.22 336
23 Java 2.1.1 핵심 Question IT장인 2013.11.22 290
22 Java 1.6.4 결론 IT장인 2013.11.21 332
21 Java 1.6.3 할당의 예 IT장인 2013.11.21 338
Board Pagination Prev 1 2 3 4 5 6 Next
/ 6