자바/자바 입문 공부일지

자바 기초 공부 일지 14. System.out.println, public static void main(), static 초기화 블록

Tomitom 2022. 10. 27. 12:37
반응형

 

이제 클래스 변수와 인스턴스 변수, 클래스 메소드와 인스턴스 메소드를 배웠으니 

지금까지 의심없이 사용해왔던 System.out.println(" "); 을 보다 자세하게 살펴볼 수 있습니다. 

 

자바에서 제공하는 패키지 표준 라이브러리

 

 

● import java.lang (자바 랭귀지) 는 자바의 기본 기능이 내제되어 있는 패키지(표준 라이브러리) 이므로 

import 를 작성하지 않아도 자동으로 적용이 됩니다. 

 

System.out.println(...) ;    

 

System -> 은 패키지에 묶여있는 클래스 이름

out-> 은 클래스 변수 이름  (출력관련 참조 변수 그 안에는 println 이라는 메소드가 있습니다.) 

println -> 은 out 이 참조하는 인스턴스 메소드 

 

 

public static void main(String[] args) {

static 은 인스턴스 생성과 관계없이 가장 먼저 호출 될 수 있도록 만든 메소드 

public 은 메인 메소드의 호출명령은 외부로부터 시작되는 명령이므로 일종의 약속처럼 붙여주는 것 입니다.

(String[] args) {  은 기본 메소드에는 괄호에 전달하는 인수가 있기 때문에, 자바 시스템에서 데이터를 전달하고 싶을 경우에 이것을 사용할 수 있습니다. 일종의 약속처럼 붙여줍니다. 

 

 

● static 의 기본 용도는 클래스 멤버로 선언하여 특징을 부여하는 것입니다. 

static에 대해서는 이전 포스팅에서 자세하게 본 적이 있어요. 

 

https://blue-dot.tistory.com/53

 

자바 기초 공부 일지 13. 클래스 변수와 인스턴스 변수, 지역 변수, 클래스 메소드와 인스턴스 메

● 필드 field 란 클래스에 포함된 변수들을 의미합니다. 필드 안에서 변수들은 클래스 어디에 위치하는지에 따라  클래스 변수(static 변수, 정적 변수), 인스턴스 변수, 지역 변수로 나뉩니다. cla

blue-dot.tistory.com

1. 한 번 만들어지고 끝이고, 

2. 모든 객체가 공유하며 

3. 접근 방법에 차이를 만듭니다. 

 

static 변수를 처음에 생성할 때 초기화를 하지 않고 이후에 초기화를 할 때

클래스 변수가 초기화될 때 함께 처리할 내용을 선어나는 블록을 만들어 주면 됩니다. 

아래의 예제를 참고해주세요. 

 

import java.time.LocalDate; //시간을 발췌하는 클래스 현지의 날짜 참조 변수를 만들고 

public class dataTest {
		static String date;
		
		// 클래스 변수가 초기화될 때 함께 처리할 내용을 선언하는 블록
		
		static {
			LocalDate nDate = LocalDate.now();
			date = nDate.toString();
		}
		
		public static void main(String[] args) {
			System.out.println(date);

}

 

자바 기본 라이브러리에 있는 현지 날짜 참조 클래스를 참조해서 

static {
LocalDate nDate = LocalDate.now();  // 현재의 시간을 확인해서 해당 값으로 초기화를 합니다. 
date = nDate.toString();
}

 

즉 static 이라는 이름만 가진 { } 코드 블록을 만들어 줍니다.

인스턴스 생성과 관계없이 static 변수가 메모리 공간에 할당될 때 실행이 됩니다. 

 

다만 실질적으로 클래스 static 변수는 생성과 동시에 초기화하는 것이 일반적이기 때문에 

자주 쓰이지는 않는다고 합니다.. 

반응형