본문 바로가기
Java

변수(Variable), 상수

by ZIAHO 2021. 9. 9.
  • 변수(Variable) : 메모리(RAM)에 값을 기록하기 위한 공간, 임의의 값 / 특정값을 저장할 수 있는 "저장공간"
    • 사용 목적
      1. 가독성 증가
      2. 재사용성 증가 → 코드량 감소, 유지보수 용이
// 변수를 사용하지 않았을 경우
System.out.println(2 * 3.141592 * 10);
System.out.println(3.141592 * 10 * 10);
System.out.println(2 * 3.141592 * 10 * 20 * 10);

// 변수를 사용했을 경우
double pi = 3. 141592;
int t = 10;
int e = 20;

System.out.println(2 * pi * t);
System.out.println(pi * t * t);
System.out.println(2 * pi * t * e * t);

 

  • 변수의 선언 : 메모리에 저장공간을 확보 하는것

                자료형               변수형         ;

                (변수타입 지정)            (변수명 지정)     (마침)

                 → 상자의 크기 지정      → 상자의 이름표 부착

// 변수 선언 예시 및 자료형(Type)
/* 자료형(Type) : 논리(boolean, 1byte)
                 문자(문자 - char, 2byte / 문자열 - String, 참조형)
                 숫자(정수형 - byte, 1byte / short, 2byte / int, 4byte / long, 8byte)
                     (실수형 - float, 4byte / double, 8byte) 
*/

// 논리형 변수 선언
boolean isTrue;

// 문자형 변수 선언
char ch;

// 문자열 변수 선언
String str;

// 정수형 변수 선언
byte bnum;
short snum;
int inum;
long lnum;

// 실수형 변수 선언
float fnum;
double dnum;
  • 선언된 변수를 사용하려면?  저장된 공간에 값을 대입, 저장된 공간에 저장된 값을 가져온다.
    • 변수명으로 저장공간을 호출 할 수 있다.
    • 👍메소드 내부에 선언한 변수(지역변수)를 이용할때는 반드시 초기화를 해야한다.
  • 값 대입과 리터럴
    • 대입 : 생성한 변수(저장공간)에 값을 대입하는것. 연산자 중 하나, 대입연산 : "="
    • 리터럴 : 변수에 대입되는 값 자체 
    • 👍 변수의 타입과 리터럴의 타입이 같아야 대입이 가능하다.
// 논리형을 저장할 수 있는 flag 변수 선언 후 대입연산을 사용하여 값을 넣은 후 출력하기
boolean flag;
flag = true;

// 한개 문자를 저장할 수 있는 ch변수를 선언하고 성별을 대입하고 출력하기
char ch;
ch = '남'

// 문자열을 저장할 수 있는 hobby변수를 선언하고 취미를 대입하고 출력하기
String hobby;
hobby = "축구"

// 정수를 저장할 수 있는 age변수를 선언하고 나이를 대입하고 출력하기
int age;
age = 26;

// 실수를 저장할 수 있는 weight 변수를 선언하고 몸무게를 대입하고 출력하기
double weight;
weight = 63.5;

System.out.println(flag);
System.out.println(ch);
System.out.println(hobby);
System.out.println(age);
System.out.println(weight);

// 선언된 변수(저장공간)을 사용하려면?
// 사용 → 저장공간에 값을 대입, 저장된 공간에 저장된 값을 가져오기
// 변수명으로도 저장공간을 호출할 수 있음.
// **메소드 내부에 선언한 변수(지역변수)를 사용할때는 반드시 초기화를 해야한다.

// 변수 타입과 리터럴 타입이 같아야 하는 경우
float b;
b = 50.59 // 에러발생
b = 50.59f

long s;
s = 5000000000; // 에러발생
s = 5000000000L;

// 같은영역(같은 메소드 내부)에서 선언된 변수는 재사용이 가능하다.
// 재사용하여 다른값을 기존변수에 대입하면 이전값은 사라진다. → 변수는 값을 하나만 저장할 수 있다.
s = 10000000000L;
  • 변수 명명 규칙
    1. 변수명은 대소문자를 구분하고 길이에 제한이 없다. * 같은 영역내에서 동일한 이름의 변수를 선언 할 수 없다.
    2. 예약어를 사용할 수 없다.
    3. 변수명의 첫글자는 숫자를 사용할 수 없다. 다른 위치에는 사용 가능하다.
    4. 특수기호는 _와 $만 사용 가능하다.
    5. camelcase(낙타봉표기법)을 적용한다. → 여러단어가 이어진 이름은 단어 첫글자를 대문자로 사용한다.
// 변수명에 대한 명명규칙

// 1. 변수명은 대소문자를 구분하고 길이에 제한이 없다.
String contenttesttesttesttesttestsetettesttest
int num;
int nUm;
int nUM;
int num; // 에러 발생, 같은 영역내에서 동일한 이름의 변수를 선언할 수 없다.

// 2. 예약어를 사용 할 수 없다.
double = true; // true는 예약어로 에러 발생
float = public; // public은 예약어로 에러 발생

// 3. 변수명의 첫글자는 숫자를 사용할 수 없다.
char 1gender; // 에러 발생
char gender1;
char gen1der;

// 4. 특수기호는 _와 $만 사용 가능하다.
byte b_t;
byte b$t;
byte _bt;
byte $bt;

// 5. camelcase(낙타봉표기법)를 적용한다.
String nickName;
int studentAge;
  • 변수에 값을 대입할 때 다른 변수의 값을 넣을 수 있다.
  • 변수를 사용할 때는 항상 먼저 변수를 선언하고 사용해야한다.
  • 변수의 값을 대입할 때 선언과 동시에 대입 할 수 있다.
  • 여러 변수를 한번에 선언 할 수 있고, 동시에 대입 할 수 있다.
// 변수를 사용할때는 항상 먼저 선언을 하고 사용해야 한다.
test = 100; // test변수가 선언되지 않았기 때문에 에러 발생

// 변수의 값을 대입할 때 선언과 동시에 대입할 수 있다.
String content = "화이팅";
System.out.println(content);

// 여러 변수를 한번에 선언하기
int age1;
int age2;
int age3;
int age4; // 코드량도 많아지고 작성하는데 시간도 오래걸림

int age1, age2, age3, age4;

char a = '가', b = '나', c = '다'; // 여러 변수를 한번에 선언하고 동시에 대입하기
  • 상수 : 동일한 값을 저장하는 저장공간으로 한번만 값을 대입할 수 있고 이후 값을 변경할 수 없는 저장공간.
    • 선언 방법 : final 예약어를 사용하여 선언. 상수명은 전체 대문자로 작성 ex) final int AGE;
    • 특징
      1. 선언 이후 대입은 불가능하지만 호출하여 사용은 가능하다.
      2. 선언과 동시에 초기화를 해야한다
      3. 사용시기 : 주기적으로 고정값을 호출하여 사용하는 경우
// 상수 선언 예제

final int AGE;
AGE = 19;
System.out.println(AGE);

'Java' 카테고리의 다른 글

제어문 - 중첩 반복문  (0) 2021.09.16
제어문 - 반복문(for, while)  (0) 2021.09.15
제어문 - 조건문(if, switch)  (0) 2021.09.14
연산자(Operator) - 2  (0) 2021.09.13
연산자(Operator)  (0) 2021.09.12