티스토리 뷰
1. 변수 개요
1-1. 변수(variable)란?
💡데이터를 저장하기 위해 할당 받은 메모리 공간
변수의 종류는 여러 가지가 있지만, 여기서 다루는 변수는 지역 변수(local variable)이라고 한다.
1-2. 변수 사용 방법
💡변수를 선언하고, 변수에 값을 대입하여 사용
선언한 변수에 최초 값을 대입하는 것을 초기화
이러한 선언과 초기화는 따로 작성할 수도 있고, 동시에 작성할 수 있다.
동시에 작성하는 것을 선언과 동시에 초기화 라고 한다.
// 변수의 선언 예시
int age; // 생성되면 0으로 초기화가 저절로 된다. int age = 0 과 같다.
// int : 변수 크기 설정 / age : 변수 이름
// 선언한 변수에 값 대입 예시
age = 20;
// age(공간) = 20(값)
age = age; // 값 부분 치환!
// 선언과 동시에 초기화 예시
int point = 100;
1-3. 변수 사용 목적
- 값에 의미를 부여하기 위한 목적 (의미 전달이 쉬워야 코드를 읽기 쉬워지고, 협업 및 유지보수에 유리기 때문이다.)
- 한 번 저장해둔 값을 재사용 하기 위한 목적(변수를 이용하여 코드를 작성하면, 값을 변경할 때도 보다 간편하게 변경할 수 있다.)
- 시간에 따라 변하는 값을 저장하고 사용할 수 있다. (변하는 값을 저장하기 위한 공간이다)
package com.ohgiraffers.section02.variable;
public class Application1 {
public static void main(String[] args) {
/* 수업목표. 변수의 사용 목적에 대해 이해할 수 있다. */
/* 목차. 1. 값에 의미를 부여하기 위한 목적(가독성) */
System.out.println("===== 값에 의미 부여 테스트 =====");
System.out.println("보너스를 포함한 급여: " + (1000000 + 200000) + "원");
int salary = 1000000;
int bonus = 200000;
System.out.println("보너스를 포함한 급여: " + (salary + bonus) + "원");
/* 목차. 2. 한 번 저장해둔 값을 재사용하기 위한 목적 */
System.out.println("===== 변수에 저장한 값 재사용 테스트 =====");
System.out.println("1번 고객에게 포인트를 100포인트 지급하였습니다.");
System.out.println("2번 고객에게 포인트를 100포인트 지급하였습니다.");
System.out.println("3번 고객에게 포인트를 100포인트 지급하였습니다.");
System.out.println("4번 고객에게 포인트를 100포인트 지급하였습니다.");
System.out.println("5번 고객에게 포인트를 100포인트 지급하였습니다.");
System.out.println("6번 고객에게 포인트를 100포인트 지급하였습니다.");
System.out.println("7번 고객에게 포인트를 100포인트 지급하였습니다.");
System.out.println("8번 고객에게 포인트를 100포인트 지급하였습니다.");
System.out.println("9번 고객에게 포인트를 100포인트 지급하였습니다.");
System.out.println("10번 고객에게 포인트를 100포인트 지급하였습니다.");
System.out.println(); // 공백 한줄 추가(엔터 키)
int point = 100; // 쉽게 포인트를 수정할 수 있다.(재사용을 통한 유지보수 측면 개선)
System.out.println("1번 고객에게 포인트를 " + point + "포인트 지급하였습니다.");
System.out.println("2번 고객에게 포인트를 " + point + "포인트 지급하였습니다.");
System.out.println("3번 고객에게 포인트를 " + point + "포인트 지급하였습니다.");
System.out.println("4번 고객에게 포인트를 " + point + "포인트 지급하였습니다.");
System.out.println("5번 고객에게 포인트를 " + point + "포인트 지급하였습니다.");
System.out.println("6번 고객에게 포인트를 " + point + "포인트 지급하였습니다.");
System.out.println("7번 고객에게 포인트를 " + point + "포인트 지급하였습니다.");
System.out.println("8번 고객에게 포인트를 " + point + "포인트 지급하였습니다.");
System.out.println("9번 고객에게 포인트를 " + point + "포인트 지급하였습니다.");
System.out.println("10번 고객에게 포인트를 " + point + "포인트 지급하였습니다.");
/* 목차. 3. 시간에 따라 변경되는 값을 저장하고 사용 할 목적 */
System.out.println("======= 변수에 저장된 값 변경 테스트 =======");
int sum = 0;
sum = sum + 10; // 현재 sum에는 10
System.out.println("sum에 10을 더하면 sum의 값은: " + sum);
sum = sum + 10; // 현재 sum에는 20
sum = sum + 10; // 현재 sum에는 30
sum = sum + 10; // 현재 sum에는 40
sum = sum + 10; // 현재 sum에는 50
System.out.println("sum에 10을 네 번 더 누적하면 sum의 값은: " + sum);
/* 설명. 동일한 sum이라는 하나의 변수를 어느 시점에 보느냐에 따라 들어있는 값은 달라진다. */
}
}
2. 변수의 사용
2-1. 변수의 선언과 자료형
💡변수를 선언한다 : 메모리에 공간을 생성하고 그 공간을 참조(reference)할 수 있도록 이름을 부여
"자료형 변수명;"
위와 같은 형태로 앞에 어떠한 데이터를 저장하는 공간 인지를 알려주는 키워드를 작성
이렇게 예약된 키워드를 자료형
💡자료형
다양한 값의 형태별로 오느 정도의 크기를 하나의 값으로 취급할 것인지 미리 Compiler와 약속한 키워드
ex) int 자료형 : 정수를 4byte만큼을 읽어서 하나의 값으로 취급하겠다는 약속
package com.ohgiraffers.section02.variable;
public class Application2 {
public static void main(String[] args) {
/* 수업목표. 변수를 선언하고 값을 할당하여 사용할 수 있다.(feat. 자료형(type)) */
// 1 ~ 4 : 기본 자료형(primitive type)
/* 필기. 1. 정수를 취급하는 자료형 */
byte bNum; // 1byte
short sNum; // 2byte
int iNum; // 4byte, default
long lNum; // 8byte
/* 필기. 2. 실수를 취급하는 자료형 */
float fNum; // 4byte
double dNum; // 8byte, default
/* 필기. 3. 문자를 취급하는 자료형 */
char ch; // 2byte
/* 필기. 4. 논리값을 취급하는 자료형 */
boolean isTrue; // 1byte
/* 필기. 5. 문자열을 취급하는 자료형(참조 자료형) */
String str; // 4byte
// 위 8개 말고 그 이외는 참조 자료형이자 4byte
/* 설명. 변수에 값 대입해 보기(자료형별로 초기화) */
bNum = 1;
sNum = 2;
iNum = 4;
lNum = 2200000000L; // long형에 대입되는 값은 L을 붙이자(꼭 붙여야 될 경우가 있다.)
fNum = 3.14f; // double형으로 인식되는 실수를 float에 담을 때는 f를 붙이자.
dNum = -3.14;
ch = 'a';
ch = 97; // char는 양수만 가능
isTrue = true;
/* 설명. 변수를 활용한 합계(sum), 평균(avg) 출력 */
int kor = 90;
int math = 80;
int eng = 75;
int sum = kor + math + eng;
// soutv //variable 값을 한번에 출력
System.out.println("sum = " + sum);
// System.out.println(sum / 3.0);
double avg = sum / 3.0; // 나눗셈은 일반적으로 실수 결과가 나오며 나눌 떄
// 항 중에 하나 이상은 실수형 값이어야 한다.
System.out.println("avg = " + avg);
}
}
2-2. 변수의 명명규칙
- 컴파일 에러를 발생시킬 수 있는 규칙
- 동일한 범위 내에서 동일한 변수명을 가질 수 없다.
- 변수의 이름에는 자바에서 사용중인 키워드(keyword)를 사용할 수 없다.
ex) int, float, while, continue 등 - 변수의 이름은 영문자 대소문자를 구분한다.
ex) age와 Age는 다르다. - 변수의 이름은 숫자로 시작할 수 없다.
ex) 123abc - 사용불가 - 특수기호는 '_'와 '$'만 사용 가능하다.
ex) abc_zxc, abc$123, _abc123 등
- 컴파일 에러를 발생시키지는 않지만 개발자들끼리의 암묵적인 규칙
- 변수명의 길이 제한은 없다. (하지만 적당히 해야 한다.)
- 변수명이 합성어로 이루어진 경우 첫 단어는 소문자, 두 번째 시작 단어는 대문자로 시작한다. (camel-case)
ex) int memberAddress; - 단어와 단어 사이의 연결을 언더스코어( _ )로 하지 않는다. (타 언어 네이밍 규칙이다.)
- 한글로 변수명을 짓는 것이 가능하지만, 권장하지 않는다. (한글을 취급하는 다양한 방식들이 존재하기 때문에 에러를 유발할 수 있다.)
- 변수 안에 저장된 값이 어떤 의미를 가지는지 명확하게 표현하도록 한다.
- 전형적인 변수 이름이 있다면 가급적 사용하도록 한다.
- 명사형으로 작성할 수 있도록 한다.
- boolean 형은 의문문으로 가급적 긍정 의문문 형태로 네이밍한다.
2-3. 변수에 값 대입 및, 초기화
💡변수에 값을 대입하기 위해서는 대입연산자(=) 사용
대입연산자는 연산 방향이 오른쪽에서 왼쪽 방향!!!
대입하는 값의 리터럴 형태와 선언된 자료형이 일치해야 한다.
'한화시스템 > 백엔드' 카테고리의 다른 글
[BE] JAVA_형변환 (0) | 2024.07.13 |
---|---|
[BE] JAVA_오버플로우 (0) | 2024.07.13 |
[BE] JAVA_상수 (0) | 2024.07.13 |
[BE] JAVA_리터럴 (0) | 2024.07.12 |
[BE] JAVA_개요 (0) | 2024.07.12 |