JAVA

2주차 변수와 자료형

pocacola912 2026. 3. 15. 00:48

+들어가며

 오늘은 본격적인 내용을 들어 갔다. JAVA라는 언어가 C언어와 상당히 유사하다고 하긴 했지만 첫만남이 너무 강렬했어서 그런가 여전히 벽이 느껴졌다. 역시 첫술에 배부른 법은 없는 것일까? 하지만 계속해서 쌓아간다면 언젠가 능숙하게 다루는 날이 올 것이라 믿고 이번 내용들을 정리해보겠다.

 

+식별자

 식별자는 프로그램 내에서 이름으로 사용되며 클래스나 병수, 상수, 메소드 등에 붙는 용도로 사용한다

이는 자바에 있어 중요한 부분이기에 이에 대한 자세한 원칙들이 있는데

1. "_ $"를 제외한 특수 문자, 공백(Tap)은 식별자로 사용할 수 없으며 _과 $는 식별자의 첫 문자로 잘 오지 않는다.

2.특이하게 유니코드 문자가 사용 가능하여 한글로 식별자를 사용 할 수 있다.

3. 자바 언어의 키워드는 사용불가하다.

4.불린 리터럴과 널 리터럴은 사용불가하다.

5. 첫 번째 문자로 숫자는 오지 않는다.

6.길이의 제한은 없다.

등 고려해야할 점들이 많다. 또한 대소문자에 따라 다르게 인식하기에 항상 대소문자 구별에 신경을 쓸 필요가 있어보인다.

이러한 식별자는 표기시 몇 가지의 관습들이 있는데 기본적으로 사용자가 잘 읽을 수 있고 유지보수하기 쉽도록 목적이 있는 약간의 긴 단어를 사용하는 것을 권장하고 클래스의 이름을 지정할땐 첫문자를 대문자로 시작, 변수와 메소드의 이름을 붙일 땐 첫 단어 이후 각 단어의 첫문자는 대문자로 표기하는 방식을 주로 사용한다. 상수는 그 특별성 때문인지 모든 문자를 대문자로 표기하는 것이 일반적이다.

 

+변수와 선언

 자바는 기본적으로 데이터 타입이 8개 레퍼런스 타입 3개가 있으며 이를 변수마다 지정하는 방식으로 사용하는데 이는 파이썬과는 다른 C에 가까운 방법이며 한정된 저장공간을 활용하는데 있어 유용해보인다. 변수의 구성은 데이터 타입 + 변수명의 형태로 구성되는데 이를 프로그램 내에서 선언하는 방식으로 사용한다. 코드 중간에도 삽입하여 사용이 가능하고 초기값을 선언과 동시에 지정가능하다. var 키워드로 변수 타입을 생략 가능하나 이땐 반드시 초기값이 있어야함(컴파일러가 해당 변수의 타입을 추론할 수 있도록) 상수를 선언할땐 final이라는 키워드 사용 선언 시 초기값을 지정하며 상수라는 말 뜻처럼 실행중 값이 변경되지 않음(변수와의 차이점) 

 

+리터럴

 리터럴은 프로그램에서 직접 표현한 값을 말하며 값들에 따라 분류할 수 있다.

-정수 리터럴: 10,8,16,2 진수 리터럴 int형 Long타입은 숫자 뒤에 L or l로 표시

-실수 리터럴: 기본적으로 double타입으로 컴파일 f나d를 명시적으로 붙이기도함

-문자 리터럴: 작은 따옴표로 문자 표현(큰 따옴표는 문자열), 특수문자는 백슬래시로 시작, 유니코드도 가능

-논리 리터럴:true or false뿐 단 1과0 사용 불가

-null 리터럴: 레퍼런스 변수 초기화에 사용

-문자열 리터럴: 큰따옴표 사용 String객체로 처리

 

+자동 타입 변환

작은 타입은 큰 타입으로 자동 변환된다. 이는 컴파일러에 의해 이루어지며 자료 손실이 없는 경우 자동변환 되지만 그 외의 예외상황에선 에러가 발생한다. 필요한 경우 강제 변환을 개발자가 지시 할 수 있지만 이는 값 손실을 발생시킬 수 있는 위험한 상황이기에 우려점이 있다.

 

+Scanner 클래스

다른 언어에서 input이나 scanf에 해당하는 클래스로 자바에선 import문을 통해 객체를 만들고 이를 사용하는 방식이다.

기본적으로 공백으로 구분되는 아이템 단위로 읽는데 문자열로 들어온뒤 메소드가 타입을 변경하는 방식으로 진행된다.

이번 수업에 주로 사용한 메소드는 String nextLine(),  int nextInt()정도를 사용했다. 이때 구분자(공백,엔터)는 그대로 버퍼에 남기에 nextLine()을 호출할때 빈 문자열을 반환하지 않도록 주의해야한다.

 

+실습들(응용)

위에서 배운 내용을 바탕으로 응용 시간 때엔 두 가지의 활동을 했는데 하나는 사용자가 프로그램에서 질문하는 내용에 대한 답변을 받고 템플릿에 그 값을 넣어 기사를 작성해주는 프로그램으로 아래와 같은 코드 구성을 가지고 있다. 이 프로그램을 작성할 때 고려한 부분이 있다면 내가 기사를 적을 분야에 대한 특성과 그걸 반영하기 위해 어떤 요소를 사용자에게 입력 받을 것인가에 대한 파트이다. 내가 하고자한 분야가 야구 기사이기에 경기장과 스코어, 이긴 팀과 진 팀 등 필요한 요소를 중점으로 구성한 것을 볼 수 있다.

+야구 기자+

 

두 번째 활동은 카페에서 쓸 수 있는 기초적인 키오스크를 만드는 실습을 했는데 여기서도 고려할 점이 무엇인가, 내가 이 프로그램에서 어떤 기능을 구현할 것인가를 중점으로 생각해보고 코드를 작성했다.

+카페 키오스크 만들기+

사진 속 코드의 양만 봐도 다소 길고 흐름을 놓친다면 쉽게 오류를 찾지 못하는 형태로 구성해서 개인적인 아쉬움이 남지만 1번 활동과 달리 단순한 템플릿만 사용자에게 프린트하는 것이 아닌 키오스크의 기초적인 역할인 어떤 메뉴를 사용자가 선택했고 몇 개나 주문했는지 총합의 가격은 얼마인지 가격표를 제시하는 기능을 구현하기에 어쩔 수 없이 늘어나는 부분도 있었다고 생각한다. 만약 이 프로그램을 추후에 개선할 수 있다면 반복문과 조건문을 사용하여 보다 더 유지보수가 잘되는 형태로 또 메뉴 주문을 세 가지 보다 더 많이 늘리거나 한 메뉴만 주문할 때의 상황도 대처할 수 있는 형태로 만들어 보고 싶다.

'JAVA' 카테고리의 다른 글

6주차 객체 지향 프로그래밍 체험  (0) 2026.04.14
5주차 나의 위치를 체감하기  (0) 2026.04.05
4주차 배열  (0) 2026.03.29
3주차 비교문과 반복문  (0) 2026.03.22