Study/JAVA

[JAVA] 2장 - 자료형(1)

오구민 2022. 5. 14. 22:29

힘든 평일을 보내고 돌아왔다!

 

오늘 볼 파트는 2장 자료형이다.

프로그래밍에 빠질 수 없는 기초가 바로 자료형이라고 생각한다. 변수를 선언하려면 일단 자료형에 대해 알아야한다.

 

 

1. 선언

규칙은 아래와 같다

자료형 변수명;

이때 주의할 점은 두 가지다. (책에 쓰여있는 대표적 주의점)

  • 변수 선언 전에 자료형을 먼저 선언할 것
  • 자료형은 반드시 한 번만 선언할 것

하지만 자료형만 선언한다고 사용할 수 있는 것은 아니다.

어떤 자료형을 사용할 것인지 메모리 공간을 만들고, 그 메모리에 이름을 붙여줘야만 그 공간을 사용할 수 있는 것이다.

 

또, 변수를 선언하게 되면, 변수 값을 지정해줘야 한다.

첫 번째 방법은, 아래와 같이 선언과 동시에 값을 지정해주는 것이다.

자료형 변수명 = 값;
// 예시 : int a = 3;

두 번째 방법은, 선언 후 값을 지정해주는 것이다.

자료형 변수명;
변수명 = 값;
// 예시
// int a;
// a = 3;

이렇게 변수에 값을 지정해주지 않고 컴파일을 하면 에러가 발생한다.

C에서는 컴파일 되고 일명 '쓰레기값'이 출력되었던 것 같은데...

 

 

 

 

2. 변수명 짓기

개발자는 혼자 일하지 않는다. 그렇기 때문에 주석 같은 것들이 굉장히 중요한데, 이때 한 가지 요소가 바로 변수명이다.

 

2.1 변수명 지을 땐 이게 필수

고려할 점은 프로그램 문법에서 지원하고, 지원하지 않는 사항이 무엇인지 파악해야 한다.

변수명을 지을 때 참고할 점은 아래와 같다.

  • 영문 대소 문자와 한글을 사용할 수 있다. (하지만 한국어 사용은 권장하지 않는다.)
  • 특수 문자는 언더바(_)와 달러(&)만 사용할 수 있다.
  • 아라비아 숫자를 사용할 순 있지만, 맨 앞글자로 사용할 순 없다.
  • 자바에서 사용하는 예약어(ex. int, break, public 등)는 사용할 수 없다.

 

2.2 이름 짓기 권장사항

협업이 기본인 개발자들이기 때문에, 서로가 이게 어떤 역할의 변수고, 어떤 역할의 메서드인지 파악할 수 있게 개발하는 것이 중요하다. 주석만으로는 한계가 있기 때문이다.

까닭에 변수명을 지을 땐 두 가지 사항을 권장하고 있다고 한다.

  • 영문 소문자로 시작한다.
  • 영문 단어를 2개 이상 결합할 때는 새로운 단어의 첫글자를 대문자로 한다.
int ourClassNum;

이것은 낙타의 혹처럼 생겼다고 하여 낙타 표기법이라고 한다.

 

상수명을 지을 때는 어떻게 할까?

바로 언더바를 사용하는 것이다. 이때 소문자 사용은 권장하지 않는다고 한다.

//예시
final int MY_DATA;

 

메서드를 지을 때는?

변수명과 동일하지만, 메서드의 경우 이름 뒤에 소괄호나 중괄호가 붙는다.

이는 7장에서 다룰 내용이라고 하니, 그때 가서 추가 정리할 예정이다.

 

 

 

3. 변수의 생존 기간

public class test {
	public static void main(String[] ar) {
		int value1 = 3;		//value1 생성	
		{
			int value2 = 5;		//value2 생성
			System.out.println(value1);
			System.out.println(value2);
		}		//여기서 value2가 사라진다.
		System.out.println(value1);
		//System.out.println(value2); value2는 사라졌기 때문에 오류가 발생한다.
	}	//value1이 사라진다.
}

예문을 먼저 작성했다.

사이에 중괄호가 추가된 코드다. (물론 예시용! 이렇게 코드 쓰는 경우는 없다!)

변수는 자신이 선언된 중괄호가 끝나면 메모리에서 삭제되기 때문에 value2가 삭제됨을 알 수 있다.

 

 

 

 

 

 

오늘은 여기까지만 하려고 한다.

최근에 안구건조증이 심해졌는데, 오늘따라 눈이 너무 아파서 화면이고 책이고 보기가 힘들다...

인공눈물로도 해결되지 않아서, 조만간 반차를 내고 안과를 가볼 예정이다...

 

오늘은 CSTS 1장을 끝냈다! 모니터가 특히 힘든거라, 이걸 올리면 2장까지 끝낼 예정이다.

그럼 안뇽.