Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java Classes are extremely confusing to me

I am having some trouble understanding classes in Java.

Such as how do you declare "Inputter" in the helper class like this?

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
     }
}

Would you call it like this?

Helper x = new Inputter();

Please help, and NO this is NOT a homework question.

Thanks, Smiling

EDIT: Would this be right:

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
     }
}

and declared with:

Helper x = Helper();

And thanks everyone for giving me a warm welcome to StackOverflow! :D

like image 929
Evan Darwin Avatar asked Dec 12 '22 13:12

Evan Darwin


1 Answers

Your problem is not with classes, it is with constructors and methods, and the difference between them.

Methods can have any name you like, they must declare a return type (possibly void), and they're called like this:

ReturnType r = methodName(param1, param2)

Constructors are used to create instances of classes (objects). They must have the same name as the class, they must not have a return type (not even void), and they're called like this:

MyClass m = new MyClass(param1, param2);

There are several problems in your code:

  • Helper has the correct name for a constructor, but because it declares a void return type, the compiler will treat it as a method.
  • Inputter doesn't even have the correct name for a constructor. To use it as a constructor with new, it would have to be part of a class called Inputter

Perhaps you should start out reading the introduction to OO part of the Java tutorial.

like image 51
Michael Borgwardt Avatar answered Jan 01 '23 23:01

Michael Borgwardt