Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- dataflow modeling
- ring counter
- DHT11
- FND
- soc 설계
- Linked List
- half adder
- gpio
- prescaling
- structural modeling
- D Flip Flop
- Algorithm
- BASYS3
- uart 통신
- ATMEGA128A
- hc-sr04
- LED
- atmega 128a
- i2c 통신
- java
- Edge Detector
- pwm
- stop watch
- verilog
- Recursion
- vivado
- KEYPAD
- Pspice
- behavioral modeling
- test bench
Archives
- Today
- Total
거북이처럼 천천히
Java - 클래스 정리 (2) 본문
클래스 정리 (1) 에서 클래스 정의에서 부터 객체 생성, 인스턴스 변수 활용, 배열 생성까지 다루어 보았다.
이번에는 Primitive data type과 Class의 차이점을 공부하여 좀 더 심도 있게 생각해보겠다.
Primitive data type과 Class 차이점
클래스도 Primitive data 처럼 하나의 타입이지만, 중요한 차이점이 존재한다.
- Primitive 타입의 변수인 경우에는 그 변수안에 Primitive 타입의 데이터가 저장하게 된다.
ex) int count 라는 변수가 존재한다면, count 변수안에는 0이라는 정수형 데이터가 저장하게 된다.
( 너무나도 당연한 이야기이다. ) - 하지만, 사용자 정의 타입(=클래스 타입)의 변수인 경우에는 사용자 정의 타입의 "first" 변수에 사람 이름과 전화번호가 저장되는 것이 아니라 new 명령어를 이용해서 사용자 정의 타입의 객체를 따로 만들어서 객체안에 사람 이름과 전화번호를 저장하게 된다.
- 그럼 사용자 정의 타입으로 생성된 first 변수에는 무엇이 저장되어 있는가?
▶ 바로 사람 이름과 전화 번호가 저장되어 있는 객체의 주소(참조)를 저장하고 있다. 따라서 필드(=인스번스 변수)나
객체에 접근하고 싶으면 first 변수에 저장되어 있는 주소(참조)를 가지고 접근할 수 있다.
정리
- 사용자 정의 타입의 변수(= Class)내에 데이터를 저장하는 것이 아니라 new 키워드를 이용하여 따로 사용자 정의 타입의 객체를 만든 뒤, 객체안에 저장한다.
- 그리고, 사용자 정의 타입 변수에는 객체의 주소(참조)를 저장하여 객체에 접근할 수 있도록 만들어 준다.
예시
- Person1 이라는 사용자 정의 타입으로 first라는 변수를 생성하였다.
▶ 하지만, 아직 객체를 생성하지 않았기 때문에 객체의 주소(참조)는 존재하지 않아 null 값을 갖는다. - new 명령어를 이용하면 사람이름과 전화번호를 저장할 수 있는 Person1 타입의 객체가 생성되며, = (대입 연산자)에 의해서 first 변수에 객체의 주소(참조)가 저장하여 참조하게 된다.
- . (dot)를 이용하여 first가 가르키고 있는 객체의 필드(name과 number)에 접근하여 값을 저장하게 된다.
Java에서는 first 변수처럼 객체의 주소(참조)를 저장하고 있기 때문에 "참조 변수"라 한다.
요약
Person1 first = new Person1();
first.name = "Chris";
first.phoneNumber = "010-1234-5896";
▶ "Person1" 사용자 정의 타입의 first 객체(=인스턴스)가 생성되었고, new 명령어를 통해 "Person 1" 타입의 객체가 생성되었다. 이때의 객체는 이름이 없는 객체이며, 이 객체안에 사람의 이름과 전화번호를 저장한다. 그리고, first 객체는 데이터가 저장된 이름없는 객체의 주소(참조) 정보를 저장하고 있으며, first 객체를 "참조 변수"라 한다.
Reference
- Java로 배우는 자료 구조 (권오흠)
'Back-end > Java 개념' 카테고리의 다른 글
Java - 클래스 정리 (4) (0) | 2022.06.27 |
---|---|
Java - 클래스 정리 (3) (0) | 2022.06.27 |
Java - 클래스 정리 (1) (0) | 2022.06.26 |
Java - 변수 선언 위치에 따른 변수 구분 (0) | 2022.06.26 |
Java - call by value & call by reference (0) | 2022.06.21 |