首先,我想說我對 Java 完全陌生,幾天前我才開始了解它的基礎知識。
我對這里的物件有疑問,我會告訴你我的意思。
這是其中一個函式的代碼,它應該向我顯示頻率最高的庫存專案:
InternalComponent ic = new InternalComponent("Intel", 4, 35.0, 3200.00);
public void FindMostFrequency()
{
double temp = 0;
for (int i = 0; i< Stock.size(); i )
if (ic.frequency > temp)
temp = ic.frequency;
System.out.println("The stock with most frequency is: " temp );
}
問題是它只使用來自特定物件的資訊,我想讓它從所有物件中使用它。
我想再次指出,我在這里所做的很可能是錯誤的。如果可能,請指出任何錯誤,我非常感謝我能得到的任何幫助。
這是 InternalComponent 類的代碼:
package com.company;
public class InternalComponent extends Stock {
protected double frequency;
public InternalComponent(String manufacturer, int count, double price,double frequency) {
super(manufacturer, count, price);
this.frequency = frequency;
}
@Override
public String toString() {
return "InternalComponent{"
"frequency=" frequency
'}';
}
}
uj5u.com熱心網友回復:
我會使用這樣的東西......你需要一個第二個變數來捕獲股票,以及一個獲取股票的方法(getStocks()):
public void FindMostFrequency()
{
double temp = 0;
Stock mostFrequentStock = null;
for (Stock aStock : getStocks()) {
var frequency = aStock.frequency
if (temp < frequency) {
temp = frequency;
mostFrequentStock = aStock
}
}
System.out.println("The stock with most frequency is: " mostFrequentStock);
}
使用 getter 而不是直接訪問變數也會更好,即 getFrequency()
uj5u.com熱心網友回復:
您的代碼看起來幾乎是正確的,但您似乎沒有用花括號定義 for 回圈的主體。正如其他海報提到的那樣,在這種情況下通常首選使用 foreach 回圈。
回圈遍歷每個元素并簡單地呼叫 getFrequency() 方法會更好。然后將其與您當前的 maxFrequency 值進行比較。將類的實體變數設為私有并讓它們只能通過 getter 和 setter 訪問通常是一種很好的做法。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/414755.html
標籤:
