1. 변수(variable)란?
- 하나의 데이터 값을 저장할 수 있는 메모리의 공간을 의미한다
1) 변수 선언
- 변수는 메모리에 데이터를 임시로 저장하기 위하여 선언한다
- '변수타입 + 변수명 = 값' 으로 작성한다
exe) int num = 1 ; 좌항 = 우항 변수 = 값 - 변수 선언 후에는 항상 ' ; '을 붙인다
- 변수에 값을 저장하는 것을 대입 또는 할당 이라고 한다
- 변수에 값을 처음으로 할당하였을 경우를 '초기화 한다' 라고 한다
- 초기화 후에 다시 변수에 값을 할당하는 것을 재할당 이라고 한다
- 변수에 값을 재할당하면 기존에 가지고 있던 값이 재할당 되는 값으로 변경된다
- 기존의 값이 재할당을 통해 변할 수 있으므로 변수라고 한다
class Example {
public static void main(String[] args) {
int num; // 변수 선언
num = 1; // 값 할당(변수 선언 및 초기화)
num = 2; // 값 할당(재할당)
}
}
2) 메모리와 변수의 관계
- 메모리는 메모리셀의 집합체이다
- 메모리셀은 1byte의 크기를 가진다
- 각각의 메모리셀에 데이터를 저장할 수 있다
- 각각의 메모리셀에는 주소가 지정되어 있다
- 메모리셀의 주소에 값을 대입할 수 있으나, 식별이 어렵다
- 식별을 용이하게 하기 위하여 변수를 사용한다
메모리 주소 사용 변수 사용 class Example {
public static void main(String[] args) {
0xf38d2a6c = 1;
0xa92d42b2 = 2;
0x24de241c = 3;
...
}
}class Example {
public static void main(String[] args) {
int num1 = 1; // num1(변수) , 1(값)
int num2 = 2;
int num3 = 3;
...
}
}
2. 변수 사용의 목적
- 메모리에 데이터 저장 공간을 확보하기 위해서 사용한다
- 여러 개발자와 협업을 진행할 경우 변수명을 붙여 데이터의 흐름을 상호간에 식별하여 소통할 수 있게 한다
- 데이터를 재사용할 경우 변수명만으로 사용할 수 있어서 용이하다
public class Grade {
public static void main(String[] args) {
int a=10, b=2, c=5; //a, b, c의 초기값
System.out.println(a+b); //a+b의 결과값 출력
System.out.println(a+b*c); //a+b*c의 결과값 출력
System.out.println(a+b+c); //a+b+c의 결과값 출력
System.out.println(a+b/c); //a+b/c의 결과값 출력
}
}
result
12
20
17
10
//a,b,c 값을 한번 선언함으로 여러가지 수식에 의한 값을 도출할 수 있다
2) 변수의 선언 타입
- 변수 a의 값을 10으로 선언한다면 10이 정수이므로 int 타입으로 선언할 수 있다
public class Grade {
public static void main(String[] args) {
int a=10; //10이 정수이므로 int 타입으로 선언
}
}
- 데이터의 종류에 따라 타입을 사용할 수 있다
public class Grade {
public static void main(String[] args) {
int a=10; //10이 정수이므로 int 타입으로 선언
float b=1.23456789F; //실수이므로 float 타입으로 선언
double c=1.23456789012345678D; //실수이므로 double 타입으로 선언
char d=75; //K를 유니코드 75로 char 타입으로 선언
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
}
}
result
10
1.2345679
1.2345678901234567
K
- 변수는 동일한 타입일 경우 타입은 한번만 선언해도 된다
public class Grade {
public static void main(String[] args) {
int a=10, b=20, c=30, d=40; //10이 정수이므로 int 타입으로 선언
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
}
}
result
10
20
30
40
- 변수의 값은 마지막에 적용된 변수의 값으로 저장된다
public class Grade {
public static void main(String[] args) {
int a=10; //a의 초기값
a=a+1; //a+1의 결과값
System.out.println(a); //최종 a+1의 결과값 a 출력
}
}
result
11
3. 변수의 종류
1) 클래스 변수
- 클래스 영역 내에서 static이 붙는 변수이다
- 클래스 정의에서 static 필드로 객체가 공유하는 변수이다
- 선언된 클래스 내부에서 사용 가능하다
- 클래스 외부에서의 사용은 접근제어자(access modifier)에 따라 다르다
2) 인스턴스 변수
- 클래스 정의에서 static이 아닌 필드로 객체가 소유하는 변수이다
- 객체는 인스턴스 변수의 묶음이다
- 객체가 생성되었을 때 생성된다
- 선언된 클래스 내부에서 사용 가능하다
- 클래스 외부에서의 사용은 접근제어자(access modifier)에 따라 다르다
3) 지역 변수
- 메서드 내부 또는 블록 내부에서 선언된 변수이다
- 메서드가 실행될 때 만들어지고 실행 후 사라진다
- 초기값을 지정한 후 사용해야 한다
- 변수 선언 시 접근 제어자를 사용하지 않는다
4) 파라미터
- 메서드 호출 시 전달하는 값을 저장하기 위한 변수이다
- 메서드가 실행될 때 만들어지고 실행 후 사라진다
4. 변수명
- 변수명은 영문자(대문자, 소문자)나 숫자, _, $ 를 사용할 수 있다
- 영문자는 대소문자가 구별되어 인식된다
- a와 A는 다른 문자로 인식한다 - 자바에서 변수명은 일반적으로 카멜 케이스(camelCase)를 사용한다
- 카멜케이스는 두 번째 단어부터 대문자로 시작해 구분한다
- camelCase 는 낙타와 닮았다고 붙여진 명칭이다 - 변수명은 숫자로 시작하여 작명할 수 없다
- 자바에서 사용 중인 예약어로 작명할 수 없다
- 예약어 : https://www.w3schools.com/java/java_ref_keywords.asp
Java Keywords
W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.
www.w3schools.com
▶ 자바(Java) 명명 규칙
※ 참조 사이트 : Code Conventions for the Java Programming Language: 9. Naming Conventions (oracle.com)
'JAVA' 카테고리의 다른 글
Java - 문자열(String) (0) | 2022.05.22 |
---|---|
Java - 배열(array) (0) | 2022.05.22 |
Java - 타입(Type) (0) | 2022.05.19 |
Java - 개요3. 파일 생성 (0) | 2022.05.19 |
Java - 개요2. JVM & JDK (0) | 2022.05.18 |