2008-10-21 42 views
2

在Ruby中,我經常寫許多小類,並且有一個主要類組織小傢伙完成工作。我通過書寫如何在Java中「需要」鄰居類?

require "converter.rb" 
require "screenFixer.rb" 
. 
. 
. 

位於主類的頂部。我如何在Java中做到這一點?它是「進口」嗎?

此外,有人可以爲這個問題提出一個更好的標題?

回答

6

如果你的意思是你要寫一些代碼將使用另一個類。是的,您需要使用導入語句導入這些類。

package com.boo; 

import com.foo.Bar; 

public class StackOverflow { 

private Bar myBar; 

} 
+0

你回答了quatsion!如果輔助類與Facade類位於同一個包中,我只能說私人bar myBar;我給我一個新酒吧? – Ziggy 2008-10-21 07:48:14

0

你不導入你自己在Java * .java文件。相反,你這樣做。

javac file1.java file2.java file3.java 
java file1 
1

如果這些其他類只是要你的「主」類中使用,有幾個選項要考慮不要求任何進口:

  • 你可以讓他們你的主類中的私有靜態嵌套類。
  • 你可以讓他們「包訪問」(默認 - 沒有訪問修飾符)

如果他們是公共類的其他地方,但是,你的確會需要進口(或完全限定它們無處不在,但那太糟了)。

1

你應該真的讀一點關於面向對象的編程。

你不組織小傢伙做大做工。

類包含一些數據並提供方法來以有意義的方式操縱數據。數據通常是其他類的變量,你必須聲明你從哪裏得到這些。您通過指定import語句來執行此聲明。

BTW你應該明確地創建一個類的實例來使用它,即調用類的構造方法

package com.foo; 
import com.foo.Bar; 

public class StackOverflow { 

private Bar myBar; 
    public StackOverflow() { //this is a constructor of StackOverflow class 
     myBar = new Bar(); //i'm invoking constructor of Bar class 
    } 
} 
1

如果你寫的類都在同一個包你不需要做任何特殊使用它們。如果A類想要B類的服務,那麼在A類中,你可以實例化一個B的對象並調用你想要的B的方法。

如果類在不同的包然而,或者如果您正在使用第三方類,那麼你就需要一個import語句

import package.ClasName; 

在你提到的類文件的頂部。