2012-07-04 5 views
0

자바 또는 상속하지 않고 클래스의 객체를 생성하지 않고 동일한 패키지에서 클래스 이름으로 메소드를 호출 할 수동일한 패키지의 다른 클래스에서 한 클래스의 정적 메서드를 호출 할 수 있습니까?

public class BoxWeight /*extends Box*/{ 
    public static void main(String[] args) { 
     /*BoxWeight myCat = new BoxWeight();*/ 
     /*Box myAnimal = myCat;*/ 
     Box.testClassMethod();<------------ why this possible 
     /* myAnimal.testInstanceMethod();*/ 
    } 
} 

public class Box /*extends Bicycle*/{ 

    public static void testClassMethod() { 
     System.out.println("The class" + " method in Box."); 
    } 
    public void testInstanceMethod() { 
     System.out.println("The instance " + " method in Box."); 
    } 
} 

내 질문하지이 내 qestion이가 "에서 클래스 이름으로 메소드를 호출 할 수 있습니다 보인다 동일하거나 자바 상속하지 않고 클래스의 객체를 생성하지 않고 패키지 "하지만 난 확인하려면이 문제를 해결해야이 가능 여부

예를 들어
+0

정확히 무엇이 질문입니까? –

+0

Im 당신이 묻고있는 것이 무엇인지 모르겠지만, 객체가 아니라 클래스에서 메소드를 호출하려는 것 같습니다. 어떤 경우에는 정적 메소드에 대해 말하고있는 것입니까? –

+0

내 질문이 내 qestion 것 같다이 "클래스에서 클래스 이름으로 메서드를 호출 할 수있는 클래스 또는 Java 상속없이 개체를 만들 수 있지만"이 수정하려면이 가능한지 여부를 확인하려면 –

답변

1

당신은 방법이 static를 선언 된 경우 구문 ClassName.methodName()있는 방법을 호출 할 수

입니다
class ClassName { 
    static void methodName() { 
    //...// 
    } 
} 

정적 클래스 멤버에 대한 추가 정보는 Java Tutorials에서 찾을 수 있습니다.

0

정적 메서드를 만든 다음 클래스 이름으로 해당 메서드를 호출 할 수 있습니다.

class A { 
static void display(){ 

    System.out.println("Called.."); 
} 
} 

동일한 패키지에서는 다음과 같이 부를 수 있습니다.

A.display(); 
관련 문제