-1

这有点牵扯,我想简洁地解释一下,不要让你阅读很多,然后显示代码。我不擅长那个。

准系统解释。在本次作业中,我们学习如何编译、解释命令提示符、创建包、创建类和子类、导入子类以及在所有子类中作为单个编译程序执行 println 命令,并在命令提示符中显示。我遗漏了一些东西,当我运行超类 GreetingsClass.java 时,子类 println 命令不显示。它们都在同一个包中。包目录为com.cisp2030.course,三个Chapters类文件存在于.course内的.Chapters文件夹中。

一、GreetingsClass.java:

package com.cisp2030.course;
import com.cisp2030.course.Chapters.*;

public class GreetingsClass
{
    Chapter1 c1 = new Chapter1();
    Chapter2 c2 = new Chapter2();
    Chapter3 c3 = new Chapter3();

    public static void main(String[] args)
    {
    System.out.println("$ Greetings, CISP2030!");
    System.out.println(c1);
    }

}

这应该导入并实例化 .Chapters 文件夹中包含为 Chapter1.class 的下一个代码的变量。

package com.cisp2030.course.Chapters;
public class Chapter1
{
    public Chapter1()
    {
        System.out.println("Hello from Chapter1!");
    }
}

试想一下,上面的代码是第 1 章到第 3 章的三个代码之一,它们已被命令提示符编译成各自目录中的类文件。

在命令提示符下编译、解释和运行该程序的预期输出应该是一个显示所有 3-4 个 println 命令的程序。但是,此时运行 hte 命令提示符只显示一个 println 命令。我认为这是因为我需要将章节类子类化为 GreetingsClass,并且已经导入它们,以某种方式指示 GreetingsClass 执行 hte Chapters 类文件的命令,但我不知道如何,我已经用谷歌搜索了这个一贯地,并通过我的教科书进行搜索,但我并不聪明。我想我在代码本身中遗漏了一些东西,但我知道的不够多,无法提出任何想法。任何帮助或建议将不胜感激。


代码已完成:

package com.cisp2030.course;
import com.cisp2030.course.Chapters.*;

public class GreetingsClass
{

    public static void main(String[] args)
    {
    System.out.println("$ Greetings, CISP2030!");
    Chapter1 c1 = new Chapter1();
    Chapter2 c2 = new Chapter2();
    Chapter3 c3 = new Chapter3();
    }

}
4

1 回答 1

0

这甚至可以编译吗?

Java 不允许静态构造函数。

public Chapter1() // removed "static"
{
    System.out.println("Hello from Chapter1!");
}

c1是 的成员GreetingsClass。因为main()你在一个静态方法中,而不是一个方法,GreetingsClass所以你不能访问它的成员。最明显的解决方案是添加并尝试GreetingsClass greetings = new GreetingsClass();摆脱它。mainc1

于 2015-02-20T19:49:34.470 回答