-2

更新されたコードですが、次のエラー メッセージが表示されるようになりました: illegal static decleration inner class Mobile.mymobile modifier 'static' is only allowed in constant variable declerations, line 73, public static void main(String[] args) {,これはどういう意味ですか??

Java の宿題を手伝う

これは私が持っている私の割り当てであり、私が試したこの割り当てコードです。しかし、コンパイルしようとすると、解決策が見つからないように見えるエラーが発生し続けます。

エラーは、Constructor Mobile Cannot be applied to given types; というエラーです。必須:java.lang,int,java.lang.string; java.lang.... for Line 44 Mobile samsungPhone = new Mobile("Samsung", "1024", "2", "verizon", "8", "GPS"); が見つかりました。

課題の概要

To write a simple java classMobile that  models a mobile phone.
Details the information stored about each mobile phone will include
•   Its type e.g.  “Sony ericsson x90” or  “Samsung Galaxy S”;
•   Its screen size in inches;
You may assume that this a whole number from the scale 3 to 5 inclusive.
•   Its memory card capacity in gigabytes
You may assume that this a whole number
•   The name of its present service provider
You may assume this is a single line of text.
•   The type of contract with service provider
You may assume this is a single line of text.
•   Its camera resolution in megapixels;
You should not assume that this a whole number;
•   The percentage of charge left on the phone e.g. a fully charged phone will have a charge of 100.
You may assume that this a whole number
•   Whether the phone has GPS or not.


Your class will have fields corresponding to these attributes .
Start by opening BlueJ, creating a new project called myMobile which has a classMobile and set up the fields that you need,
Next you will need to write a Constructor for the class. Assume that each phone is manufactured by creating an object and specifying its type, its screen size, its memory card capacity, its camera resolution and whether it has GPS or not. Therefore you will need a constructor  that allows you to pass arguments to initialise these five attributes. Other fields should be set to appropriate default values.  You may assume that a new phone comes fully charged.
When the phone is sold to its owner, you will need to set the service provider and type of contract with that provider so you will need mutator methods
•   setProvider ()  - - to set service provider.
•   setContractType - - to set the type of contract
These methods will be used when the phones provider is changed.
You should also write a mutator method ChargeUp () which simulates fully charging the phone.
To obtain information about your mobile object you should  write
•   accessor methods corresponding to four of its fields:
•   getType () – which returns the type of mobile;
•   getProvider () – which returns the present service provider;
•   getContractType () – which returns its type of contract; 
•   getCharge () – which returns its remaining charge.

An accessor method to printDetails () to print, to the terminal window, a report about the phone e.g.
This mobile phone is a sony Erricsson X90 with Service provider BigAl and type of contract PAYG. At present it has 30% of its battery charge remaining.
Check that the new method works correctly by for example,
•   creating a Mobile object and setting its fields;
•   calling printDetails () and t=checking the report corresponds to the details you have just given the mobile;
•   changing the service provider and contract type by calling setprovider () and setContractType ();
•   calling printDetails () and checking the report now prints out the new details.
Challenging excercises
•   write a mutator methodswitchedOnFor ()  =which simulates using the phone for a specified period.  You may assume the phone loses 1% of its charge for each hour that it is switched on .
•   write an accessor method checkcharge () whichg checks the phone remaing charge. If this charge has a value less than 25%, then this method returns a string containg the message Be aware that you will soon need to re-charge your phone, otherwise it returns a string your phone charge is sufficient.
•   Write a method changeProvider () which simulates changing the provider (and presumably also the type of service contract).
Finally you may add up to four additional fields, with appropriate methods, that might be required in a more detailed model.

上記は私が持っている私の割り当てです。この割り当てコードは私が試しました。しかし、それを実行しようとすると、解決策が見つからないように見えるエラーが発生し続けます。

エラーは、Constructor Mobile Cannot be applied to given types; というエラーです。必須:java.lang,int,java.lang.string; java.lang.... for Line 44 Mobile samsungPhone = new Mobile("Samsung", "1024", "2", "verizon", "8", "GPS"); が見つかりました。

私のコード:

         /**
 * to write a simple java class Mobile that models a mobile phone.
 * 
 * @author (Lewis Burte-Clarke) 
 * @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 -- remove quotes
,   2      // int mobilememorycardcapacity -- remove quotes
,   8       // int mobilecameraresolution -- remove quotes, move to the right spot
,   "verizon" // String newserviceprovider -- must be the last one

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


    public static void buildPhones(){
    Mobile Samsung = new Mobile("Samsung", "3.0", "4gb", "8mega pixels",
                "GPS");
        Mobile Blackberry = new Mobile("Blackberry", "3.0", "4gb",
                "8mega pixels", "GPS");
        Samsung.displayMobileDetails();
        Blackberry.displayMobileDetails();
}
    public static void main(String[] args) {
        buildPhones();
}  

}

私は本当に負けたので、どんなanswers.repliesと助けも大歓迎です!

4

2 に答える 2

3

コンストラクタ モバイル 特定の型には適用できません。これは何を意味するのでしょうか?

これは、間違った型のオブジェクトをコンストラクターに渡していることを意味します。パラメータが であると宣言で示されている場合、整数を含むではなくintを渡す必要があることを意味します。intString

String定数とint定数の違いは、String定数は二重引用符を使用するのに対し、int定数は引用符を使用しないことです。

Mobile samsungPhone = new Mobile(
    "Samsung" // String mobilephonetype
,   "1024"    // int mobilescreensize -- remove quotes
,   "2"       // int mobilememorycardcapacity -- remove quotes
,   "verizon" // String newserviceprovider -- must be the last one
,   "8"       // int mobilecameraresolution -- remove quotes, move to the right spot
,   "GPS"     // String mobileGPS -- must be second before last
);
于 2013-10-20T17:05:22.573 に答える
1

あなたが見ている別の問題は、この作品からのものです -

1024 = screensize;
2 = memorycardcapacity;
8 = resolution;
GPS = gps;
"verizon"=serviceprovider;

これは Java の基本的なトピックです。変数。変数は代入演算子 ( ) の左側にあり=、変数の値は右側にある必要があります。

オブジェクトの変数を変更しようとしている場合は、次のsamsungPhoneことを行う必要があります。

sumsungPhone.screensize = 1024;
samsungPhone.memorycardcapacity = 2;
etc...
于 2013-10-20T17:04:01.200 に答える