首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有main的Java练习文件?

没有main的Java练习文件?
EN

Stack Overflow用户
提问于 2015-04-30 02:17:40
回答 2查看 123关注 0票数 2

一直在阅读核心Java基础(Horstmann/Cornell)第9版,但是在第5章前后的某个时候,练习文件和示例代码都停止了一个“主”方法,但是这本书似乎应该编译和运行等等.

非常混乱,因为java应用程序需要一个主程序来运行。任何熟悉这些文字的人都能给我一些启示。(现在觉得自己很蠢:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-30 02:46:35

许多库是在没有作为独立应用程序运行的情况下开发的。尤达-时间就是一个这样的例子。它是一个库,可以用来简化日期和时间数据的操作。诚然,我链接的源存储库中确实有主要方法,但这是因为它们在其单元测试中使用。

核心Java基础中第五章的重点是引入类继承,使车辆可以是船的超类,可以是帆船的超类,也可以是太阳鱼的超类。这本书可能有一个例子,比如Person > Employee > Manager,最终在同一章中,您可能会看到像TestManager这样的测试类,它实际上有一个使用Manager的主要方法。

假设我写了一本类似的书,并通过简化的Person示例展示了这一点。我在Eclipse中创建了一个项目,并称其为人员。我添加了一个包org.company,并在该包中添加了以下3个类:

Person

代码语言:javascript
复制
package org.company;
public class Person {
    public String name;
    public Person() {

    }
}

雇员

代码语言:javascript
复制
package org.company;
public class Employee extends Person {
    public String employeeID;
    public Employee() {

    }
}

管理器

代码语言:javascript
复制
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

代码语言:javascript
复制
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 )获取一个库,并通过将它添加到构建路径来查看如何将它合并到您的项目中。

票数 7
EN

Stack Overflow用户

发布于 2015-04-30 04:05:12

类将在没有main函数的情况下编译,但是当您想要执行同一个类时,问题就出现了。

例如: A类、B类和B类都有方法,但没有main方法,那么您可以在没有main方法的情况下调用程序。JVM需要一个点火点来通知从哪里开始。对于相同的示例,如果类A有main方法,则作为其他方法没有。可以从A类调用B类和C类的方法,因为JVM从A启动,并顺利地执行其他类方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29957908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档