首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么主要方法是在子类中不打印任何内容?

为什么主要方法是在子类中不打印任何内容?
EN

Stack Overflow用户
提问于 2019-05-28 19:56:22
回答 3查看 410关注 0票数 0

作为超类“inherit类”的子类,"myfirstclass“应该继承超类”inherit类“的所有属性,并且它应该输出x的值,但是它没有输出任何内容。

代码语言:javascript
复制
package myfirstproject;

public class myfirstclass {
    protected int x = 10;
    //getter 
    public void getX() {
     System.out.println(x);
    }
    public static void main(String[] args) { 
/* it asked me to define this main method here although it's useless in this situation 
   */
    }
}
class mysecondclass extends myfirstclass {
    public static void main(String[] args) {
    mysecondclass mysecondobject = new mysecondclass();
    mysecondobject.getX(); //prints nothing 
    }
}

我是java方面的新手,实际上我还在学习它的基础知识,而且我也不知道为什么它总是要求我在超类中添加主方法,尽管我已经在子类中声明了一个方法(我听说一个主要的方法足以满足一个java文件),任何帮助都是非常感谢的,谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-05-28 20:24:37

你不理解这个函数

代码语言:javascript
复制
public static void main(String[] args)

在Java文档中:

公共静态空关键字意味着Java 1虚拟机(JVM)解释器可以调用程序的主要方法来启动程序( public ),而无需创建类的实例(静态),并且程序在结束时不会将数据返回给Java解释器( void )。

你有两个

代码语言:javascript
复制
public static void main(String[] args)

在两个不同的班级!您正在运行或编译使用myfirstclass的实例,因此对于这种类型的示例或测试来说,只有一个Java类Main是一个很好的实践。

代码语言:javascript
复制
public class Main {
    public static void main(String[] args) {
        // Call Your classes
    }
}

在您的代码中更干净、更有条理!

还有一件事。若要由命令行运行,请使用此类命令

代码语言:javascript
复制
java MyApp arg1 arg2

当有疑问的时候总是读读医生!

票数 2
EN

Stack Overflow用户

发布于 2019-05-28 20:16:14

您有两种方法可以使代码按您的意愿运行。

1)创建2个java文件。一个是myfirstclass.java,第二个是mysecondclass.java。每个人都有自己的主修班。因此,您可以开始任何主要的方法,如你所愿。

2)只需将这2个类保存在同一个java文件中即可。然后,当您运行它时,它将只在公共类中默认情况下运行main方法。

票数 1
EN

Stack Overflow用户

发布于 2019-05-28 20:20:32

只需将public关键字更改为第二类即可。如果您使用的是联机编译器,它们通常会在公共类中查找主方法。

代码语言:javascript
复制
package myfirstproject;

 class myfirstclass {
    protected int x = 10;
    //getter 
    public void getX() {
     System.out.println(x);
    }

}
public class mysecondclass extends myfirstclass {
    public static void main(String[] args) {
    mysecondclass mysecondobject = new mysecondclass();
    mysecondobject.getX(); //printx X
    }
}
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56349257

复制
相关文章

相似问题

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