다라다라V
article thumbnail
728x90
반응형

 

자바는 지정된 구조에 맞추어 코드를 작성하여 효율적으로 코드를 관리하게 합니다.

 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 리턴

 

 

반응형
profile

다라다라V

@DaraDaraV

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!