본문 바로가기
자바

정적 메소드를 사용할 때

by º기록 2021. 4. 16.
반응형

정적 방법을 사용할 때 궁금해합니까?몇 개의 getter와 setter, 메서드 또는 두 개가있는 클래스가있는 경우,이 방법은 클래스의 인스턴스 객체에서만 호출 할 수있게합니다.이것이 정적 방법을 사용해야한다는 것을 의미합니까?

예:

Obj x = new Obj();
x.someMethod();

...또는:

Obj.someMethod(); // Is this the static way?

나는 오히려 혼란 스럽다!

 

해결 방법

 

하나의 규칙 - 엄지 손가락 : 아직 객체가 아직 구성되지 않은 경우 에도이 메소드를 호출하는 것이 좋습니다. "그렇다면 분명히 정적이어야합니다.

따라서 클래스 car 메소드가있을 수 있습니다.

double convertMpgToKpl(double mpg)

... 아무도 <코드> 자동차 을 만들지 않아도 35mpg가 변환하는 것을 알고 싶어 할 수 있기 때문에 정적 일 것입니다.그러나이 방법 (특정 <코드> 자동차 )의 효율성을 설정합니다.

void setMileage(double mpg)

... <코드> 자동차 가 생성되기 전에 메소드를 호출 할 수 없기 때문에 정적 일 수 없습니다.

(그건 그렇지 않으면, converse는 항상 true가 아닙니다. 두 개의 car 객체가 포함되어 있고, 여전히 정적이되기를 원하는 방법이있을 수 있습니다. 예를 들어,

Car theMoreEfficientOf(Car c1, Car c2)

이것이 정적이 아닌 버전으로 변환 될 수 있지만, 일부는 "특권"이 없다고 주장 할 것입니다. car 가 더 중요한지, 호출자가 메소드를 호출하는 객체로 <코드> 자동차 하나를 선택하도록 강요해서는 안됩니다.이 상황은 모든 정적 방법의 상당히 작은 부분을 설명합니다.

 

참조 페이지 https://stackoverflow.com/questions/2671496

 

 

반응형

댓글