본문 바로가기
Programming/Node.js

Java Class - public static void main(String[] args)

by BTC_신지웅 2022. 10. 7.

베하~~안녕하세요 BetterMonday 팀 입니다. 오늘은 Java class의 가장 기초에 대해서 간단하게 알아보겠습니다!! 그럼 레츠꼬!

 


클래스란?

사물 하나 하나를 기능별로 묶어서 사용하는것. 각 클래스 안에서 역할에 따라 각 클래스의 기능을 서술해 나감.

자바에서는 어떤 프로그래밍이든 클래스안에 속해있습니다.

 

다른 클래스에서 다른클래스를 선언하여 사용할 수 있습니다.

public class 클래스이름{
	public static void main(String[] args){
    //프로그래밍 시작 지점
    }
}

다음과 같이 사용할 수 있습니다. 

자바의 모든 프로그램은 위와 같이 public static void main(String[] args) 함수로 시작합니다.

왜 모든 코드가 위의 구문으로 실행되는지 알아보겠습니다.

 

BeckendApplication이  public static void main(String[] args) 로 시작되는 모습

 


public

제한자 부분입니다. 모든 함수의 앞에는 이 함수를 어디에서 접근할 수 있는지 범위를 지정할 수 있습니다.

제한자는 public,private,protected 종류를 지정할 수 있지만, main 함수만은 public을 지정하여야 합니다.

 

main 함수는 모든 실행프로그램의 기본이 되는 함수여야 합니다.

기본이 되는 함수이기 때문에 어디에서나 접근이 가능해야 합니다.

 

private는 해당 클래스에서만 접근이 가능하고 protected 는 같은 패키지 내에서만 접근이 가능합니다.

main 함수의 제한자가 public이 아니라면 main 함수에 접근하지 못하는 클래스가 있을 수 있고,

이런경우가 발생하면 안되기 때문에 public으로 선언이 되어야 합니다.


static

자바는 변수나 함수를 메모리에 할당하는 방법이 2가지가 있습니다.

첫번째는 static 영역에 선언하는 것이고, 다른 하나는 heap 영억에 선언(new 연산자) 하는 것 입니다.

static heap
메모리 할당 기준 프로그램이 실행되는 순간 연산이 실행되는 순간
메모리 정리 기준
(Garbage Collector)
정리 대상 아님 Garbage Collector에 의해 정리

main메소드는 위에서 말했듯이 프로그램에 없어서는 안되는 기본 함수 입니다.

 

이 함수가 Garbage Collector 에 의해 메모리에서 정리되면 프로그램이 죽습니다.

따라서 static으로 선언하여 메모리에 항상 상주하도록 설정합니다.


void

void는 "함수가 끝날 때 리턴값이 없다" 라는 의미입니다.

일반 함수는 void를 사용해도 되고 int,char 등 다른 타입을 사용해도 문제 없이 동작합니다.

하지만 위에서도 말했듯이 main 함수가 종료되면 프로그램이 종료됩니다. 프로그램 자체가 종료 되기 때문에, 

return 값의 의미를 지닐수가 없습니다.

 

반면, 일반함수의 경우 정상적 혹은 비정상적인 경우 리턴값을 변수에 담아 다음 단계를 진행할 수 있습니다.

그래서 main 함수는 void를 의무적으로 사용해야 하고 return값을 가지기 위해 void 대신 다른 타입을 사용하는 경우 에러가 발생합니다.

main

자바의 시작은 main 함수명으로 시작해야 합니다. 이것은 규칙이기 때문에 설명을 생략하겠습니다.


String[] args

args 문자열을 배열로 사용하겠다 라는 의미입니다.

args 는 변수명이기 때문에 꼭 args 가 아니어도 상관은 없으나, String[] args 구문 자체를 뺄 수는 없습니다.

 

그러나 main 함수는 프로그램 실행 시 처음으로 수행되는 함수이기 때문에, 외부로부터 값을 입력 받을 수 있어야 합니다.

프로그램 내부에서 값을 호출할 수가 없으며, 이렇기 떄문에 항상 문자열 인자를 받게 됩니다.


위와같이 자바 클래스에 대해 간단하게 살펴보았는데요, 클래스는 자바 프로그래밍의 아주 중요한 기초이니 꼭 알아놓도록 합시다~~ 그럼 다음주에 만나요 베바~~~~~~~~~~~~~~~~~~

 

'Programming > Node.js' 카테고리의 다른 글

[JAVA] this  (0) 2022.10.11
[JAVA] 변수와 메서드  (1) 2022.10.11
[JAVA] HashMap  (0) 2022.09.14
Javascript-간단한 실행하기  (1) 2022.09.08
Javascript 개요  (3) 2022.09.02

댓글