-3

嗨,我正在尝试让我的代码创建我需要创建手机对象的新构造函数对象,我尝试命名构造函数字段来创建对象,但是错误出现在

public Mobile(String Mobilephonetype, String Mobilescreensize,
        String Mobilememorycardcapacity, String Mobilecameraresolution,
        String MobileGPS), at the bottom of the page

为什么我会收到此错误?

java error, cannot find symbol - variable samsung

更新我已经将一些顶级字段从私有 int 更改为字符串,但现在它说找不到符号 - 类字符串,这是什么意思?

代码:

/**
 * to write a simple java class Mobile that models a mobile phone.
 * 
 * @author () 
 * @version (14/10/13)
 */
public class Mobile

{
    // type of phone
    private string phonetype;
    // size of screen in inches
    private int screensize;
    // menory card capacity
    private int  memorycardcapacity;
    // name of present service provider
    private string serviceprovider;
    // type of contract with service provider
    private int typeofcontract;
    // camera resolution in megapixels
    private int cameraresolution;
    // the percentage of charge left on the phone
    private int checkcharge;
    // wether the phone has GPS or not
    private string GPS;
    // instance variables - replace the example below with your own
    private int x;

    // The constructor method

    public Mobile(String mobilePhoneType, int mobileScreenSize,
            int mobileMemoryCardCapacity, String newserviceprovider, int mobileCameraResolution,
            String mobileGPS) {
        this.phonetype =  mobilePhoneType;
        this.screensize = mobileScreenSize;
        this.memorycardcapacity = mobileMemoryCardCapacity;
        this.cameraresolution = mobileCameraResolution;
        this.GPS = mobileGPS;

        // you do not use this ones during instantiation,you can remove them if you do not need or assign them some  default values 
        this.serviceprovider = newserviceprovider;
        this.typeofcontract = 12;
        this.checkcharge = checkcharge;

    }

    // A method to display the state of the object to the screen
    public void displayMobileDetails() {
        System.out.println("phonetype: " + phonetype);
        System.out.println("screensize: " + screensize);
        System.out.println("memorycardcapacity: " + memorycardcapacity);
        System.out.println("cameraresolution: " + cameraresolution);
        System.out.println("GPS: " + GPS);
         System.out.println("serviceprovider: " + serviceprovider);
        System.out.println("typeofcontract: " + typeofcontract);

    }

    public Mobile(String MobilephoneType, int Mobilescreensize, int Mobilememorycardcapacity, String newserviceprovider, int Mobilecameraresolution,
            String MobileGPS) {
        this.phonetype = Mobilephonetype;
        this.screensize = 3;
        this.memorycardcapacity = 4;
        this.cameraresolution = 8;
        this.GPS = GPS;
        this.serviceprovider = newserviceprovider;
        this.typeofcontract = 12;
        this.checkcharge = checkcharge;


    }

}

 class mymobile {
    public static void main(String[] args) {
        Mobile Samsung = new Mobile("Samsung", "3", "4", "8",
                "GPS");
        Mobile Blackberry = new Mobile("Blackberry", "3.", "4",
                "8", "GPS");
        Samsung.displayMobileDetails();
        Blackberry.displayMobileDetails();
    }
}
4

5 回答 5

2

这条线似乎是public Mobile方法的问题:

this.phonetype = Samsung;

因为您Samsung在 main 方法中定义对象,class mymobile其中不可用class Mobile

更新:我真诚地建议您开始使用像 Eclipse 这样的 IDE,以便可以在编辑器本身中捕获这些类型的错误。

最喜欢而不是这个声明:

// type of phone
private int phonetype;

你的意思是:

// type of phone
private String phonetype;

然后使用这个赋值:

this.phonetype = Mobilephonetype;
于 2013-10-19T19:09:17.607 回答
1

没有这样的变量Samsung。在这一行:

 this.phonetype = Samsung;

似乎您可能打算以Mobilephonetype某种方式分配给它,但正如下面的评论所暗示的那样,它是一个int.

于 2013-10-19T19:09:51.260 回答
0

私有实例字段“phonetype”、“serviceprovider”和“GPS”的类型应该是“String”而不是“string”。

于 2014-01-30T13:38:53.450 回答
0

问题看起来是this.phonetype = Samsung;,尝试将其更改为this.phonetype = Mobilephonetype.

于 2013-10-19T19:10:53.783 回答
0

您的构造函数似乎有问题,您应该使用传递给构造函数的参数。您可以根据需要更改它们,并将参数分配给适当的类变量

在您的主要方法中,您实例化一个名为 Samsung 的实例,如下所示

Mobile Samsung = new Mobile("Samsung", "3", "4", "8",
            "GPS");

这是实例化实例的真正方法。实例化实例时将参数传递给构造函数。因此,您应该像这样在构造函数中正确传递参数

  public Mobile(String mobilePhoneType, int mobileScreenSize,
            int mobileMemoryCardCapacity, int mobileCameraResolution,
            String mobileGPS) {
        this.phonetype =  mobilePhoneType;
        this.screensize = mobileScreenSize;
        this.memorycardcapacity = mobileMemoryCardCapacity;
        this.cameraresolution = mobileCameraResolution;
        this.GPS = mobileGPS;

        // you do not use this ones during instantiation,you can remove them if you do not need or assign them some  default values 
        this.serviceprovider = newserviceprovider;
        this.typeofcontract = 12;
        this.checkcharge = checkcharge;


    }

根据您的参数传递,您有不兼容的类型变量,您可以按如下方式更改它们

private String phonetype;
private int screensize;
private int  memorycardcapacity;
private int cameraresolution;
private String GPS;
于 2013-10-19T19:11:25.107 回答