Java 没有 main 的练习文件?
Java exercise files without main?
一直在学习核心 Java 基础知识 (Horstmann/Cornell) 第 9 版,但是在第 5 章之后的某个时候,练习文件和示例代码都不再具有 "main" 方法,但是这本书就像他们应该编译和 运行,等等...
非常困惑,因为 java 应用程序需要 运行 的主应用程序。任何熟悉这些文本的人都可以为我提供一些启示。现在感觉很愚蠢:)
许多库的开发并不是为了 运行 作为一个独立的应用程序。 Joda-Time 就是这样一个例子。它是一个可用于简化日期和时间数据操作的库。不可否认,我链接的源存储库中确实有主要方法,但那是因为它们在其单元测试中使用。
Core Java Fundamentals 第五章的重点是介绍class 继承,这样 Vehicle can be superclass of Boat can superclass of帆船可以超class的翻车鱼。这本书可能有一个像 Person > Employee > Manager 这样的例子,最终在同一章中你可能会看到一个像 TestManager 这样的测试 class,它实际上有一个使用 Manager 的 main 方法。
假设我写了一本类似的书,并在 Person 示例的简化版本上展示了它。我在 Eclipse 中创建了一个项目,我将其命名为 Personnel。我添加了一个包 org.company
并在该包中添加了这 3 个 classes:
人
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>();
}
}
我现在假设您可以创建自己的项目并合并我编写的这些 classes。我将我的名字命名为 Personnel 是无关紧要的。将您的 MyTest1 命名为 MyTest1,然后甚至不必费心创建包,添加一个名为 TestManager 的 class。只要你 A) 将我的 classes 两个文件夹放在你的项目组织/公司/个人、员工、经理中,或者 B) 从每个文件夹中删除 package org.company
并将它们包含在你的旁边new TestManager class,那么您应该能够在测试中将它们实例化为:
测试管理器
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 中的文件现在看起来像这样。
您要考虑的未来任务是从 Internet 获取一个库,例如 Joda-Time 并通过将其添加到构建路径来了解如何将其合并到您的项目中。
Classes 将在没有 main 函数的情况下编译,但是当你想执行相同的 class.
时问题就来了
例如:
Class A, Class B 和 Class B 有方法但没有 main 方法那么你可以调用没有 main 方法的程序。 JVM 需要一个点火点来告知从哪里开始。对于同一个例子,如果 Class A 有 main 方法,而其他没有。可以从 Class A 调用 class B 和 C 的方法是很好的,因为 JVM 从 A 开始并毫无问题地执行其他 class 方法。
一直在学习核心 Java 基础知识 (Horstmann/Cornell) 第 9 版,但是在第 5 章之后的某个时候,练习文件和示例代码都不再具有 "main" 方法,但是这本书就像他们应该编译和 运行,等等...
非常困惑,因为 java 应用程序需要 运行 的主应用程序。任何熟悉这些文本的人都可以为我提供一些启示。现在感觉很愚蠢:)
许多库的开发并不是为了 运行 作为一个独立的应用程序。 Joda-Time 就是这样一个例子。它是一个可用于简化日期和时间数据操作的库。不可否认,我链接的源存储库中确实有主要方法,但那是因为它们在其单元测试中使用。
Core Java Fundamentals 第五章的重点是介绍class 继承,这样 Vehicle can be superclass of Boat can superclass of帆船可以超class的翻车鱼。这本书可能有一个像 Person > Employee > Manager 这样的例子,最终在同一章中你可能会看到一个像 TestManager 这样的测试 class,它实际上有一个使用 Manager 的 main 方法。
假设我写了一本类似的书,并在 Person 示例的简化版本上展示了它。我在 Eclipse 中创建了一个项目,我将其命名为 Personnel。我添加了一个包 org.company
并在该包中添加了这 3 个 classes:
人
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>();
}
}
我现在假设您可以创建自己的项目并合并我编写的这些 classes。我将我的名字命名为 Personnel 是无关紧要的。将您的 MyTest1 命名为 MyTest1,然后甚至不必费心创建包,添加一个名为 TestManager 的 class。只要你 A) 将我的 classes 两个文件夹放在你的项目组织/公司/个人、员工、经理中,或者 B) 从每个文件夹中删除 package org.company
并将它们包含在你的旁边new TestManager class,那么您应该能够在测试中将它们实例化为:
测试管理器
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 中的文件现在看起来像这样。
您要考虑的未来任务是从 Internet 获取一个库,例如 Joda-Time 并通过将其添加到构建路径来了解如何将其合并到您的项目中。
Classes 将在没有 main 函数的情况下编译,但是当你想执行相同的 class.
时问题就来了例如: Class A, Class B 和 Class B 有方法但没有 main 方法那么你可以调用没有 main 方法的程序。 JVM 需要一个点火点来告知从哪里开始。对于同一个例子,如果 Class A 有 main 方法,而其他没有。可以从 Class A 调用 class B 和 C 的方法是很好的,因为 JVM 从 A 开始并毫无问题地执行其他 class 方法。