// 뜯어서 보기
1. public class HelloWorld { }
- 클래스를 만드는 코드
1-1) public 은 접근제어자 라고 부른는데, public 외에도 private, protected 등이 있다.
HelloWorld라는 클래스는 누구나 사용할 수 있는 공적인 클래스라는 의미
1-2) class HelloWorld라고 썼으니, HelloWorld라는 이름의 클래스를 만든다는 말
1-3) HelloWorld는 클래스 이름
2. public static void main(String[] args) { }
- 메소드를 만드는 코드
- HelloWorld {} 괄호 안에, 즉 HelloWorld 클래스 안에 위치(클래스 안에는 클래스가 어떤 동작을 할 지 정의해 주는데, 이 부분을 메소드)
2-1) main 메소드
2-2) String[] args은 괄호안에 위치, 즉 메소드에게 전달되는 값(parameter). 앞에 있는 String[]은 문자열을 의미하고, 뒤에 있는 args는 변수 이름입니다. 즉, args라는 이름의 문자열 변수가 메소드에 전달된다는 뜻
main 메소드에게 파라미터를 전달해주면, main 메소드 안에서 args라는 이름으로 받아서 사용
2-3) void
- 되돌려주는 값이 없다는 의미( 만약 실행이 끝나고 숫자형을 돌려줄 예정이면, void 대신 숫자를 의미하는 int를 쓰면 된다)
- 메인 메소드는 보통 아무 것도 되돌려주지 않기 때문에 void
2-4) static
- static을 써주면 그 부분을 바로 실행 가능하게 만들어준다
- main은 가장 첫 번째로 실행되어야 하기 때문에, main 앞에는 항상 static을 붙이게 된다
2-5) public
- main 메소드는 누구에게나 공개되어 있다는 의미
즉!
main 메소드가 있습니다.
이 main 메소드는 누구나 접근할 수 있고 (public), 바로 실행할 수 있고 (static), 아무 것도 되돌려주지 않습니다. (void)
나중에 main 메소드에 전달해주고 싶은 값이 있다면, 문자열 형태로 전달해야 하며, main 메소드 안에서 'args' 라는 이름으로 사용할 수 있습니다.
3. System.out.println("Hello, World!");
3-1) System
- 입력, 출력 등 시스템에 관련된 기능들을 모아둔 클래스
3-2) out
- System 클래스에 있는 기능 중 하나(int, err 등이 있다)
3-3) println
- 출력해주는 메서드
- prinln은 다음줄로 넘겨준다. 반면에 print는 다음줄로 가지 않는다.
자바와 가상머신
- 가상머신은 JVM(Java Virtual Machine), 그리고 JVM을 사용해서 마음껏 개발할 수 있는 환경을 JRE(Java Runtime Environment) 라고 한다.
- '자바 가상머신'이라는 것만 설치되면, 어느 운영체제이든, 어느 디바이스이든, 동일하게 동작이 된다(즉, 높은 호환성을 가지고 있다)
- 현재 JAVA는 오라클(Oracle)소유
자바와 객체지향
- 자바 = 객체지향프로그래밍(Object Oriented Programming, OOP)할 정도로 자바는 객체지향을 대표한다.
- 객체 지향 프로그래밍 (Object Oriented Programming, OOP)은 프로그램을 작성하는 기법으로, 부품에 해당하는 객체 (Object)를 먼저 만들고, 이것들을 하나씩 조립 및 연결해서 전체 프로그램을 완성하는 것이다.
// 안녕세상아! 를 출력하는 자바 코드
public class HelloWorld {
public static void main(String[] args) {
System.out.println("안녕세상아!");
}
}