🧐이번 시간엔 Java문법(변수, 리터럴, 변수의 범위, 타입, 타입변환)에 대해서 알아보도록 하겠습니다.
프로그램 소스 분석

public class Test{} 는 클래스 선언하고 있습니다.
public class는 공개 클래스라는 의미입니다.
Test는 클래스의 이름입니다.
여기서 주의할 점은 클래스 이름 과 소스 파일명 이 동일해야한다는 것입니다.
그리고 대소문자를 구분하기 때문에 대소문자도 정확히 표현해야 합니다.
바이트 코드를 실행하면 클래스 블록 내부에서 main() 메서드를 찾아서 실행합니다. 그래서 main() 메서드를 프로그램 실행 진입점(entry point)이라고 부릅니다.
자바에서의 주석
1. 라인 주석 (// .. ) : //부터 라인 끝까지 주석으로 처리
2. 범위 주석 (/../) : /와 /사이에 있는 모든 내용을 주석처리
3. 도큐먼트 주석 (/**..*/) : /**와 */ 사이에 있는 모든 내용을 주석으로 처리 javadoc프로그램으로 API 도큐먼트를 생성할 때 사용됩니다.
❓주석을 달 때마다 항상 들었던 의문점이 있었습니다.❓
주석을 너무 많이 달면 메모리에 영향을 주지 않을까? 입니다.
찾아본 결론은 영향이 없다! 였습니다.
왜냐하면 .java라는 파일엔 적혀있지만 javac로 컴파일이 되고난 후 .class파일엔 주석이 없기 때문에 메모리에 영향을 주지 않는다고 합니다!
변수
변수 사용을 위해서 변수 선언이 필요합니다.
변수를 선언할 땐 어떤 타입(자료형)의 데이터 저장을 할 것인지, 변수 이름은 무엇인지 결정합니다.
int age 여기서 int는 타입, age는 변수이름 입니다.
int x,y,z 이렇게 같은 타입의 변수는 콤마를 이용해 한번에 선언할 수 도 있습니다.
- 변수 명명 규칙
1. 첫 번째 글자는 문자이거나 '$','_'이어야 하고 숫자로 시작할 수 없습니다. (필수)
2. 영어 대소문자를 구분합니다. (필수)
3. 첫 문자는 영어 소문자로 시작하되, 다른 단어가 붙을 경우 첫 문자를 대문자로 합니다. (관례)
4. 문자 수(길이)의 제한은 없습니다.
5. 자바 예약어는 사용할 수 없습니다. (필수)
개발자는 변수가 어떤 값을 저장하고 있는지 쉽게 알 수 있도록 의미 있는 이름을 지어주는 것이 좋습니다.
- 변수에 값 할당하기
int score; // 변수 선언
score = 90; // 값 저장 대입 연산자 (=) 사용합니다.
변수를 선언하고 대입 연산자를 사용해서 오른쪽의 값을 왼쪽 변수에 저장합니다.
- 변수에 값 초기화

변수에 최초로 값을 할당할 때 메모리에 변수가 생성됩니다.
이것을 변수 초기화 라고 하고 이때의 값을 초기값 이라고 합니다.
- 변수의 범위
메소드 블록 내에서 선언된 변수를 Local variable (로컬 변수)라고 합니다.
로컬 변수는 메소드 블럭 내에서만 사용 가능하고 메소드 실행이 끝나면 자동으로 삭제됩니다.
public class practice {
public static void main(String[] args){
int value = 10;
int sum = value + 20;
System.out.println(sum);
}
// 이 위치에서는 value와 sum 변수는 사용 못함
}
또한 Local 변수는 해당 중괄호 블록 내에서만 사용 가능합니다.
public static void main(String[] args){
int val1;
if(..){
int var2;
//var1과 var2 사용가능
}
for(..){
int var3;
//var1과 var3 사용가능
//var2 사용 못함
}
//var1 사용 가능
//var2와 var3는 사용 불가
}
if문과 for문 안에서 선언된 변수는 각각 if문과 for문 안에서만 사용 가능합니다.
메소드 블록 전체에서 사용하는 경우라면 메소드 블록 첫머리에 선언하는것이 바람직합니다.
특정 블록 내부에서만 사용하려는 경우라면 해당 블록 내에 선언하면 됩니다.
- 변수의 타입
기본타입(Primitive Type)
자바는 정수,실수,논리값을 저장하는 총 8개의 기본타입을 제공합니다.
- 정수의 타입
byte | char | short | int | long
- 실수타입
float | double
- 논리타입
boolean
- 자동 타입 변환
값의 허용 범위가 작은 타입이 큰 타입으로 저장될 경우에 자동 타입 변환이 가능합니다.
다음은 기본 타입의 허용 범위 순을 나타냅니다.
byte < short < int < long < float < double
예를 들어
int n = 1
float m = n
System.out.println(m)
// 결과값 : 1.0
이렇게 작은 타입이 큰 타입으로 들어간다면 자동으로 타입변환이 됩니다.
- 강제 타입 변환
큰 허용 범위 타입을 작은 허용 범위 타입으로 저장할 땐 값이 잘리는 경우가 발생합니다.
문법은 이렇습니다.
작은 타입 = (작은 타입)큰 타입
예를들어, 문자 출력을 위해 int타입을 char 타입으로 강제 변환해야 하는 경우
int intValue = 65
char charValue = (char) intValue
System.out.println(charValue)
// 결과값 : A
또한 소수점 이하 부분을 버리고 정수 부분만 저장할때도 쓰입니다.
double doubleValue = 3.14
int intValue = (int) doubleValue
System.out.println(intValue)
// 결과값 : 3
🤩느낀점🤩
이번 글에서는 프로그래밍 전체에 대한 기초는 배제하고
Java만이 가진 특징을 위주로 글을 쓰려고 노력하였습니다.🙂
이 과정에서 몰랐던 내용들이 나오기도 하였기에
기초적인 내용이라도 한번 더 살펴보고 가야겠다는 생각이 들었습니다 :)
'🧮Programming > Java' 카테고리의 다른 글
| [Java] 패키지와 접근 제한자 (0) | 2024.02.06 |
|---|---|
| [Java] 객체와 클래스 (0) | 2024.02.06 |
| [Java] 배열(Array) (0) | 2024.02.05 |
| [Java] 참조 타입 (1) | 2024.02.04 |
| [Java] Java의 개념적 원리 (0) | 2024.02.04 |