클라이언트/ 서버/ 엔지니어 " 게임 개발자"를 향한 매일의 공부일지

자바 기본 프로그래밍 2 - 자바프로그래밍의 구조와 식별자, 데이터 타입, 자바에서의 입력 키까지 본문

프로그래밍 언어/자바

자바 기본 프로그래밍 2 - 자바프로그래밍의 구조와 식별자, 데이터 타입, 자바에서의 입력 키까지

huenuri 2024. 8. 10. 14:11

자바 공부를 하는 게 정말 재미있다. 조금 전에 어렵사리 워크스페이스에서 다른 파일을 불러오는 법도 배워서 이젠 책에 있는 예제도 바로 볼 수 있게 되었다.
이제 예제 문제를 풀어보면서 수업에서는 다루지 않았던 내용들 위주로 정리해보려고 한다. 그리고 수업 중에 다루었던 내용은 넘어갈 것이다. 지금은 꼼꼼하게 공부할 시간이 별로 없다.
그래도 90% 이상은 이해한 후에 다음 학습을 진행하는 편이다.

그럼 바로 학습을 시작해보자! 요즘에는 하루가 너무 짧고 빨리 가서 하루가 24시간이 아니라 30시간쯤 되었으면 좋겠다는 생각을 한다. 아니면 내게 헤르미온느처럼 시간을 되돌리는 시계가 있었으면 얼마나 좋을까 하는 상상을 해본다~


 

 

1. 자바 프로그래밍의 구조

프로그래밍의 구조 살펴보기

 

예제 2-1

 

클래스 만들기

 

자바 프로그램 작성에 있어서 가장 기본적이면서도 중요한 것은 클래스를 만들고 그 안에 변수, 상수, 함수 등 모든 프로그램의 요소를 작성한다는 점이다. 클래스 바깥에 어떤 것도 작성해서는 안된다.

 

main() 메소드

main()은 반드시 public, static, void 타입으로 선언되어야 하며, 한 클래스에 2개 이상의 main()을 작성하면 안된다.

 

메소드

클래스의 멤버 함수를 자바에서는 메소드라고 부른다. 메소드의 이름은 개발자가 지정하며, 메소드의 개수에는 제한이 없다. 메소드 작성이나 호출 방법은 기본적으로 C/C++의 함수와 같다.

 


 

핵심 체크문제 풀기


 

2. 식별자

좋은 이름 붙이는 관습

개발자들은 클래스, 변수, 메소드의 이름을 붙일 때 좋은 이름을 붙이도록 노력해야 한다.

  1. 목적에 맞는 이름을 붙인다 : 좋은 이름을 프로그램을 읽기 쉽게 만든다.
  2. 이름의 길이에 연연하지 말고 충분히 긴 이름으로 붙인다
  3. 이름을 붙이는 언어의 관습을 따른다

 

이름의 관습

  1. 클래스 이름 : Camel 표기법
  2. 변수, 메소드 이름 : Pascal 표기법
  3. 상수 이름 : 전체를 대문자로

 

핵심 체크문제 풀기


 

 

 

3. 자바의 데이터 타입

데이터 타입이란 자바에서 다룰 수 있는 데이터의 종류를 말한다. 자바 언어는 9개의 타입의 데이터를 다룰 수 있다.

 

기본 타입 : 8개

 

레퍼런스 타입 : 1개

레퍼런스 타입은 한 가지이지만 용도는 다음과 같이 3가지이다.

  • 배열에 대한 레퍼런스
  • 클래스에 대한 레퍼런스
  • 인터페이스(interface)에 대한 레퍼런스

레퍼런스는 C/C++의 포인터와 비슷한 개념이라. 자바에서는 C/C++과 달리 실제 주소값을 가지지 않는다.

 

문자열

자바에서 문자열은 기본 타입에 속하지 않으며, JDK에서 제공하는 String 클래스를 이용한다. 자바에서는 문자열과 기본 타입의 + 연산이 실행되면, 기본 타입의 값이 문자열로 바뀌고 두 문자열이 연결된 새로운 문자열이 생성된다.

나머지 내용들은 C와 C++에서 배운 내용과 중복이 되어 따로 정리할 필요는 없을 것 같다.
리터럴은 수업 시간에 설명하지 않았지만, 이 부분은 다른 언어를 통해 공부해서 충분히 잘 알고 있으니 이 부분도 생략한다.

자바에서 특별히 사용되는 리터럴에 대해서는 숙지하고 넘어가기로 하자!

 

 

 

상수

예제 2-1

상수는 자바에서 final이라는 용어를 사용한다. C와 C++에서는 const였다.

 

 

타입 변환

이 부분도 수업에서 다루었던 내용이라 생략하고 예제 문제만 살펴보기로 하자.

 

 

핵심 체크문제 풀기


 

4. 자바에서의 키 입력

System.in

입력된 키를 단순히 바이트 정보로 응용프로그램에게 제공하므로, 응용프로그램은 받은 바이트 정보를 문자나 숫자로 변환해야 하는 번거로움이 있다. 그러므로 입력된 키를 문자나 정수, 실수, 문자열 등 사용자가 원하는 타입으로 변환해주는 Scanner 클래스를 사용하는 것이 효과적이다.

 

Scanner를 이용한 키 입력

Scanner 클래스로 키 입력받기

Scanner 클래스는 사용자가 입력하는 키 값을 공백문자를 기준으로 분리하여 토큰 단위로 있는다.

 

 

 

Scanner 클래스의 주요 메소드

nextline()과 next()

공백이 낀 문자열을 입력받기 위해서는 Scanner 클래스의 nextLine()을 이용해야 한다. 그리고 enter의 입력을 기다리는 용도로 사용할 수 있다. nextLine()은 빈 문자열("")을 리턴하면서 바로 돌아오지만, next()를 사용하게 되면, enter 키를 계속 입력해도 문자열이나 숫자 등 다른 키가 입력될 때까지 기다린다. next()는 결코 빈 문자열을 리턴하지 않는다.

 

Scanner 객체 닫기

scanner.close()

 

객체의 사용을 종료하려면 이와같이 닫아준다.

 

 

예제 2-4

 

 

 

핵심 체크문제 풀기


 

학습을 마치고

이렇게 해서 1일차에 배웠던 모든 내용을 책에 있는 부분까지 학습해보았다. 풀어야 할 문제가 정말 많아서 벌써 5시가 다 되고 말았다. 퀴즈문제까지 풀려고 했는데 시간이 안 될 것 같다.
1단원의 퀴즈문제가 5가지나 되지만 그 중에 한 두가지라도 한번 풀어볼 생각이다. 그리고 시험을 보면 괜찮을 것이다.

이제 오후 공부도 거의 끝나간다. 저녁에는 운동도 해야 하는데 공부할 게 많아서 고민이다.