一直在阅读核心Java基础(Horstmann/Cornell)第9版,但是在第5章前后的某个时候,练习文件和示例代码都停止了一个“主”方法,但是这本书似乎应该编译和运行等等.
非常混乱,因为java应用程序需要一个主程序来运行。任何熟悉这些文字的人都能给我一些启示。(现在觉得自己很蠢:)
发布于 2015-04-30 02:46:35
许多库是在没有作为独立应用程序运行的情况下开发的。尤达-时间就是一个这样的例子。它是一个库,可以用来简化日期和时间数据的操作。诚然,我链接的源存储库中确实有主要方法,但这是因为它们在其单元测试中使用。
核心Java基础中第五章的重点是引入类继承,使车辆可以是船的超类,可以是帆船的超类,也可以是太阳鱼的超类。这本书可能有一个例子,比如Person > Employee > Manager,最终在同一章中,您可能会看到像TestManager这样的测试类,它实际上有一个使用Manager的主要方法。
假设我写了一本类似的书,并通过简化的Person示例展示了这一点。我在Eclipse中创建了一个项目,并称其为人员。我添加了一个包org.company,并在该包中添加了以下3个类:
Person
package org.company;
public class Person {
public String name;
public Person() {
}
}雇员
package org.company;
public class Employee extends Person {
public String employeeID;
public Employee() {
}
}管理器
package org.company;
import java.util.ArrayList;
import java.util.List;
public class Manager extends Employee {
public List<Employee> subordinates ;
public Manager() {
subordinates = new ArrayList<Employee>();
}
}现在我可以假设您可以创建自己的项目并合并我编写的这些类。我给我的人起了名字的事实是无关紧要的。调用您的MyTest1,然后甚至不需要创建一个包,并添加一个名为TestManager的类。只要您( A)将我的类放在项目组织/公司/人员、雇员、经理或B中的两个文件夹中,删除每个文件夹中的package org.company并将它们包含在新的TestManager类旁边,那么您应该能够在测试中实例化它们如下:
TestManager
import org.company.Employee;
import org.company.Manager;
public class TestManager {
public static void main(String[] args) {
Employee bill = new Employee();
bill.name = "Bill";
bill.employeeID = "1";
Employee george = new Employee();
george.name = "George";
george.employeeID = "3";
Manager jill = new Manager();
jill.name = "Jill";
jill.employeeID = "1234";
jill.subordinates.add(bill);
jill.subordinates.add(george);
//foreach
for (Employee emp : jill.subordinates) {
System.out.println(emp.name);
}
}
}Eclipse中的文件现在看起来如下所示。

您需要考虑的一个未来任务是从互联网(如Joda-Time )获取一个库,并通过将它添加到构建路径来查看如何将它合并到您的项目中。
发布于 2015-04-30 04:05:12
类将在没有main函数的情况下编译,但是当您想要执行同一个类时,问题就出现了。
例如: A类、B类和B类都有方法,但没有main方法,那么您可以在没有main方法的情况下调用程序。JVM需要一个点火点来通知从哪里开始。对于相同的示例,如果类A有main方法,则作为其他方法没有。可以从A类调用B类和C类的方法,因为JVM从A启动,并顺利地执行其他类方法。
https://stackoverflow.com/questions/29957908
复制相似问题