Java - public static void의 의미

2021. 6. 19. 18:23프로그래밍/개인프로젝트

   public : 공공의 / static : 고정된 / void :  빈 공간

   단어에서 어느정도 유추할 수 있다

 

접근제어자

   처음에 나오는 public의 자리에는 다른 접근제어자(Access Modifier)도 들어갈 수 있다

   접근제어자는 public, protected, default, private 4가지가 있다.

생활코딩

  1. public - 어디서나 접근이 가능하다.
  2. protected - 같은 클래스와 같은 패키지 그리고 '다른 패키지지만 상속받고 있다면' 접근이 가능하다.
  3. default - 같은 클래스와 같은 패키지에서 접근이 가능하다.
  4. private - 같은 클래스에서'만' 접근이 가능하다.

static

   static은 변수나 메서드 앞에 static이라는 키워드를 붙여서 사용한다.
   이렇게 만들어진 변수나 메서드를 '클래스멤버'라고 한다.

   '클래스멤버'는 메모리의  static영역  에 할당된다.

    static영역 은 다음과 같은 특징이 있다.

  1. static영역의 데이터는 프로그램 시작부터 종료까지 유지된다.
  2. 따로 객체를 생성하지 않고 클래스 내의 모든 멤버변수에서 자유롭게 사용할 수 있다.
    → 반복사용하는 변수나 메서드를 '클래스멤버'로 선언한다면 한번의 선언으로 여러번 사용할 수 있다.
        이를 통해 메모리절약에 이점이 생기고 중복되는 코드를 제거함으로써 가독성도 좋아진다.
        하지만 가비지컬렉터의 관리영역 밖에 있기때문에 무분별한 사용시 메모리가 부족할 수 있다.

void

   1. 데이터타입이 있는 경우  return 메서드명;으로 종료해준다.

       return 메서드명;  이 없으면 구문오류 가 생기며 반환값없이 종료하려면  return 0; 을 써준다.

   2. void는 return값이 필요없는 메서드를 선언할때 붙여주는 키워드다.

       void를 사용한 메소드에 return;을 사용할 수도 있다.
       return;은 메소드를 그위치에서 종료시키는 기능이 있다.

       함수 중간에 어떠한 이유로 return하려는 경우에 필요하다.

public static int add_add(int a, int b) {
	int sum = a+b;
	System.out.println(sum);
	return sum; // return 0;
	} 
add_add(3,5); // 8 출력

//////////////////////////////////////////

public static void add_add(int a, int b) {
	int sum = a+b;
	System.out.println(sum);
    // return;
	} 
add_add(3,5); // 8 출력