Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

자바 정적

자바 정적 키워드를 사용하는 방법

Java에서 클래스로 작업할 때 일반적으로 해당 멤버에 액세스하기 전에 클래스의 인스턴스를 생성해야 합니다. 그러나 클래스의 인스턴스를 생성하지 않고 클래스 멤버를 정의하려는 상황이 발생할 수 있습니다.

여기서 Java static 키워드가 사용됩니다. Java static 키워드는 클래스의 인스턴스를 생성하지 않고도 액세스할 수 있는 클래스 멤버를 정의하는 데 사용됩니다.

이 자습서에서는 Java 정적 키워드의 기본 사항과 Java 프로그램에서 이를 사용하는 방법을 예제와 함께 설명합니다.

자바 클래스

Java에서 클래스는 객체의 청사진입니다. 예를 들어 OrderCoffee라는 클래스에는 주문, 기존 주문 변경, 주문에 새 항목 추가 등 커피 주문과 관련된 모든 기능이 포함될 수 있습니다.

그런 다음 해당 클래스의 인스턴스인 개체를 만들 수 있습니다. 예를 들어 CoffeeOrder12라는 개체는 CoffeeOrder 클래스의 청사진을 사용하여 개별 커피 주문에 대한 데이터를 저장할 수 있습니다. CoffeeOrder12 개체는 CoffeeOrder 클래스 내에서 선언된 모든 함수와 메서드에 액세스할 수 있습니다. 이러한 아이디어를 시각적으로 표현하려면 이미지 1을 참조하세요.

자바 정적

이제 Java 클래스의 기본 사항에 대해 논의했으므로 Java 정적 키워드 탐색으로 넘어갈 수 있습니다.

자바 정적 메소드

클래스 메서드라고도 하는 정적 메서드는 해당 인스턴스가 아닌 클래스에 속하는 메서드입니다. 정적 메서드는 클래스에 속하므로 클래스 자체에서만 메서드를 호출할 수 있으며 클래스의 개체에서는 호출할 수 없습니다.

다음은 정적 메서드를 호출하는 구문입니다.

참가자의 81%는 부트캠프에 참석한 후 기술 직업 전망에 대해 더 자신감을 느꼈다고 말했습니다. 지금 부트캠프에 참여하십시오.

부트캠프 졸업생은 부트캠프 시작부터 첫 직장을 찾는 데까지 6개월도 채 걸리지 않았습니다.

Class.methodName();

이것이 어떻게 작동하는지 보기 위해 예를 살펴보겠습니다.

커피 가게의 주문을 관리하는 프로그램을 만들고 있다고 가정해 보겠습니다. 우리는 커피 주문을 위한 모든 기능을 저장하는 CoffeeOrder라는 클래스를 만들고 싶습니다.

우리는 바리스타의 콘솔에 새 주문 알림을 인쇄할 수 있기를 원합니다. 우리는 이 새로운 주문 알림이 커피 주문 객체의 다른 코드에 의존하지 않기 때문에 정적이기를 원합니다. 다음 코드를 사용하여 이 작업을 수행할 수 있습니다.

class CoffeeOrder {
	int createOrder() {
		// Code here
		int orderNumber = 92;
		return orderNumber;
	}

	static void printOrder(int order) {
		System.out.println("Order #" + order + " order has been placed.");
	}
}

class Main {
	public static void main(String[] args) {
		CoffeeOrder order92 = new CoffeeOrder();

		int number = order92.createOrder();
		System.out.println("Order number: " + number);

		CoffeeOrder.printOrder(number);
	}
}

코드 반환:

Order number: 92
Order #92 has been placed.

코드를 단계별로 분해해 보겠습니다. 먼저 CoffeeOrder라는 클래스를 선언합니다. CoffeeOrder에는 createOrder()의 두 가지 메서드가 있습니다. 및 printOrder() .

createOrder() 주문을 생성하고 주문 번호를 반환하는 일반 메서드입니다. printOrder() 새 주문이 접수되었음을 바리스타에게 알리는 메시지를 콘솔에 출력하는 정적 메서드입니다.

주 프로그램에서 order92라는 CoffeeOrder의 개체를 만듭니다. 이 개체는 주문 #92에 대한 데이터를 저장합니다. 그런 다음 createOrder()를 사용합니다. 메소드를 사용하여 주문 번호를 가져오고 Order number:가 앞에 오는 해당 주문 번호를 콘솔에 출력합니다.

createOrder()를 호출할 때 메소드, 우리는 order92.createOrder()를 사용합니다 . createOrder() 때문입니다. 정적 메서드가 아니므로 개체를 조작할 때 액세스할 수 있습니다.

기본 코드의 끝에서 CoffeeOrder.printOrder()를 사용합니다. 주문 번호[주문 번호] 주문이 접수되었다는 메시지를 인쇄합니다. 콘솔에. 이 메시지에서 order number 특정 주문과 관련된 번호와 같습니다. printOrder() 때문에 정적 메서드이므로 액세스하려면 CoffeeOrder(우리 클래스)를 사용해야 합니다.

order92.printOrder()를 사용하려고 했다면 (우리 클래스의 인스턴스를 호출함) createOrder()를 사용할 때와 마찬가지로 방법을 사용하면 경고를 줄 수 있습니다.

자바 정적 변수

Java의 static 키워드는 정적 인스턴스 변수를 생성하는 데에도 사용할 수 있습니다. 정적 변수는 클래스에 속하며 프로그램 실행 시작 시 한 번만 초기화됩니다.

정적 변수는 개체에 속하지 않습니다. 즉, 액세스하려면 관련 클래스를 참조해야 합니다. Java에서 정적 변수를 선언하는 구문은 다음과 같습니다.

static String COFFEE_NAME = "Espresso";

이 예에서는 COFFEE_NAME이라는 정적 변수를 선언했으며 여기에 Espresso 문자열 값을 할당했습니다.

사용 중인 Java 정적 변수를 보여주는 예를 살펴보겠습니다.

커피숍에서 주문을 처리하는 프로그램을 만들고 있다고 가정합니다. 이 프로그램은 근무 중인 바리스타의 수를 저장해야 하며, 주문이 생성되면 프로그램은 해당 주문을 해당 주문을 준비할 바리스타의 이름과 연결해야 합니다.

이 코드를 사용하여 커피 가공 프로그램을 만들 수 있습니다.

class CoffeeOrder {
	int baristasOnDuty = 2;
	static String name = "Hannah Johnson";

	public static void main(String[] args) {
		CoffeeOrder order111 = new CoffeeOrder();

		System.out.println("Baristas on duty: " + baristasOnDuty);
		System.out.println("Assigned barista: " + order111.name);
	}
}

코드 반환:

Baristas on duty: 2
Assigned barista: Hannah Johnson

코드에서 다음 두 변수를 선언합니다.

  • 바리스타 온듀티. 이것은 표준 변수이므로 우리 클래스 전체에서 액세스할 수 있습니다.
  • 이름. 이것은 정적 변수이므로 해당 값을 검색하기 위해 연결된 개체를 참조해야 합니다.

메인 프로그램에서 CoffeeOrder 클래스의 인스턴스를 만들고 그것을 order111이라고 부릅니다. 그런 다음 Baristas on Duty:라는 메시지를 출력하고 baristasOnDuty 변수의 내용이 뒤따릅니다. 이것은 표준 변수이기 때문에 클래스 이름을 참조할 필요가 없습니다.

코드의 다음 줄에서 Assigned barista:메시지를 콘솔에 출력하고 그 뒤에 주문이 할당된 바리스타의 이름을 출력합니다. 단, 바리스타의 이름은 정적 변수로 저장됩니다.

즉, 바리스타의 이름을 검색하려면 해당 변수가 연결된 개체의 이름을 참조해야 합니다. 이 경우 order111.name을 사용하여 바리스타의 이름을 검색합니다. 변수 이름이 정적이어서 order111 개체를 참조할 때만 액세스할 수 있기 때문입니다.

자바 정적 블록

Java static 키워드를 사용하여 정적 블록을 생성할 수도 있습니다. 클래스에 개별적으로 초기화해야 하는 다른 정적 변수가 있는 경우 정적 블록을 사용해야 합니다.

정적 블록은 클래스가 컴퓨터 메모리에 처음 로드될 때 한 번 실행됩니다. 다음은 Java의 정적 코드 블록에 대한 구문입니다.

static {
	// Code here
}

정적 블록이 작동하는 방식을 보여주기 위해 예제를 살펴보겠습니다. 메시지 A new order is incoming … 프로그램이 바리스타에게 주문을 할당하기 전에 콘솔에 인쇄하여 바리스타가 준비할 수 있도록 합니다. 정적 클래스를 만들어 그렇게 할 수 있습니다. 정적 클래스는 프로그램이 처음 실행될 때 실행됩니다.

다음은 앞서 언급한 메시지를 출력한 다음 바리스타에게 주문을 할당하는 정적 클래스의 예입니다.

class CoffeeOrder {
	int baristasOnDuty = 2;
	static String name = "Hannah Johnson";
	static {
		System.out.println("A new order is incoming …");
	}

	public static void main(String[] args) {
		CoffeeOrder order111 = new CoffeeOrder();

		System.out.println("Baristas on duty: " + baristasOnDuty);
		System.out.println("Assigned barista: " + order111.name);
	}
}

코드 반환:

A new order is incoming …
Baristas on duty: 2
Assigned barista: Hannah Johnson

우리 코드에서는 먼저 baristasOnDuty와 이름 변수를 초기화했습니다. 그런 다음 프로그램은 A new order is arrival ...이라는 메시지를 콘솔에 출력했습니다. 이 메시지는 정적 코드 블록에 저장되었습니다. 프로그램은 정적 블록의 내용을 실행한 후 마지막 예제의 주 프로그램과 동일한 출력을 반환하는 주 프로그램을 실행했습니다.

결론

Java 정적 키워드는 여러 용도로 사용됩니다. static 키워드를 사용하여 정적 메서드, 정적 변수 및 정적 코드 블록을 만들 수 있습니다.

이 자습서에서는 예제와 함께 static 키워드의 기본 사항과 메서드, 변수 및 코드 블록과 함께 static 키워드를 사용하는 방법을 살펴보았습니다. 이 튜토리얼을 읽고 나면 전문가처럼 Java 정적 키워드를 사용할 준비가 된 것입니다.