Мне нужно создать систему мониторинга землетрясений для моего курса. У меня есть один класс под названием «Землетрясение», где у меня есть код для хранения и получения величины, положения и года события. Мой следующий класс - «Обсерватория», где у меня есть код для получения названия обсерватории, места, года ее начала и района. Этот класс также перечисляет все события землетрясения, которые он записал (импортируя Arraylist 'Earthquake' из предыдущего класса).
Однако я не знаю, как написать метод для возврата землетрясения с наибольшей магнитудой, зарегистрированного обсерваторией, поскольку эта информация хранится в классе Землетрясения, а не в классе Обсерватории. SOS?
Java, закодированный на BlueJ.
КЛАСС ЗЕМЛЕТРЯСЕНИЯ:
public class Earthquake
{
/* instance variables - information about the magnitude, position and year of the event*/
private double magnitude;
private double latitude;
private double longitude;
private int year;
public Earthquake(double magnitude, double latitude, double longitude, int year) // initialise instance variables
{
this.magnitude = magnitude;
this.latitude = latitude;
this.longitude = longitude;
this.year = year;
}
public double getMagnitude()
//method to get magnitude data
{
return magnitude;
}
public double getLatitude()
//method to get latitude data
{
return latitude;
}
public double getLongitude()
//method to get longitude data
{
return longitude;
}
public int getYear()
//method to get year data
{
return year;
}
КЛАСС НАБЛЮДАТЕЛЕЙ:
import java.util.ArrayList;
public class Observatory
{
/* instance variables - name of observatory, country it is in, year in which earthquake observations started, area covered by observatory and list of earthquake events*/
private String name;
private String country;
private int yearFirstEarthquakeRecorded;
private double area;
private ArrayList<Earthquake> recordedEarthquakes;
public Observatory(String name, String country, int yearFirstEarthquakeRecorded, double area)
{
// initialise instance variables
this.name = name;
this.country = country;
this.yearFirstEarthquakeRecorded = yearFirstEarthquakeRecorded;
this.area = area;
ArrayList<Earthquake> recordedEarthquakes = new ArrayList<Earthquake>(); /*I assume this imports data from Earthquake class*/
}
public String getName()
{
return name;
}
public String getCountry()
{
return country;
}
public int getYearFirstEarthquakeRecorded()
{
return yearFirstEarthquakeRecorded;
}
public double getArea()
{
return area;
}
public void addEarthquake(Earthquake E)
{
recordedEarthquakes.add(E); //allows earthquakes recorded to be added?
}
НО КАК ПОЛУЧИТЬ данные осамое сильное землетрясение?
ИДЕЯ: имеет ли это смысл? это не работает, и говорит, что «.size» не может быть найден ...
public Earthquake getLargestMagnitude(double magnitude)
{
for (int i = 0; i < Earthquake.size(); i++) {
if (Earthquake.getMagnitude(i) > magnitude) {
return Earthquake;
}
}
}
public Earthquake getLargestMagnitude(double magnitude)
{
for (int i = 0; i < Earthquake.size(); i++) {
if (Earthquake.getMagnitude(i) > magnitude) {
return Earthquake;
}
}
}
для этого я ожидаю, что код вернет весь объект Землетрясения с наибольшей магнитудой. но это не работает.