[解決済み] Javaによる温度プログラムのクラス宣言
2022-01-29 17:13:02
質問事項
この5つのメソッドを入力する必要があるのですが、これが問題です。
- Temperature - コンストラクタのメソッドです。これは初期温度を100に設定する必要があります。
- getTemp - 現在保存されている摂氏の値を返すメソッドです。
- convertToF - 摂氏の温度を華氏に変換するメソッドです。
- convertToK - 摂氏の温度をケルビン温度に変換するメソッド
- updateTempC - 保存されている温度を摂氏で更新するメソッドです。
をこのプログラムに追加します。
import java.util.Scanner;
public class TempProg {
public static void main(String[] args)
{
// Declare objects
Scanner scan = new Scanner(System.in);
Temperature tempConv = new Temperature();
// Declare variables
int newTemp;
boolean entryValid;
// Declare constants
final int MIN_TEMP = -273;
final int MAX_TEMP = 10000;
System.out.println("\tTemperature converter");
// Set a dummy selection value, so that we always show the options on the first go
char selection = 'x';
// Offer a list of options
while (selection != 'q') {
System.out.println("\n\tCurrent temperature in degrees C: " + tempConv.getTemp());
System.out.println("\tType f to display temperature in Fahrenheit");
System.out.println("\tType k to display temperature in Kelvin");
System.out.println("\tType c to set a new temperature");
System.out.println("\tType q to quit");
// Read from the keyboard
selection = scan.next().charAt(0);
// Act on the selection
switch(selection) {
case 'f': // Print Fahrenheit version
System.out.println("\n\t" +tempConv.getTemp()+ " degrees C = "+tempConv.convertToF() +" degrees F" );
break;
case 'k': // Print Kelvin version
System.out.println("\n\t" +tempConv.getTemp()+ " degrees C = "+tempConv.convertToK() +" degrees K" );
break;
case 'c': // Get a new temperature
entryValid=false; // Reset entryValid for this round
/* test for !entryValid
* i.e. "not entryValid"
* i.e. same as "entryValid == false"
*/
while (!entryValid) { // This will always be true the first time
System.out.print("\n\tPlease enter a new temperature: ");
newTemp = scan.nextInt();
// Check validity of new temperature
if (newTemp < MIN_TEMP || newTemp > MAX_TEMP) {
System.out.println("\tPlease enter a valid temperature");
} else {
entryValid=true;
tempConv.updateTempC(newTemp);
}
}
break;
case 'q': // Don't do anything for q, we print a message later
break;
default: // If it is not f, k, c or q then default is error message
System.out.println("\n\tOption " + selection + " not understood");
}
}
System.out.println("\n\tPROGRAM ENDED");
}
}
そして、これが今のところあるものです。
private double Temperature (double currentTemp)
{
currentTemp = 100;
return currentTemp;
}
public double convertToF (double TempF)
{
TempF = ((9 * currentTemp) / 5 ) + 32;
return TempF();
}
public double convertToK (double TempK)
{
TempK = currentTemp + 273;
return TempK();
}
public void updateTempC (double currentTemp)
{
newTemp = currentTemp;
return currentTemp();
}
public double getTemp()
{
return currentTemp;
}
このような場合、基本的にコンパイルできませんし、99%間違っていると確信しています。
とエラーが出ます。
tempProg.java:14: error: class TempProg is public, should be declared in a file named TempProg.java
public class TempProg {
^
tempProg.java:26: error: cannot find symbol
TempF = ((9 * currentTemp) / 5 ) + 32;
^
symbol: variable currentTemp
location: class TempProg
tempProg.java:27: error: cannot find symbol
return TempF();
^
symbol: method TempF()
location: class TempProg
tempProg.java:32: error: cannot find symbol
TempK = currentTemp + 273;
^
symbol: variable currentTemp
location: class TempProg
tempProg.java:33: error: cannot find symbol
return TempK();
^
symbol: method TempK()
location: class TempProg
tempProg.java:38: error: cannot find symbol
newTemp = currentTemp;
^
symbol: variable newTemp
location: class TempProg
tempProg.java:40: error: cannot return a value from method whose result type is void
return currentTemp();
^
tempProg.java:45: error: cannot find symbol
return currentTemp;
^
symbol: variable currentTemp
location: class TempProg
tempProg.java:54: error: cannot find symbol
Temperature tempConv = new Temperature();
^
symbol: class Temperature
location: class TempProg
tempProg.java:54: error: cannot find symbol
Temperature tempConv = new Temperature();
^
symbol: class Temperature
location: class TempProg
解決方法は?
を使用する必要があります。
Temperature
クラスがあります。推測ですが、これらのメソッドを
TempProg
を考えると、不適切なコンストラクタと言えます。必要なのは、このような別のクラスです...。
public class Temperature {
// Put those method and data members here
}
コンストラクタは値を返してはいけません。次のようになります。
public Temperature()
または、特定の要件に応じたいくつかのバリエーションがあります。
関連
-
[解決済み】-XX:MaxPermSizeは何をするのですか?
-
[解決済み】Javaの".class expected "について
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] Java内部クラスと静的ネストされたクラス
-
[解決済み] Javaはパラメータのデフォルト値をサポートしていますか?
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Android Studio クラス org.codehaus.groovy.runtime.InvokerHelper を初期化できませんでした。
-
[解決済み】"比較メソッドはその一般契約に違反する!"
-
[解決済み] hibernate のプロパティが見つかりません。
-
[解決済み】keytoolエラー 鍵屋が改ざんされたか、パスワードが不正確だった場合
-
[解決済み】java 'jar'が内部コマンドまたは外部コマンドとして認識されない。
-
[解決済み】Javaを使用するSelenium - ドライバの実行ファイルのパスは、webdriver.gecko.driverシステムプロパティで設定する必要があります。
-
[解決済み] JavaでSSLピアが正しくシャットダウンされない
-
[解決済み】Ubuntu: OpenJDK 8 - パッケージを見つけることができません。
-
[解決済み】どういう意味か。Serializableクラスがstatic final serialVersionUIDフィールドを宣言していないとは?重複している] [重複している] [重複している] [重複している
-
[解決済み】CreateProcess error=2, The system cannot find file specified.