当前位置: 首页 > 知识库问答 >
问题:

Java错误,构造函数移动不能应用于给定类型;这是什么意思?

殷学
2023-03-14

更新代码,错误显示内部类Mobile中存在非法静态删除。mymobile修饰符的static只允许在常量变量偏差中使用,第75行,public static void main(String[]args){,这是什么意思??

我的代码:

   /**
 * to write a simple java class Mobile that models a mobile phone.
 * 
 * @author (jamal) 
 * @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,int mobilecameraresolution,String mobileGPS, String newserviceprovider) {
        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;

   Mobile samsungPhone = new Mobile(
    "Samsung" // String mobilephonetype
,   1024    // int mobilescreensize 
,   2      // int mobilememorycardcapacity 
,   8       // int mobilecameraresolution 
,   "GPS"    //String mobileGPS
,   "verizon" // String newserviceprovider 
);


        //typeofcontract = 12;
        //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);
}

      /**
 * The mymobile class implements an application that
 * simply displays "new Mobile!" to the standard output.
 */
public class mymobile {
    public static void main(String[] args) {
        System.out.println("new Mobile!"); //Display the string.
    }
}
    public static void buildPhones(){
    Mobile Samsung = new Mobile("Samsung", 3, 4, 8, "verizon",
                "GPS");
Mobile Blackberry = new Mobile("Blackberry", 3, 4,
                8, "verizon", "GPS");
        Samsung.displayMobileDetails();
        Blackberry.displayMobileDetails();
}
    public static void main(String[] args) {
        buildPhones();
}  

}

任何答案或回复和帮助都将不胜感激,因为我完全迷路了!

共有2个答案

孔磊
2023-03-14

您缺少构造函数的第5个参数String mobileGPS。

申高卓
2023-03-14

构造函数不能应用于给定的类型;

表示您试图用错误的参数调用构造函数。

必修课:java。字符串,int,int,int,java。字符串,java。朗·弦;

表示构造函数需要这些类型作为传递给它的参数

发现:java。字符串,java。字符串,java。字符串,java。字符串,java。朗·弦;

是你真正传递给它的东西。

Mobile Samsung = new Mobile("Samsung", "3.0", "4gb", "8mega pixels",
                "GPS");
Mobile Blackberry = new Mobile("Blackberry", "3.0", "4gb",
                "8mega pixels", "GPS");

您正在传递五个String参数,而构造函数需要一个String、三个ints和两个Strings。这就是为什么会出现错误。

更新

正确的方法:

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

根据需要更改参数。

而且你的第一个构造函数调用是错误的。

Mobile samsungPhone = new Mobile(
    "Samsung" // String mobilephonetype
,   1024    // int mobilescreensize 
,   2      // int mobilememorycardcapacity 
,   8       // int mobilecameraresolution 
,   "verizon" // String newserviceprovider 

);

这里缺少一个参数,应该是

Mobile samsungPhone = new Mobile(
    "Samsung" // String mobilephonetype
,   1024    // int mobilescreensize 
,   2      // int mobilememorycardcapacity 
,   8       // int mobilecameraresolution 
,   "GPS"    //String mobileGPS
,   "verizon" // String newserviceprovider 
);
 类似资料:
  • 在问我的问题之前,我想把一些事情说清楚。首先,我是Java和编程的新手。第二,这是我的第一个帖子,所以如果我做错了什么,请宽容对待我。最后,我不想要任何具体的解决办法,我的任务在任何回应这篇文章。这些问题要我来解决。我想要的是一个解释,为什么我的测试代码不能编译/运行。为了更好地理解这个问题,我将粘贴赋值信息,然后是给定的驱动程序类,然后是驱动程序类访问的我的类代码。我的编译器错误显示在标题中,但

  • 我正在做作业,所以我只想修复我的编译错误,这样我就可以继续工作了。我需要创建一个PointList类,在ArrayList中保存一个Point对象列表。PointList类应该接受任何作为Point类实例或Point子类的对象。 我不断收到一个编译器错误,上面写着 我真的不明白我错过了什么,我已经通读了这本书,似乎不明白为什么我会得到这个错误。我已经制作了 Point 类并完成了测试,但似乎无法编

  • 我不理解这个错误。据我所知,我已经成为了建设者。 错误:(12,46)java:com类中的构造函数FitnessEmployees。公司FitnessEmployees不能应用于给定类型;必需:java。lang.String,java。字符串,int,double,java。lang.String,java。找到lang.String:没有参数原因:实际参数列表和形式参数列表长度不同 我的班级

  • 问题内容: 我有以下Java代码: 而且我不断收到错误消息:“无法将构造函数应用于给定类型” …这是否意味着超类的子类在构造函数中必须具有与超类相同数量的参数?我已经把头撞在墙上一个小时了。 问题答案: 子类不必有“相同数量的构造为超参数”任何构造函数,但它 确实 需要调用一些它的父类的构造函数从自己的构造。 如果超类具有no- arg构造函数,则默认情况下会被调用,如果省略了对超类构造函数的显式

  • 我有2个子类:职员、学生,他们属于超类人。 以下是我的老师给出的代码(任务): 我不知道我可以输入什么来创建一个没有参数的对象。它总是出现这样的错误:Person类中的构造函数Person不能应用于给定的类型;必选:java.lang.String,int 我在网上查过,有两种方法可以解决这个问题: > < li> 在超类中添加默认值:< code > Person()//不带参数。 在子类学生中

  • 我得到了下面的代码,使用数组来查找一些prim数。然而,当试图编译我的用户类PalindromeArrayUser时,它说——“类中的构造函数不能应用于给定的类型” 要求:int。找到:没有论点。原因:实际参数和正式参数列表的长度不同。 但是,我已经向构造器传递了一个int值(与我的蓝图中设计的方式相同)。我不太明白问题来自哪里。谢谢。 这是我的两节课 而这就是我的用户类问题的来源。上面的类编译良