2016-05-13 109 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

非常感谢你,我仔细阅读了你的评论,我想我现在就明白了。谢谢你的帮助! –