변수와 자료형 그리고 참조형
1. 변수와 자료형
- 변수를 선언할 떄, 저장되는 값의 자료형을 선언
- 메소드를 선언할 때, 반환 값의 자료형을 선언
- 자료형에 따라 적용 가능한 연산이 다름
1) 변수의 종류
- 인스턴스 변수 : (클래스 정의에서 static이 아닌 필드) 객체가 소유하는 변수
- 클래스 변수 : (클래스 정의에서 static 필드) 객체가 공유하는 변수
- 지역 변수 : 메소드 내부에서 선언된 변수
- 파라미터 : 메소드 호출 시 전달하는 값을 저장하기 위한 변수
public class Array {
int iNumber;
static int bNumber;
boolean hello = false;
void method() {
Array instanceNumber = new Array();
instanceNumber.iNumber = 3;
int c = 0;
}
public static void main1(String[] args) {
System.out.println("클래스변수는 인스턴스화 하지 않아도 사용 가능!"+Array.bNumber);
Array ar = new Array();
ar.hello = true;
System.out.println("인스턴스화를 해서 hello변수를 불러옴!"+ar.hello);
int x = 100;
System.out.println("지역변수 입니다!"+x);
}
2) 변수의 사용 범위
- 선언된 곳 부터 해당 블럭이 {} 이 종료될 때 까지 유효함 (메서드가 실행될 때 만들어지고 끝나면 없어짐)
- 지역 변수는 초기값을 지정한 후 사용해야 함
- 지역 변수 선언에서 접근 제어자를 사용하지 않음
- 선언된 클래스 내부에서 사용 가능.
- 클래스 외부에서의 사용 여부는 '접근 제어자(access modifier)'에 따라 다름
ex) class Variable { public int VAR; …}
기본형(primitive type)
분류 | 키워드 | 길이(byte) | 값의 범위 |
문자 | char | 2 | '\u0000' ~ '\uFFFF' 유니코드 문자열 |
논리 | boolean | 1 | treu or false |
정수 | byte | 1 | -128 ~ 127 |
short | 2 | -32,768 ~ + 32,767 |
int | 4 | -9,223,372,036,854,775,808~ |
long | 8 | +9,223,372,036,854,775,807 |
실수 | float | 4 | 단정도 실수형 (유효 자리는 7정도) |
doblue | 8 | 배정도 실수형 (유효 자리는 15정도)
|
참조형(reference type)
- 기본형을 제외한 모든 자료형.
- 참조 값(주소)을 가지는 자료형.
- 자바 API에서 제공되거나 프로그래머에 의해서 만들어진 클래스를 자료형으로 선언하는 경우
- 배열, 클래스 형 등..
- int anArray[];
- Circle myCircle;
- String szStr;
- 참조형 변수는 저장 공간에 참조 값을 저장함.
- 기본형 변수는 저장 공간에 값 자체를 저장함.
- 참조변수는 말그대로 참조할 수 있어서 클래스의 이름을 갖고 만들 수 있다.
- 클래스이름 변수이름; // 변수의 타입이 기본형이 아닌 것들은 모두 참조변수!
- 예를 들어서 class ASD {} 라는 것을 만들어서 class TEST{} 에서 ASD를 사용(?) 하려면 그냥 ASD test; 이렇게 사용할 수 있다.