从不同文件夹导入java文件?
好的,所以我一直在网上搜索一个小时左右,但是我还没有找到适合我的计算机科学课的解决方案。所以,我有两个文件夹,让我们说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();
}
}
我怎么能这样做?
您所遵循的流程有问题。这不应该这么难。也许你正在遵循错误的教程或错误的原则。我借此机会一劳永逸地澄清这一点。
请注意,示例代码应该是示例性的。没有必要急于写一些东西来快速完成。具有讽刺意味的是,当你这样做时,你最终会花更多的时间。
首先,您应该注意名称:类,方法,字段,变量和包的名称(花费一些时间在它们每一个的意思上)。这不是任何形式的诫命,而只是一种便利。规则并不复杂,实际上非常简单:
- 命名类,就像你用大写(第一个字符大写形式)名称命名物理实体一样。毕竟,Java是一种主要促进面向对象思维的编程语言。在你抽象出实体之后,你可以清楚简单地命名它们。例子有:
Employee
,Student
,Fish
,Square
,City
,State
,Person
等 - 名称作为方法和行为变量作为临时的东西。这些名称应以小写字母开头。方法名的实例是
walk
,run
,draw
,read
,write
等字段和变量名的实例是color
,state
,ready
等称为循环变量的变量应该命名为i
,j
,k
等
请注意,您会发现存在这些违规行为(例如,使Java可执行类的唯一方法名为main
,但我们只是接受这种明显的异常而没有怨恨)。
现在,将它应用到您的案例中,让我们从两个类Shape
和Painter
开始。前者表示后者可以的形状,例如,draw
。没有必要立即从包装开始。 我将在以下示例中使用Unix语法:
- 打开编辑器。创建一个名为Shape.java的文件并添加内容。
- 在您的计算机上的相同文件夹上,创建另一个名为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并运行它:
-
javac
Painter.java -
java
画家
➜ /tmp javac Painter.java ➜ /tmp java Painter Shape#draw
现在介绍的软件包。让我们把Painter放在一个名为的演员和Shape中的东西。简而言之,软件包是文件系统上的文件夹。它们具有逻辑上将功能作为模块组合的用途。
- 的mkdir件事演员
- MV Shape.java事情
- 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
行注。
- javac的演员/ Painter.java - 这是因为我们移动Painter.java到包命名
actor
。请注意,javac
足够聪明,可以找出Shape.java的位置(它现在位于当前文件夹的名为thing
的子文件夹中)。 - java actor.Painter - 由于该类现在位于名为
actor
的包中,因此您必须告知java
才能运行它。
`Shape#draw`
这是为什么难追开始与?当然,你应该很快学会使用一个好的IDE for Java。如果要有效地使用Java进行编码,则必须使用IDE。
非常感谢你,我仔细阅读了你的评论,我想我现在就明白了。谢谢你的帮助! –
你会发现阅读包,罐子和类路径很有用。 –