1. System.out.println("Hello World!");
프로그램을 처음 배울 때, 불문율 처럼 구현하는 단어가 바로 Hello World! 이다. 나 또한 이러한 불문율에 따라 Java 언어의 이론 정리를 시작하려고 한다.
System.out.println("Hello World!");
위의 출력값은 Hello World! 이다. 이를 토대로 유추할 수 있는 정보는 자바에서는 줄바꿈(다른 명령)의 구분을 ; 를 통해 한다는 것, 출력하는 값에 대한 정보는 “ “ 안에 포함된다는 것, 글자 출력에 대한 명령어는 System.out.println 이라는 것이다.
(자바를 처음 배울때, 여러차례 다른 방법을 시도하였으나 앞에 System.out.이 빠지면 명령어가 출력되지 않는다.)
2. main 함수
모든 프로그램의 시작은 main 함수를 출발점으로 둔다. 함수는 주어진 값에 따라 어떠한 동작을 구현하는 것을 말한다.
함수는 그다지 어려운 개념이 아닌데, 중학교때 배우는 함수 f(x) = y 와 프로그램에서 말하는 함수는 본질적으로 동일하다. 프로그램도 결국 입력되는 x 값에 따라 y라는 결과가 변화하는 것이다. (변화를 다르게 말하면 기능이 구동된다는 것이다.)
자바에서는 이러한 함수를 통해 기능을 구현한다. 사실 자바만이 아닌 모든 프로그램에서 이와 같은 특성을 가진다.
우리가 자바를 공부하면서 제일 많이 접하는 것은 아래와 같은 main 함수이다.
public static void main(String[] args)
본래 프로그램을 공부한 많은 선배들은 이 main 함수에 대해서 바로 언급하지는 않는다. 하지만 나와 같이 정보를 접하면 궁금증에 잠을 못이루는 사람도 분명 있을 것이다. 정확하게 이해되지 않는 정보를 종합하면서 공부한 결과 main 함수는 다음과 같은 특성을 가진다.
public static void main(String[] args)의 특성
- main 함수를 통해 해당 프로그램의 규칙을 확인할 수 있다.
- 애플리케이션을 구동하면 main 함수가 가장 먼저 구동된다.
- public은 접근 권한을 말하는데 Private > Protected > Public 순으로 권한이 다르다. 해당 객체를 참조할 수 있는 권한에 따라 접근이 불가능할 수도 있다.
- static은 정적 함수를 의미하는데 해당 객체는 java가 컴파일 되는 순간 정의된다. 그 후, static이 아닌 객체가 정의되는 순서로 진행된다. 이러한 특성에 따라 static 객체는 static이 아닌 객체를 호출할 수 없다.
- void는 값을 되돌려 주지 않는다는 의미로 함수로 이해하자면 f(x) = y 라는 형식에서 x를 입력했을 때, y만 출력하고 멈추는 상태를 말한다. 복합적인 함수식으로 이해할때 f(z)=f(x)+y라고 한다면 f(x)의 함수가 처리된 후에 f(z)를 처리해야한다. void는 이러한 f(x)의 계산뒤에 f(z)를 계산하도록 값을 돌려주지 않는다.
- String[] args 는 해당 언어의 출력값을 말하는데 String[]은 문자열(배열)을 의미한다. 간단히 말하자면 main 함수의 구조에 따라 문자열 데이터들을 수행한다는 것이다. 이를 이해하려면 함수와 변수 등 다양한 기본지식이 필요하여 해당 내용은 추후 자세히 다뤄질 예정이다.
물론 이러한 6가지의 특성과 내용을 바로 이해할 수는 없다.
현재 가장 좋은 이해 내용은 위의 구문이 '함수'라는 것과 이 함수가 '객체'라는 것이다.
public class Sample {
public static void main(String[] args) {
args = new String[3]; //3개의 저장공간을 가진 배열 초기화
args[0] = "Hyun 의"; //배열의 첫번째 공간에 데이터입력
args[1] = "즐거운"; //배열의 두번째 공간에 데이터입력
args[2] = "자바공부"; //배열의 세번째 공간에 데이터입력
System.out.println(args[0]);
System.out.println(args[1]);
System.out.println(args[2]); }
}
/*
Hyun의
즐거운
자바공부
*/
3. 데이터의 세부 기입
프로그래밍 언어는 세세한 부분까지 각각 지정해야만 정보를 올바르게 출력할 수 있다. 컴퓨터는 자율적으로 움직이지 않는다. 기계어의 명령에 따라 전류의 양으로 동작을 구현한다. 결국, 올바르지 않은 명령은 컴퓨터가 잘못된 기계어로 받아들인다는 것이다.
이에 따라 프로그래밍에서 모든 명령어와 구문은 '괄호의 지정과 열고 맺음', '따옴표의 열고 맺음', 세미콜론(;)으로 구문 구분이 정확해야만 한다.
4. 주석 처리
이클립스에서 // 이하는 주석이나 첨언같은 개념이다. 프로그램에 대한 설명이나 정보가 필요할 때 사용한다. /* 이하는 여러 줄을 기입할 때 주석처리하는 것으로 마지막 맺음을 */로 지정할 수 있다. 내용을 작성한 뒤에 Ctrl+/ 를 누르면 주석으로 지정된다.
//이것은 자바의 기초입니다.]
/*
이 사이의 구문은 모두 주석 처리됩니다.
*/
주석은 프로그래밍을 진행하면서 사용자 혹은 같이 협업하는 구성원에게 전달할 내용을 작성하는 것이다. 물론 나와 이글을 읽는 사람에게 주석은 공부하는 도구로 사용된다. 프로그램 구동에 영향을 주지 않기 때문에 적절하게 사용해주는 것이 중요하다.
'Java > 기본 이론' 카테고리의 다른 글
[JAVA] Chapter 06. 데이터 영역의 이해 (0) | 2021.04.23 |
---|---|
[JAVA] Chapter 05. 변수 - 데이터 타입과 형변환 (0) | 2021.04.23 |
[JAVA] Chapter 04. 데이터의 기본이해 (0) | 2021.04.23 |
[JAVA] Chapter 03. 변수와 자바 기초 문법 (0) | 2021.04.22 |
[JAVA] Chapter 01. Java와 프로그래밍 (0) | 2021.04.21 |