2014-03-31 69 views
-2

這裏我創建了一個類Point的返回類型。也不要我以後寫什麼「回報」的聲明如果方法返回類型是自創類,會返回什麼?

class Point{ 
    int x=2; 
    int y=4; 

    } 

    class TwoPoint{ 

    public static void main(String args[]){ 
     Point obj1=new Point(); 
     Point obj2=new Point(); 
     System.out.println(obj1.x); 
     System.out.println(obj2.y); 

    } 

     public Point newFunction(int a,int b){ 
     } 


} 
+1

它會返回一個Point,就像你告訴它的那樣。返回後放一個Point。儘管在這裏看起來好像你正試圖在另一個函數(main)中定義一個函數,這是不正確的。 –

+1

是什麼?在java中的所有東西都返回** Object **,**原始類型**或** void **。 – ruhungry

+0

此代碼不會編譯。 1. Java不允許方法內的方法。 2.即使假設'newFunction'在'main'之外,它也不會返回'Point'的實例(它有一個空的體)。爲了得到一個有意義的答案,請用一個很好的例子來更新您的問題,並清楚地說明您的問題 – Nivas

回答

0

這就是Java的一個很基本的概念,或任何真正的面向對象編程(OOP)語言,您可以在幾乎所有的書發現它和教程在那裏。

但是因爲問題在這裏永遠在互聯網的歷史品牌,我會提供一個答案。

你的方法:

public Point newFunction(int a,int b){ 
} 

必須返回一個Point對象,就像你告訴它,當你設置返回類型爲指向。

這意味着它將返回一個Point對象。一個對象可以包含各種數據和方法等,所以你不僅僅返回一個intchar或任何東西。

我已經修改了你的代碼,所以它實際上做了一些事情,這是你如何返回一個Point(或任何其他對象)的例子以及這意味着什麼。

class Point{ 

    int x; 
    int y; 

    public Point(int a, int b){ 
     x = a; 
     y = b; 
    } 
    public int getX(){ 
     return x; 
    } 
    public int getY(){ 
     return y; 
    } 
    } 

    class TestCode{ 

    public static void main(String args[]){ 
     Point obj1 = new Point(1, 2); 
     Point obj2 = newFunction(); 
     System.out.println(obj1.x + " " + obj1.y); 
     System.out.println(obj2.getX() + " " + obj2.getY()); 
    } 

     public static Point newFunction(){ 
      return new Point(9, 9); 
     }  
} 

這創建了obj1及其具有x和y值的新Point。然後它創建obj2並將其設置爲等於myFunction()返回的值。由於我們知道myFunction()必須返回一個Point對象,因此它可以工作。

然後myFunction()創建一個新的Point對象並使用值9和9.然後打印值以查看它們是如何受到影響的。