개발/JAVA

[JAVA] 변수는 무엇인가_원시타입, 참조타입

mabb 2022. 5. 19. 09:54
반응형

 안녕하세요. 삶의 질을 높이고자 노력하는 영차영차입니다.
자바 기본기를 탄탄히 다지기 위한 공부 목적 포스팅입니다.
이것이자바다, HeadFirstJava 등의 교재와 구글링을 토대로 본인의 이해를 위해 작성하였으며
계속해서 살을 붙여나갈 계획입니다.
틀린 부분이 있을 경우 댓글 남겨주시면 감사하겠습니다.
---------------------------------------------------------------------------------------------------------

WHY
-데이터를 메모리에 저장하고 읽고 수정하기 위해서는 메모리 공간이 있어야 한다.
-이를 편리하게 하기 위해서는 메모리 공간에 이름이 있어야 한다.
-값을 저장할 수 있는 메모리 공간에 이름을 붙인 것이 변수이다.
-변수란 '하나의 값'을 저장할 수 있는 메모리 공간을 말한다.

프로그램이 하는 것은 결국 데이터를 처리하는 것이므로 데이터를 잘 다루는 것이 중요하다.

변수의 이름을 지을 때는...
첫글자는 소문자이거나 '$', '_' 이어야 한다. 대소문자를 구분하며 자바 예약어는 사용할 수 없다. 관례적으로 카멜표기법을 사용하며 문자 수의 제한은 없다.

※참고
리터럴(literal): 소스 내에서 직접 입력된 값.
ex) int x = 10;   //  직접 입력해넣은 숫자 10이 리터럴

변수의 선언과 초기화 그리고 대입
변수 선언
:변수의 타입과 이름을 정하는 것.
int number;
String text;
boolean isGood;aa
Cat nyangachi = new cat();

변수 초기화
:선언한 변수에 처음으로 값을 저장하는 것
위에서 선언한 number 변수에 정수 리터럴을 대입한다.
number = 36;
선언과 초기화를 함께 할 수 있다.
int number = 36;

대입  
: 대입연산자 '='을 이용하여 우측값을 좌측 변수에 저장하는 것.
number = 49;
36이 저장되어 있는 number 변수에 49를 대입함


변수에는 원시타입 변수와 참조타입 변수가 있다.
원시타입 변수는 메모리 공간에 값을 직접 저장하는 타입.
참조타입 변수는 메모리 공간에 객체의 번지(주소)를 저장하는 타입.
메모리 공간에 비트를 이용하여 직접 값을 저장하는 경우 -> 원시타입 변수
메모리 공간에 객체를 참조하는 번지(주소)를 저장하는 경우(비트만으로 표현할 수 없는 데이터이기 때문) -> 참조타입 변수

원시타입 변수
byte, char, int, long, float, double, boolean, short

참조타입 변수 == 객체의 리모컨!
배열, 열거, 클래스, 인터페이스

*참조타입은 null이 될 수 있다.

배열 타입
: 같은 타입의 데이터를 연속된 공간에 나열하고 인덱스(index)를 부여한 자료구조

배열의 선언

데이터타입[] 변수명;
데이터타입 변수명[];
ㄴ데이터 타입이든 변수명이든 뒤에 [] 대괄호를 붙여준다.
int[] x = null; 
int[] y;
int[] z;
y = new int[6];
z = new int[]{1,2,3,4,5};
String[] members = {"자바","파이썬","C"};
int[] numbers;
numbers = new int[] {5,6,7,8,9};
y[1] = 3;

ㄴ배열의 이름만 선언해둘수도 있고 길이까지 선언해둘수도 있고 {}중괄호를 통해 값목록을 저장할 수도 있고 길이가 정해진 배열에 인덱스를 통해 값을 대입할 수도 있음.



열거 타입(enumeration type) : 한정된 값들을 열거 상수로 갖는 데이터타입.
ex) Week열거 타입

Week.java
--------------------------------------
public enum Week {
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY
}
--------------------------------------

Week sickDay = Week.MONDAY;

Week열거 변수 sickDay 에 Week열거타입의 열거상수 MONDAY를 대입한다.
이는 Week객체가 가지고 있는 열거상수들 중 MONDAY를 열거변수에 대입한다는 의미.

클래스
인터페이스

 

 

 

 

반응형

'개발 > JAVA' 카테고리의 다른 글

[JAVA] 선언문,반복문, 조건문  (0) 2022.05.19
[JAVA] 연산자  (0) 2022.05.19
[JAVA] 자료 유형(데이터 타입)  (0) 2022.05.19
[JAVA] 이클립스 설치  (0) 2022.05.19
[JAVA] 왜 자바를 공부하는가, 자바란 무엇인가  (0) 2022.05.19