백엔드

TIL 정리_54

ran4 2022. 4. 10. 23:35

 

public static void main(String[] args) 코드 분석

 

public : 접근제어자이며 public은 참조에 제한이 없다

다른 접근 제어자로는 private, (default/아무것도 안 붙을때), protected가 있다

 

static : 메서드 앞에 static이 붙어있으면 클래스 메서드임을 의미한다

클래스 메서드는 객체를 생성하지 않고도 호출이 가능하다

-> 인스턴스(객체)와 관계없는 메서드를 클래스 메서드로 정의한다 

 

void : 반환값이 없는 경우 사용한다 //main 메서드는 반환값이 없다 

반환값이 있는 경우 반환값의 타입을 적는다(int, String 등)

 

main : 실행될 메인 메서드를 의미한다

 

String[] : String형의 배열을 의미한다

 

args : 배열의 이름을 의미한다 

 

 

static (클래스 메서드)

메서드 중에서 인스턴스 변수나 인스턴스 메서드를 사용하지 않는 메서드를 클래스 메서드로 정의한다

 

특징

  1. 클래스를 설계할 때, 멤버변수 중 모든 인스턴스에 공통으로 사용하는 것에 static을 붙인다
  2. 클래스 변수(static 변수)는 인스턴스를 생성하지 않아도 사용할 수 있다.
  3. 클래스 메서드(static 메서드)는 인스턴스 변수를 사용할 수 없다 
  4. 메서드 내에서 인스턴스 변수를 사용하지 않는다면, static을 붙이는 것을 고려한다

 

-> 클래스의 멤버변수 중 모든 인스턴스에 공통된 값을 유지해야하는 것이 있는지 살펴보고 있으면, static을 붙여준다

작성한 메서드 중에서 인스턴스 변수나 인스턴스 메서드를 사용하지 않는 메서드에 static을 붙일 것을 고려한다

 

-> main메서드에 static이 붙는 이유는 특징 2번의 이유 때문인데, 

static이 붙은 변수(클래스 변수)는 클래스가 메모리에 올라갈 때 이미 자동적으로 생성되어있기 때문에

실행시 1순위로 실행된다

 

'백엔드' 카테고리의 다른 글

TIL 정리_53(TDD)  (0) 2022.04.09
TIL 정리_52(OOP)  (0) 2022.04.08