[Java] 클래스, 객체, 인스턴스의 차이
https://gmlwjd9405.github.io/2018/09/17/class-object-instance.html
public static void main(String[] args)
main
Java는 어플리케이션이 실행할 때 제일 먼저 main 메소드를 실행. 결국 프로그램은 main에서 시작해서 main에서 끝.
public
main에서 다른 클래스, 메소드 등을 호출에서 사용하는데 main이 접근을 허용하지 않는다면 문제! 그렇기에 넓은 범위의 접근 지정자인 public을 사용
static
static으로 선언된 것은 컴파일 시 정의되어 메모리에 호출이 된다. 그렇기에 프로그램 종료시까지 계속 유지가 된다.
그렇기에 main 메소드가 계속 살아남기 위해선 꼭 필요함.
void
반환값이 없다는 의미. main이 종료되는 시점에서 어떤 값이 반환된다 한들 그 값은 의미도 없고, 의미를 가져서도 안됨.
프로그램 종료 전에 사용되어야 정상적이니까.
String[] args
그대로 풀어보자면 String 자료형의 값을 배열로 저장하는 args라는 변수.
args는 일반적으로 이렇게 사용하는 것이지 얼마든지 다른 것들로 대체 가능.
그래서 왜 쓰냐?
맨 처음 프로그램을 실행할 때(외부에서 클래스 호출 시) 값을 받아오기 위해서 사용.
하지만 Eclipse 사용시 값을 입력해 사용하는 경우가 드물지만
예를 들어 cmd에서 'java 클래스명.class' 명령어로 클래스를 생성하고 실행하는데
'java 클래스명.class 100 200' 이런 식으로 맨 처음 프로그램을 실행하는 순간 특정한 값을 입력하고자 할 경우 사용
args[0] = 100, args[1] = 200 이렇게 저장되어 프로그램에서 사용 가능.
즉 프로그램 안에서 사용시 메모리에 저장할 공간을 미리 선언해 두는 것이라고 할 수 있음.
참고
https://javacpro.tistory.com/11 ([JAVA] 메인메소드 public static void main(String[] args) 를 이해하자)
https://m.blog.naver.com/crazydeicide/130114957734 (public static void main(String[] args)의 의미는?)
if문을 한 줄로 간단히 표현 ? :
if문에서 처리하는 연산이 하나, else문에서 처리하는 연산이 하나일 경우
int n = 40, x;
if (n > 40)
x = 100;
else
x = 0;
x = (n > 30) ? 100 : 0;
'Java' 카테고리의 다른 글
[Java] Mac - Eclipse 관련 참고 및 정리 (0) | 2020.04.22 |
---|---|
[Java] Iterator / ListIterator (0) | 2020.04.22 |
[Java] Stack, Queue 클래스 (0) | 2020.04.21 |
[Java] Collection Framework1 - List(ArrayList / Vector / LinkedList) (0) | 2020.04.21 |
[Java] BufferedReader, BufferedWriter (0) | 2020.04.07 |
댓글