포스트

[Java] 백준 2557번 - Hello World

Java 프로그램의 기본 구조와 main 메서드로 Hello World를 출력하는 풀이를 정리했습니다.

For the English version of this post, see here.
[Java] 백준 2557번 - Hello World

BaekJoon 2557

풀이

1
2
3
4
5
public class Main {
    public static void main(String args[]) {
        System.out.print("Hello World!");
    }
}

백준에서 Java의 경우

1
2
3
4
public class Main {
	public static void main(String args[]) {
    }
}

다음과 같이 메인 메서드를 작성해야한다.

  • 메인 메소드는 자바 어플리케이션 실행 시, 제일 먼저 동작하며(main), 어느 객체에서든 접근할 수 있으며(public), 자바가 컴파일 되는 순간 정의되는(static), 돌려주는 값이 없는(void) 함수

평소 프로그래머스로 문제를 풀다 보니, 답만 answer 안에 넣으면 되는 경우가 많아서 헷갈렸다.

java의 메인 메소드

  • 프로그램 시작이 메인이기 때문에, 자바 어플리케이션이 실행되면 제일 먼저 메인 메소드가 실행됨 public: 접근 제어자, 어느 곳에서든 해당 객체를 참조할 수 있다는 의미
  • 외부에서 접근할 수 있는 일종의 제약
  • 종류는 제약이 강한 순서대로 private -> protected -> public default: 클래스 내부와 동일 패키지에서 접근할 수 있음 static: 이 함수가 정적 함수임을 의미함, static으로 함수 또는 클래스를 선언했을 경우에 해당 객체는 자바가 컴파일 되는 순간 정의가 됨 -> 이후 static이 아닌 객체가 정의됨
    • 따라서, static 객체에서 static이 아닌 객체를 호출하는 것은 불가능함
    • static이 먼저 정의가 되기 때문에 아직 정의되지 않은 객체는 호출할 수 없기 때문 void: 실행만 함, 리턴되는 값이 없음 -> 단지 해당 함수가 종료된 후 호출한 부분으로 이동할 뿐 String args[]: 프로그램을 실행할 때 외부에서 값을 전달받기 위해 사용
      1
      
      java Main hello 123
      
      1
      2
      3
      4
      
      public static void main(String[] args) {
        System.out.println(args[0]); // hello
        System.out.println(args[1]); // 123
      }
      
    • 전달받은 hello, 123 값들이 args 배열에 들어감
    • 코테에서는 대부분 Scanner, BufferedReader로 입력을 받기 때문에 거의 사용 안함

java에서의 출력

print: 괄호 안 내용을 단순히 출력 printf: C에서의 printf와 동일, %d, %s 등을 쓰기 위해 사용 println: 괄호 안 내용을 출력한 후 마지막에 개행문자(\n)이 포함되어 있어 출력 후 한 줄 띄워짐