Java类对我来说非常困惑

Eva*_*win 4 java oop class subclass

我在理解Java中的类时遇到了一些麻烦.

比如如何在helper类中声明"Inputter"?

public class Helper
{
     public void Helper(String z)
     {
          if(z.length() == 0)
          {
               System.out.println("You can't leave it blank!");
               System.exit(1);
               System.out.println("It's not working... ;(");
          }
     }

     public void Inputter(int a)
     {
          // blah blah
     }
}
Run Code Online (Sandbox Code Playgroud)

你会这样称呼它吗?

Helper x = new Inputter();
Run Code Online (Sandbox Code Playgroud)

请帮助,不,这不是一个功课问题.

谢谢,微笑

编辑:这是对的:

public class Helper
{
     public Helper(String z)
     {
          if(z.length() == 0)
          {
               System.out.println("You can't leave it blank!");
               System.exit(1);
               System.out.println("It's not working... ;(");
          }
     }

     public void Inputter(int a)
     {
          // blah blah
     }
}
Run Code Online (Sandbox Code Playgroud)

并声明:

Helper x = Helper();
Run Code Online (Sandbox Code Playgroud)

感谢大家对StackOverflow的热烈欢迎!:d

Mic*_*rdt 10

你的问题不是类,而是构造函数和方法,以及它们之间的区别.

方法可以有你喜欢的任何名称,它们必须声明一个返回类型(可能void),并且它们被调用如下:

ReturnType r = methodName(param1, param2)
Run Code Online (Sandbox Code Playgroud)

构造函数用于创建类(对象)的实例.它们必须与类具有相同的名称,它们必须没有返回类型(不是偶数void),它们的调用方式如下:

MyClass m = new MyClass(param1, param2);
Run Code Online (Sandbox Code Playgroud)

您的代码中存在几个问题:

  • Helper具有构造函数的正确名称,但由于它声明了void返回类型,因此编译器会将其视为方法.
  • Inputter甚至没有构造函数的正确名称.要将它用作构造函数new,它必须是被调用的类的一部分Inputter

也许你应该开始阅读Java教程的OO部分的介绍.