2016-05-13 92 views
-1

好的,所以我一直在網上搜索一個小時左右,但是我還沒有找到適合我的計算機科學課的解決方案。所以,我有兩個文件夾,讓我們說folder1和folder2,並在這些文件夾中我有.java文件。在folder1中我有folder1.java文件,而在folder2中我有folder2.java文件。從不同文件夾導入java文件?

在folder2.java我只有方法,所以它看起來是這樣的:

class folder2{ 
    public static String ........ 
    //here are all of the methods 
} 

而在folder1.java我的folder2.java這些方法的執行:

class folder1{ 
    public static void main(String[] args){ 
     executeMethodFromFolder2JavaFile(); 
    } 
} 

我怎麼能這樣做?

+2

你會發現閱讀包,罐子和類路徑很有用。 –

回答

1

您所遵循的流程有問題。這不應該這麼難。也許你正在遵循錯誤的教程或錯誤的原則。我藉此機會一勞永逸地澄清這一點。

請注意,示例代碼應該是示例性的。沒有必要急於寫一些東西來快速完成。具有諷刺意味的是,當你這樣做時,你最終會花更多的時間。

首先,您應該注意名稱:類,方法,字段,變量和包的名稱(花費一些時間在它們每一個的意思上)。這不是任何形式的誡命,而只是一種便利。規則並不複雜,實際上非常簡單:

  1. 命名類,就像你用大寫(第一個字符大寫形式)名稱命名物理實體一樣。畢竟,Java是一種主要促進面向對象思維的編程語言。在你抽象出實體之後,你可以清楚簡單地命名它們。例子有:EmployeeStudentFishSquareCityStatePerson
  2. 名稱作爲方法和行爲變量作爲臨時的東西。這些名稱應以小寫字母開頭。方法名的實例是walkrundrawreadwrite等字段和變量名的實例是colorstateready等稱爲循環變量的變量應該命名爲ijk

請注意,您會發現存在這些違規行爲(例如,使Java可執行類的唯一方法名爲main,但我們只是接受這種明顯的異常而沒有怨恨)。

現在,將它應用到您的案例中,讓我們從兩個類ShapePainter開始。前者表示後者可以的形狀,例如,draw。沒有必要立即從包裝開始。 我將在以下示例中使用Unix語法:

  1. 打開編輯器。創建一個名爲Shape.java的文件並添加內容。
  2. 在您的計算機上的相同文件夾上,創建另一個名爲Painter.java的類。
Shape.java 

public class Shape { 
    public void draw() { 
     System.out.println("Shape#draw"); 
    } 
} 

Painter.java 

public class Painter { 
    public static void main(String[] args) { 
     Shape shape = new Shape(); 
     shape.draw(); 
    } 
} 

就是這樣。編譯Painter.java並運行它:

  1. javac Painter.java
  2. java畫家
➜ /tmp javac Painter.java 
➜ /tmp java Painter 
Shape#draw 

現在介紹的軟件包。讓我們把Painter放在一個名爲的演員和Shape中的東西。簡而言之,軟件包是文件系統上的文件夾。它們具有邏輯上將功能作爲模塊組合的用途。

  1. 的mkdir件事演員
  2. MV Shape.java事情
  3. MV Painter.java演員
➜ /tmp cat thing/Shape.java actor/Painter.java 
package thing; 
class Shape { 
    public void draw() { 
     System.out.println("Shape#draw"); 
    } 
} 
package actor; 
import thing.Shape; // need to import Shape from thing package now 
class Painter { 
    public static void main(String[] args) { 
     Shape shape = new Shape(); 
     shape.draw(); 
    } 
} 

,我們在這兩個文件中添加適當的package行注。

  1. javac的演員/ Painter.java - 這是因爲我們移動Painter.java到命名actor。請注意,javac足夠聰明,可以找出Shape.java的位置(它現在位於當前文件夾的名爲thing的子文件夾中)。
  2. java actor.Painter - 由於該類現在位於名爲actor的包中,因此您必須告知java才能運行它。
`Shape#draw` 

這是爲什麼難追開始與?當然,你應該很快學會使用一個好的IDE for Java。如果要有效地使用Java進行編碼,則必須使用IDE。

+0

非常感謝你,我仔細閱讀了你的評論,我想我現在就明白了。謝謝你的幫助! –