2012-09-05 5 views
1

은 내가 파이썬에서 그것을 사용하는 것처럼, 자바 방법을 쓰고 싶어하지만, NUM의 주소 intead를 인쇄합니다 :python과 같은 인쇄 방법을 작성하는 방법은 무엇입니까?

내가 인쇄를 사용할 수있다 (1, 2 :

다음은 코드입니다 , 3) 또는 print (obj [])를 사용할 수 있지만 정수 [] num = {1,2,3,4,5}를 사용하면 을 인쇄 할 수 없습니다 (출력은 정확합니다)

어떻게 파이썬처럼 인쇄 (int [])?

public class Print { 


     public static void print() { 
      System.out.println(); 
     } 


     public static void print(Object... obj) { 
      for(Object c:obj){ 
       System.out.print(c); 
       System.out.print(" "); 
      } 
      System.out.println(); 
     } 

     public static void print(Object obj) { 
      System.out.println(obj); 
     } 

     public static void main(String[] args){ 
      int[] num={1,2,3,4,5}; 
      print(num); 


     } 

    } 
+4

찾고있는 출력 샘플을 표시 할 수 있습니까? –

+0

print (num); 출력 : 1 2 3 4 5 – user1648947

+0

파이썬의 인쇄 방법과 비슷합니다. – user1648947

답변

1

배열의 내용을 표시하려면, 당신은 사용할 수 있습니다

System.out.println(Arrays.toString(num)); 

출력 :

[1, 2, 3, 4, 5] 

가 원시적 배열 int[]은 당신이 "주소"를보고있는 이유가된다 첫 번째 print 메소드에서 사용 된 객체는 아니지만 Object[]입니다. 따라서

public static void print(Object obj) 

이 호출됩니다.

작동하는 첫 번째 방법을 얻으려면, 당신은 같은 것을 사용하는 것 :

public static void print(int[] nums) { 
    System.out.println(Arrays.toString(nums)); 
} 
+0

인쇄 방법으로 쓰기를 원합니다. – user1648947

+0

'int []'은 객체 배열이 아닌 단일 객체이므로 세 번째 메소드가 호출됩니다. 내 업데이트에서'print'에 대한 제안을했습니다. :) – Reimeus

0

print(Object... obj)는 기본적으로 print(Object[] obj)입니다 :

public static void print(int[] nums { 
    for (int num : nums) { 
     System.out.print(num); 
     System.out.print(" "); 
    } 
    System.out.println(); 
} 

또는 위의 출력 형식이 허용하는 경우

. Object[]을 전달하지 않으면 대신 print(Object obj)이 사용됩니다. int은 기본 요소이며 이 아닌Object에서 상속되므로 int[]이 아니며Object[]입니다. 래퍼 클래스 Integer을 사용하고 Integer[]을 만들거나 print(int[] ints)을 구현해야합니다.

print(1,2,3)은 인수가 자동으로 Integer으로 변환되기 때문에 작동합니다.

+0

고맙습니다. java의 모든 클래스가 Object에서 상속 받았다고 생각했습니다. – user1648947

+0

@ user1648947 그건 사실입니다. 모든 ** 클래스 **는 Object에서 상속합니다. 그러나'int'와 같은 타입은 클래스가 아니며 ** 프리미티브 **입니다. –

관련 문제