构造函数不接受我的信息

时间:2013-06-28 04:57:24

标签: java object constructor

所以构造函数说的是预期的,错误不是声明而且;预期

    Person num1, num2, num3;
    num1=new Person(Allison, 6600 Crescent Ave, 32, 9024231421);
    num2=new Person(George, 5251 Lakewood St, 24, 9024489216);
    num3=new Person(Michael, 2429 Inglis St, 56, 9024212345);

对象类

   public Person() {
   }
//constructor allows programmer to define variable values in demo class
   public Person(String nm, String adr, int ag, long phn) {
    name=nm;
    address=adr;
    age=ag;
    phoneNumber=phn;
 }

5 个答案:

答案 0 :(得分:3)

num1=new Person(Allison, 6600 Crescent Ave, 32, 9024231421);

应该是

num1=new Person("Allison", "6600 Crescent Ave", 32, 9024231421);
构造函数按此顺序预期

String,String,int和long,由public Person(String nm, String adr, int ag, long phn)定义。

没有(双)引号的Allison不是String。

答案 1 :(得分:1)

您没有将Name和Address的字符串传递给构造函数,请尝试更改

num1=new Person(Allison, 6600 Crescent Ave, 32, 9024231421);

num1=new Person("Allison", "6600 Crescent Ave", 32, 9024231421);

答案 2 :(得分:1)

第1步:

首先,您可以检查您的Person类对象是否已创建。

中打印一些消息
 public Person() {
      System.out.println("in default constructor");
 }

如果你看不到任何print语句那么对象的问题。

第2步:

检查您传递的内容并传递的值为print or not

如果不打印则问题with your parameter(argument)

您的问题:

你是not passing actual string value,你必须传递字符串值""

num1=new Person("Allison", "6600 Crescent Ave", 32, 9024231421);

许多SO用户给出了实际答案,但这些内容适用于功能阅读器,因此用户可以在下次看到并且不会出错。

答案 3 :(得分:0)

你正在调用构造函数,你的第一个参数不存在你已经定义了字符串,所以在调用构造函数时传入双引号

答案 4 :(得分:0)

因为字符串总是在双引号中使用。把你的参数作为双引号中的字符串。