程序编译但不会运行,不能使用构造函数

时间:2011-09-19 04:13:36

标签: java

有人能告诉我为什么我不能在我的Interactions面板中创建一个新对象,或者为什么这个程序即使被编译也不会运行?

   import java.util.Random;
/**
 * This program allows a user to enter their first and last name
 * and generate a random user id and default password.
 * 
 * @author Brian Drake
 * @version 9/14/11
 */

   public class UserID {

      private String firstName;

      private String lastName;

      private String userId;

      private String password;


      public UserID(String first, String last) {
         Random generator = new Random();

         firstName = first;

         lastName = last;

         userId = first.substring(0, 3) + last.substring(0, 3)
            + generator.nextInt(1) + (generator.nextInt(7) + 3)
            + generator.nextInt(10);

         password = Integer.toString(generator.nextInt(10) + generator.nextInt(10)
            + generator.nextInt(10) + generator.nextInt(10)
            + generator.nextInt(10) + generator.nextInt(10));

      } 

      public String getId() {
         return userId;
      }

      public String getPassword() {
         return password;
      }

      public boolean setPassword(String randomPass) {

         if (password.length() < 6 || password.length() > 6) {
            randomPass = password;

            return false;       
         }

         else {
            password = randomPass;
         }
         return true;
      }

      public void generateNewPassword() {

         Random generator = new Random();

         password = Integer.toString(generator.nextInt(10) + generator.nextInt(10)
            + generator.nextInt(10) + generator.nextInt(10)
            + generator.nextInt(10) + generator.nextInt(10));

      }

      public String toString(String first, String last) {
         String output = firstName + " " + lastName + "\n";
         output += userId + "\n";
         output += password;
         return output;
      }

   }

4 个答案:

答案 0 :(得分:5)

它不会运行,因为没有主要方法

答案 1 :(得分:1)

UserID的类定义中,您需要在创建对象时分配参数值(因为您没有创建任何参数构造函数)。

UserID obj=new UserID("firstName","secondName");

编辑:

UserID类外,您还必须定义另一个包含入口点 - main()方法的类。

public class TestMain
{
  public static void main(String []args)
   {
     UserID obj=new UserID("firstName","secondName");
     //Using obj reference variable, you can request to the object for any message.
     System.out.println(obj.getId() + " " + obj.getPassword());
   }
}

答案 2 :(得分:0)

这不是一个程序。这只是一个类,它可能是程序的一部分。当你试图运行它时,你应该得到一个NoSuchMethodException或类似的东西。

程序本质上是一个包含public static void main(String[] args)的类。如果你想让这个东西自己运行(而不是仅仅是一些其他代码使用的组件),你需要添加一个。请注意,Java将调用此方法来运行您的程序,因此它还需要执行一些有用的操作。比如说,创建一个UserID并显示它或者什么。 :)

答案 3 :(得分:0)

您可以创建UserID类的对象。 Java中的程序执行入口点是其main方法。

public static void main(String[] args){}