2016-07-23 2 views
2

모든 wrappers 클래스 (Number 클래스의 하위 클래스)에있는 toString() 메서드는 number를 매개 변수로 전달하지만 객체를 호출 할 때는 정적이 아닌 이유는 무엇입니까? Float 클래스처럼
: -
객체에 호출 할 때 수Float 클래스 toString 메서드

static String toString(float num) 

을 통과 : -

String toString() 

답변

2

그들은 서로 다른 두 가지 방법이 있습니다.

1. 정적 메소드

public static String toString(float f) 

그렇게하지 인스턴스 클래스에 연관되며, 정적 인 방법. 인스턴스를 호출 할 필요가 없습니다. 따라서 정적 방법 Integer.toString(f)


2.

public String toString() 

인스턴스 메소드가되도록 클래스의 인스턴스와 연관된다 인스턴스 메소드는 클래스 자체 예컨대 수행하여 정적이라고 . 인스턴스를 호출해야합니다.


, 당신의 질문에 대답 우리는 정적 toString(myLong) 방법은 무엇을 할 수있는 인스턴스 메서드를 가질 수 있도록하고 싶습니다 가정합니다. 이런 식으로 , 우리가 그것을 할 수 : myLong.toString(myLong)

그것을 달성하기 위해, 원래 정적 방법은 두 가지 종류로 제공되어 있어야합니다 : 정적 수정없이 정적 수정과, 다른 하나 (인스턴스 메소드)를 하나하면서 인스턴스 메소드는 해당 인스턴스의 상태를 사용하여 toString()을 수행하지 않습니다.
왜 인스턴스 메소드를 작성해야합니까?