Java에서 정적 메서드 사용

Rashmi Patidar 2023년10월12일
Java에서 정적 메서드 사용

Java에서 static 키워드는 클래스의 인스턴스를 인스턴스화하지 않고 메서드 또는 변수를 호출합니다. 인스턴스 변수를 만들 필요가 없으며 클래스 이름을 사용하여 멤버 변수 및 메서드를 직접 호출할 수 있습니다.

이러한 공개 메서드의 예는 main 메서드입니다. 함수는 이 명령을 호출하기 위해 어떤 객체도 필요로 하지 않습니다. 따라서 프로그램 실행은 메인에서 시작됩니다.

정적 메서드 또는 변수는 개체 대신 클래스에 속합니다. 정적 메서드를 호출하기 위해 클래스의 인스턴스를 만들 필요가 없습니다. 정적 멤버는 정적 변수에 액세스하고 동일한 변수의 값을 변경할 수도 있습니다.

정적 메서드 내부의 코드는 변경될 가능성이 적습니다. 또한 정적 메서드를 재정의할 수 없습니다. 코드는 변경될 가능성이 적으므로 함수에서 추출해야 합니다.

정적 변수를 통해 얻을 수 있는 이점은 다음과 같습니다.

  1. 정적 변수를 사용하면 프로그램 성능이 향상됩니다. 일단 생성되면 필요할 때 직접 주입됩니다.
  2. 메소드 이름과 함께 new 키워드를 추가할 필요가 없을 때 메소드 호출이 더 쉬워집니다. 대신 클래스 이름이 메서드를 호출하는 데 사용됩니다.

다음은 Java에서 static을 사용하는 방법을 보여주는 프로그램입니다.

public class Main {
  public static void main(String[] args) {
    College clg = new College();
    clg.display();
    System.out.println(clg.clgName);
    System.out.println(College.getName());
  }
}

class College {
  static String name = "IJK";
  String clgName = "IIT";

  static String getName() {
    //        return clgName;
    return name;
  }

  public void display() {
    System.out.println("I am in College");
  }
}

위의 코드 블록에는 정적 메서드와 정적 변수의 사용이 있습니다.

이 코드는 StaticMethodRepresentation이라는 이름의 공용 드라이버 클래스와 공용이 아닌 College 클래스를 생성합니다. College 클래스는 정적 및 비정적 멤버를 모두 보유합니다. 드라이버 함수는 new 키워드를 사용하여 College 클래스의 인스턴스를 생성하려고 시도합니다. new 키워드는 College 클래스의 공개 생성자를 호출합니다.

public 생성자가 정의되어 있지 않기 때문에 JVM은 클래스의 기본 생성자를 호출합니다. 클래스 인스턴스는 College 클래스의 공개 display 기능을 호출하는 데 사용됩니다. 호출되어 현재 문자열을 인쇄합니다.

마찬가지로 해당 클래스의 인스턴스를 사용하여 해당 멤버 변수에 액세스할 수 있습니다. 그러나 정적 함수에 액세스하기 위해 새 클래스 인스턴스를 만들 필요가 없습니다. 대신 클래스 이름을 사용하여 호출할 수 있습니다. 따라서 마지막 print 문에서 클래스 이름은 정적 함수를 호출합니다.

함수 정의에는 주석 처리된 줄이 있습니다. 라인은 클래스의 비정적 멤버에 액세스를 시도합니다. 여전히 정적 구성원은 정적 구성원에만 액세스할 수 있습니다. 따라서 액세스할 수 없습니다. 따라서 함수에서 정적 문자열이 반환됩니다.

정적 키워드 사용을 보여주는 위 코드 블록의 출력은 아래와 같습니다.

I am in College IIT IJK
Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn

관련 문장 - Java Method