C/C++ 언어의 기본 구조는 함수였지만, JAVA 언어의 기본 구조는 클래스입니다. 보통 클래스 안에는 하나 이상의 메서드(함수)가 존재합니다. 또한 클래스 안에는 값을 저장할 수 있는 변수도 들어있습니다.
이번 장에서는 자바 프로그램의 기본 구조와 콘솔 입출력 방법에 대해 알아보겠습니다.
📌자바 프로그램의 기본 구조
📚 클래스(Class)
자바 프로그램은 클래스들로 구성되어 있습니다. 클래스들은 프로그램 문장들로 구성된 메서드들을 가집니다. 자바 소스들로 만들어진 자바 응용 프로그램은 JVM에 의해 main( ) 메소드를 갖는 클래스부터 실행됩니다.
- 클래스 이름은 대소문자를 구분하여 파일 이름과 일치해야합니다.
- 소스 코드의 재사용을 위하여 하나의 소스 파일에 하나의 클래스를 정의합니다.
- C언어의 구조체와 유사하지만, 변수뿐만 아니라 상수와 메서드도 포함합니다.
- 클래스 안에서 선언된 변수나 상수인 멤버 필드와 클래스 안에 포함된 내용인 메소드로 구성되어 있습니다.
📚 키워드와 식별자
📃 키워드
키워드는 컴파일러에 의하여 미리 정의된 단어들을 의미합니다. 문법적으로 고유한 용도를 가지며 예약어라고도 합니다.
📃 식별자
식별자는 프로그래머가 클래스, 변수, 상수, 메소드 등에 붙이는 이름입니다. 키워드는 식별자로 사용할 수 없습니다.
식별자 명명 규칙은 다음과 같습니다
- 키워드는 식별자로 사용불가 ex) boolean 리터럴 (true, false)과 널 리터럴(null) 등
- 식별자의 첫 번째 문자로 숫자는 사용불가
- ‘@’, ‘#’, ‘!’와 같은 특수 문자, 공백 또는 탭은 식별자로 사용 할 수 없으나 ‘_’, ‘$’는 사용 가능
- 알파벳 대소문자 구별
- 길이 제한 없음, 그러나 필요 이상으로 긴 길이의 변수 이름이나 비영어권 문자는 사용을 권하지 않음
📃 관례적인 식별자의 이름 명명법
- 클래스 이름
* 첫 문자만 대문자로 시작
* 여러 단어가 복합되면 각 단어의 첫 문자만 대문자로 표시
public class Helloworld {}
class AutoVendingMachine {}
- 변수, 메소드 이름
* 첫 문자는 소문자로 표현
* 하나 이상의 단어가 합쳐질 때는 두 번째부터 오는 단어의 첫 문자들만 대문자로 표현
int myAge;
boolean isSingle;
public int getAge() {return 20;}
- 상수 이름
* 모든 문자를 대문자로 표현
* 하나 이상의 단어가 합쳐질 때 공백 필요 시 underscore(_)를 사용
final double PI = 3.145192;
📚 변수 (Variable)
변수는 어떤 값을 저장할 수 있는 메모리의 위치에 주어진 이름입니다. 각 자료형에 맞는 메모리가 할당됩니다.
- 지역변수
* 블록(메서드) 안에서 선언된 변수
* 블록 내 어디서든지 선언이 가능하며, JVM이 자동 할당 해제시켜서 블록 밖에서는 사용할 수 없음 - 매개변수
* 지역 변수의 일종으로 할당 해제시 자동 할당 해제됨
* 함수 정의 부분에서 선언한 변수 - 멤버변수
* 클래스 정의 안에서 선언된 변수
* 객체가 유지할 상태를 저장하는 변수로 객체가 소멸될때까지 유지
📚 주석 (Comment)
소스 코드를 설명하기 위해서 사용합니다. 프로그램이 실행 시 주석으로 처리된 문장은 실행되지 않습니다.
- 단행 주석 : // 를 사용하여 코드 줄 뒤에 한 줄 설명을 추가합니다.
- 다행 주석 : /* 으로 주석을 시작하여 */ 으로 주석을 끝냅니다. 여러 줄의 주석을 작성할 수 있습니다.
- javadoc 주석 : /** 에서 */ 사이에 문장을 작성, HTML 형식의 API 문서 생성 시 자동 참조됨
📌 콘솔의 입출력
📚 콘솔 출력
Console(콘솔) 은 개발자에게 오류 등의 중요한 메시지를 표시하는 패널입니다. java.lang 패키지의 System 클래스 중 static 객체인 out의 멤버 메서드를 사용하여 콘솔에 출력합니다.
- System.out.println([출력 내용]);
- System.out.println( ) = System.out.print( "\n" )
📚 콘솔 입력
키보드를 통해 입력을 받을 수 있습니다. 입력된 스트림은 System.in 객체에 의해 바이트 단위로 읽혀집니다.
바이트 단위로 읽기 때문에 속도가 느려 Scanner라는 객체를 이용해서 표준 입출력 스트림 내용을 입력받습니다.
Scanner s = new Scanner (System.in)
객체 s는 키보드로 입력된 내용을 표준 입력 스트림 객체 System.in을 이용하여 적절한 형식으로 넘겨줍니다.
📚 Scanner 클래스
- 여러 데이터 유형들의 입력 값을 원하는 자료형으로 편하게 읽기 위한 메서드들을 제공
📃 import java.util.Scanner;
- Scanner 클래스가 제공하는 메서드들을 사용하기 위해 필요
📃 Scanner 주요 메서드들
메소드 | 설명 |
String next() | 다음 토큰을 문자열로 리턴 |
byte nextByte() | 다음 토큰을 byte 타입으로 리턴 |
short nextShort() | 다음 토큰을 short 타입으로 리턴 |
int nextInt() | 다음 토큰을 int 타입으로 리턴 |
long nextLong() | 다음 토큰을 long 타입으로 리턴 |
float nextFlaot() | 다음 토큰을 float 타입으로 리턴 |
double nextDouble() | 다음 토큰을 double 타입으로 리턴 |
boolean nextBoolean() | 다음 토큰을 boolean 타입으로 리턴 |
String nextLine() | '\n'을 포함하는 한 라인을 읽고 '\n'을 버린 나머지 문자열 리턴 |
void close() | Scanner의 사용 종료 |
boolean hasNext() | 현재 입력된 토큰이 있으면 true, 아니면 입력 때까지 무한정 대기. 새로운 입겨이 들어올 때 true 리턴. ctrl-z 키가 입력되면 입력 끝이므로 false 리턴 |
'코딩언어 > JAVA' 카테고리의 다른 글
[JAVA] 05. 클래스의 멤버 (0) | 2022.10.13 |
---|---|
[JAVA] 04. 클래스와 객체 (0) | 2022.10.12 |
[JAVA] # 포인터 VS 참조 자료형 (0) | 2022.10.10 |
[JAVA] 03. 자바 프로그램의 자료형 (4) | 2022.10.10 |
[JAVA] 01. 자바 프로그래밍 개요 (0) | 2022.10.06 |