본문 바로가기
언어별 개념 정리/Java

[Java] 기초 문법 시작 정의 및 사용자 입력받기 정리

by char_lie 2023. 4. 25.
반응형
자바 프로그램 기본 형태
- Java 프로그램은 1개 이상의 클래스로 구성
- 가장 기초 구성이 되는 형태
public class 파일명 {
    public static void main (String[] args) {
        // 내용 작성;
    }
}


// 백준의 알고리즘을 풀 경우 Class 명을 Main으로 지정해야 컴파일이 됨
public class Main {
    public static void main (String[] args) {
        // 내용 작성;
    }
}

- public static void main (String[] args)은 자바 프로그램에서 실행 진입점을 나타내는 메서드


❓ 자바의 public class의 클래스명이 파일명과 같아야 하는 이유(출처는 ChatGPT)

Java에서 클래스명과 파일명이 같아야 하는 이유는 Java 컴파일러(Compiler)의 편의성 때문입니다.

Java는 소스코드를 컴파일러를 통해 컴파일하여 바이트코드로 변환합니다. 이때, 컴파일러는 파일 시스템에서 소스 파일을 찾아서 컴파일합니다.

Java에서는 하나의 소스 파일에 여러 개의 클래스를 정의할 수 있습니다. 하지만, 파일 시스템에서 파일 하나는 하나의 이름을 갖습니다. 이때, 하나의 파일에 여러 클래스를 정의하면 어떤 클래스를 컴파일러가 컴파일해야 하는지 알 수 없어서 컴파일러가 오동작할 수 있습니다.

이런 문제를 방지하기 위해 Java에서는 클래스명과 파일명이 같아야 합니다. 이렇게 하면 컴파일러가 컴파일할 클래스를 정확히 파악할 수 있습니다. 또한, 이렇게 하면 파일 이름으로 클래스를 찾을 수 있으므로, 소스코드 관리나 코드의 가독성도 향상됩니다.

따라서, Java에서 클래스명과 파일명을 같게 하는 것은 컴파일러의 편의성과 코드의 가독성을 높이기 위한 규칙입니다.

사용자 입력 받기
- Java에서 사용자 입력을 받기 위한 방법으로 여러 가지 존재
Scanner 클래스를 사용하는 방법
// 편리하게 다양한 자료형을 입력 받을 수 있음
// 대량의 입력 처리시 성능 이슈 발생 가능
import java.util.Scanner;

public class Main{
	public static void main(String[] args){
    	Scanner scanner = new Scanner(System.in);
        String str = scanner.nextLine(); // 사용자로부터 입력받은 문자열을 읽어 저장
        int num = scanner.nextInt(); // 사용자로부터 입력받은 정수 저장
        scanner.close();
	}
}​

 

BufferedReader  사용하는 방법
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;
 
public class Main {
 
	public static void main(String[] args) throws IOException {
        
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
 
 		String str = br.readLine();
		StringTokenizer st = new StringTokenizer(str," ");
		int a = Integer.parseInt(st.nextToken());
		System.out.println(a);
    }
}

Console을 사용한 방법

// 콘솔에서 사용자의 입력을 처리하는 데 특화
// 단, 콘솔 외의 환경에서 사용 불가
import java.io.Console;

public class ConsoleExample {
    public static void main(String[] args) {
        Console console = System.console();
        char[] password = console.readPassword();
        String str = console.readLine();
    }
}
반응형

댓글