Variable (변수)
램(RAM) 에 저장되는 휘발성메모리이기때문에 프로그램이 끝나게 되면 사라진다.
메모리상의 임시데이터 저장 공간의 이름
변수의 명명규칙
- 영문자,숫자를 섞어 쓸수있으나 숫자로 시작될수는 없다. ex) int 4you
- 예약어는 변수로 사용불가 ex) public, int, void, main, static ...
- 한글/한자도 변수명으로 사용가능(유니코드) 그러나 쓰지않는다
- 특수문자는 변수로 사용할 수 없다. 단, 언더바'_' , '$'은 식별자로 사용가능
- 변수명은 명사형, 소문자로 시작할것 (클래스명, 인터페이스가 대문자)
- 같은 블록(지역)안에서 동일한 이름의 변수는 선언할수없다.
변수선언
int a; //변수선언
int a = 10; //선언과 동시에 초기화
접근지정자 modifier 자료형 변수명; 의 구조로 이루어져있으며 메모리를 생성한다.
ex) public static int a;
int a; //a라는 숫자형을 변수선언
a = 10; //a라는 변수에 10을 담는다.
a = a + 5; //a라는 변수에 15가 재할당된다. `=` 라는 대입연산자의 오른쪽이 항상 먼저 실행된다.
같은 타입이라면 연속선언이 가능하다 - int num1, num2;
같은 타입에 연속 선언/초기화가 가능하다 - double num3=1.2, num4=3.4;
이미 선언된후 연속초기화는 불가능하다 - num1=10, num2=20; [ X ]
지역변수는 반드시 초기화해야 사용할수있다
Constant (상수)
- 상수는 보통 대문자로 쓴다
- final이라는 예약어를 앞에 반드시 붙여야한다. ex) final int PI; static double int PI;
- 지역변수로 사용할경우에는 값을 초기화하지않아도 에러가 나지않지만, 지역변수로 잘 사용하진않는다
- 따라서 상수를 쓸때는 값을 항상 초기화하면서 같이 선언해준다. ex) final int PI = 10;
- 상수 선언후 중간에 값을 변경시 에러
*literal
프로그램에서 사용하는 모든 숫자,문자,논리값등을 일컫는 말
ex)int a = 10; //리터럴은 10
ex)실수리터럴 3.14을 float pi에 담고싶다면, 식별자 f/F를 사용해주어야한다. float pi = 3.14F;
**식별자 long형 l || L , float형 f || F, double형 d || D
지역변수 및 상수
-메소드(지역)안에서 선언된 변수 및 상수
-초기화하지않고 사용할경우 컴파일 오류가 난다.
-지역변수는 반드시 초기화해야하지만 지역상수는 하지않아도 된다 (그러나 지역안에서 상수선언을 잘 안한다)
public class ConstantVariable {
final double PI; //ERROR. 지역변수가 아닌 상수는 초기화도 같이해야한다
static final double PI = 3.14;
static final USER = "멤버상수는 초기화를 같이 할것"
//지역
public static void main(String[] args) {
System.out.println(PI); //3.14출력
final double PI; //지역상수가 되기때문에 에러가 뜨진않는다
PI = 3.141592 // ERROR. 선언된 상수는 재할당 불가
}
}
package datatype01;
public class VariableDeclaration {
public static void main(String[] args) {
[변수 선언방법 #1 - 선언후 초기화]
int num;
System.out.println(num)//Error! 지역변수 num은 초기화가 되지않았다
num = 100; //int형 상수 100으로 변수초기화했다.
System.out.println(num); //100
[변수 선언방법 #2 - 선언과 동시에 초기화]
int num2 = 33;
System.out.println(num2); //33
[변수 선언방법 #3 - 동시에 같은 타입의 변수 여러개 선언하기]
int fnum, snum = 1000, tnum;
System.out.println(fnum); //Error! fnum은 초기화가 되어있지않다. snum만 초기화된 상태이다.
fnum = snum; //그러면 fnum snum으로 초기화한다.
System.out.println(fnum); //1000
fnum = snum + tnum; //Error! tnum도 초기화가 되어있지않아 사용할수없다.
tnum = 500;
fnum = snum + tnum; // 1500
100 = fnum; //Error! 대입연산자 왼쪽에 상수가 오는경우 에러가뜬다. 대입연산자 왼쪽은 항상 변수가 올것.
}
}
'BACK-END > JAVA' 카테고리의 다른 글
맥(MAC)에서 자바기반 프로그램 설정 세팅 (0) | 2021.02.22 |
---|---|
Stream (0) | 2020.09.16 |
Mac 에서 자바 path 및 환경변수 설정하기 * 맥에서 JDK 초기설정 (6) | 2020.08.12 |
CMD&MAC 명령프롬프트 / JAVA 주석 (0) | 2020.08.11 |
JDK(Java Development Kit) & JAVA ? (0) | 2020.08.10 |
댓글