2014-11-16 20 views
-6

我得到一個錯誤:方法'setTemp'沒有超載需要1個參數有人會檢查我的代碼在setter和getters中,只是爲了確保它是正確的?

我只需要幫助改變類中的方法,以適當的方式爲速度和臨時屬性工作。使用與以下輸出中所示相同的值,速度爲50,溫度爲70.5。改變方法setSpeed(),getSpeed(),setTemp()和getTemp()。

創建一個名爲ford的Car對象。使用設置器設置速度和溫度的速度。使用吸氣器打印速度和溫度值。

using System; 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 

namespace Assignment13 { 
    class Car { 
     int Speed = 50; 
     double Temp =70.5; 

     private int Speed; 

     public void setSpeed(int speed) { 
      this.Speed = 0; 
     } 

     public int getSpeed() { 
      return Speed; 
     } 

     private int Temp; 

     public void setTemp() { 
      this.Temp = 0; 
     } 

     public int getTemp() { 
      return Temp; 
     } 
    } 

    class Program { 
     static void Main(string[] args) { 
      Car ford = new Car(); 

      ford.setSpeed(65); 
      ford.setTemp(120); 

      Console.WriteLine("Speed = " + ford.getSpeed()); 
      Console.WriteLine("Temp = " + ford.getTemp()); 

      Console.Write("Hit any key to close"); Console.ReadKey(true); 
     } 
    } 
} 
+2

你總是將溫度設置爲0 ...此外,你不尊重駝峯 – Dici

+0

你爲什麼有獲取和設置方法,而不是屬性?你的導師是否給你setSpeed(),getSpeed()等名字或是你的發明? –

+0

至於錯誤,它很簡單和簡單:方法'setTemp'沒有超載需要1個參數。 setTemp有多少個參數? (沒有)。你打電話時你提供了多少個? (1)。你怎麼能不爲自己工作呢? –

回答

0

一個類表示一個事物的抽象。當你設計一個類你應該確保以下(如果我錯過了什麼其他的可以補充):

  1. 確保所有的數據和操作這是在同一類相關的秋天。
  2. 不要將課堂內部暴露於外界。相反提供了一個接口給全世界使用這個類。
  3. 如果你定義一些實例變量檢查,如果它遵循具有-關係
  4. 如果從一些超類檢查繼承類,如果它遵循是-關係
0
using System; 
    using System; 
    using System.Collections.Generic; 
    using System.Linq; 
    using System.Text; 
    namespace Assignment13 
    { 
    class Car 
{ 
    int speed = 0; 
    double temp =0; 

    private int Speed; 

    public void setSpeed(int speed) 
    { 
     this.speed = 50; 
    } 
    public int getSpeed() 
    { 
     return speed; 
    } 

    private double Temp; 
    public void setTemp(double temp) 
    { 
     this.temp = 70.5; 
    } 
    public double getTemp() 
    { 
     return temp; 
    } 
} 
class Program 
{ 

    static void Main(string[] args) 
    { 
     Car ford = new Car(); 
     ford.setSpeed(50); 
     ford.setTemp(70.5); 
     Console.WriteLine("Speed = " + ford.getSpeed()); 
     Console.WriteLine("Temp = " + ford.getTemp()); 

     Console.Write("Hit any key to close"); Console.ReadKey(true); 
    } 
} 

}

0
  1. 你已經在類中定義的兩個「飛車」的變量,但你只能去每個作用域一個變量名稱一次。

    int Speed = 50; 
    double Temp =70.5; 
    
    private int Speed; 
    
  2. 塞特斯用於分配值,並且它們應該始終有一個參數,並且該參數應該被用來指定一個實例或類變量。這裏是「setSpeed」的更正版本。

    public void setSpeed(int speed) 
    { 
        this.speed = speed; 
    } 
    

在這種情況下,你忽略你的參數「速度」和分配this.speed恆定值。這種默認分配應該在構造函數中完成。

  1. 此setter是你的錯誤的起源:你有一個沒有參數的setter,它應該是一個紅旗。在這種情況下,你應該1個參數,「TEMP」添加到setTemp():

    public void setTemp(double temp) { 
        this.Temp = temp; 
    } 
    
相關問題