[변수]
컴퓨터는 프로그램을 실행하는데 필요한 것들을
미리 올려놓고 사용하는 저장 공간이 있다.(=메모리)
개발자는 프로그램을 만들고 실행하는데 필요한 값들을
메모리에 저장해두고 꺼내 사용하는데, 메모리에 값을
저장하기 위해 할당해 놓은 특정 공간을 변수 라고 한다.
(안에 담긴 수가 변한다고 하여 변수라고 부름)
변수를 사용하려면 먼저 변수를 선언해야하는데
이 때 변수에 담을 데이터 형태와 변수 이름
이렇게 두 가지가 필요하다.
자바에서는 데이터 형태를 자료형, 형, 타입이라고 하며
변수 이름은 몇가지 규칙을 따라 지어야한다.
- 영어 대소문자 구문
- 첫 글자는 숫자로 시작할 수 없다.
- 특수문자는 $와 _만 가능하다.
- 자바 예약어는 사용 불가능하다.
[표기법]
변수이름을 표기하는 대표적인 방법 2가지
▼ 카멜표기법
두 개 이상의 단어를 조합할 때, 두 번째 단어부터는
첫 글자를 대문자로 표기하는 방법이다.
studentName / mainPrint / userLogin 등
▼팟홀표기법
_를 사용하고 모두 소문자로 표기한다.
student_name / mainprint / user_login 등
[변수 사용 범위]
모든 변수는 선언되는 중괄호{} 안에서만 사용할 수 있다.
해당 변수가 선언된{ } 를 벗어난다면 그 변수를
불러와도 값을 읽어올 수 없어 오류가 나게 된다.
이를 해결하려면 변수 선언을 호출하는 {}에 맞춰
밖으로 이동시키거나 호출 변수를 안으로 이동시켜야한다.
[자료형]
자료형(data type)은 자바 언어가 처리할 수 있는
데이터의 종류를 의미한다.
모든 변수는 자료형이 존재하며
자료형에 따라 저장할 수 있는 값의
형태와 크기가 달라지게 된다.
▼ 기본 자료형
정수형 : byte, short, int, long
실수형 : float, double
문자형 : char
논리형 : boolaen
▼ 참조 자료형
String
배열
클래스
인터페이스
[형 변환&강제형변환]
형 변환은 숫자를 담을 수 있는
기본 자료형 간에만 가능하다.
다만 문자형인 char의 경우에도
문자형인 동시에 정수형이기도 하므로
형 변환을 할 수 있다.
Why?
문자 그대로 저장하는 것이 아니라,
유니코드라는 숫자로 값을 변환하여 저장하니까!
> 그래서 char는 문자형이기 전에, 정수형이기도 하다.
*실수형과 정수형간의 형 변환
실수형 → 정수형 : 소수점 이하 값들 버려짐
정수형 → 소수형 : 정수 뒤로 0이 붙음
*작은 자료형에서 큰 자료형으로 변환할 때
자동형변환이 발생해서 ()를 굳이 안적어도 된다.
//원래 적어야하는 형태
int num=4;
double numm = (double)num;
하지만 자동형변환이 되기 때문에
//자동형변환이 적용되고 있는 상태
int num=4;
double numm = num;
//업 캐스팅 이라고도 한다.
로 적어도 적용이 되는 모습을 볼 수 있다.
그렇다면 큰 자료형을 작은 자료형으로 담으려면?
이럴 때 사용하는 것이 강제 형 변환(Casting)이다.
강제 형 변환은 큰 자료형의 값이 작은 자료형이 허용하는
범위 내의 값이면 데이터 손실이 발생하지 않으나
넘어가는 값이면 손실되어 버리므로 유의해야한다.
//()안에 강제 형 변환 해야하는 변수명 기재
double d1 = 12345.678;
int i2 = (int)d1;
//다운 캐스팅이라고도 한다.
위와 같이 강제 형 변환을 하게 되면
int i2의 값은 12345로 저장되어 있는 것이다.
[데이터 입력]
사용자가 입력한 값으로 무언가를
실행하거나 값을 넘겨줘야 할 때
사용자의 입력을 받을 도구,
즉 데이터 입력 도구가 필요해진다.
Scanner 클래스를 사용하면 되는데
아래와 같이 사용한다.
import java.util.Scanner; //임포트를 꼭 해야한다 - 스캐너 클래스를 호출한 것
Scanner sc = new Scanner(System.in); // sc는 객체명 자리로 다른이름이어도 상관 없다.
int command = sc.nextInt(); //사용자가 입력한 Int값이 command 객체에 저장된다.
'개주 훈련일지 > 📚 코살대 교본 학습' 카테고리의 다른 글
| 소프트웨어 공학의 접근법 (0) | 2025.10.31 |
|---|---|
| 연산자 (0) | 2025.10.31 |
| 자바 프로그래밍의 기본 (0) | 2025.10.30 |
| 소프트웨어 공학 개발 (0) | 2025.10.29 |
| 소프트웨어 공학 소개 (0) | 2025.10.27 |