我正在做作业,我很难在这里找到问题。我写的程序不编译。请帮忙。作业详情:
“使用以下字段创建一个名为Airport的类:标识符。由纬度和经度组成的坐标(不要创建两个!!)。纬度为正,表示赤道以北为负,当位于赤道时为负南半球。经度为负,表示它是西方和正面,表明它是格林威治中位数的东部。磁性变化也表示西方为负,东方为正。可以没有磁性变化。海拔高度在脚下。
添加一个静态方法,接受四个双倍的两个坐标坐标(double lat1,double long1,double lat2,double long2),并使用Lab 05中给出的公式返回海里距离。例如圣地亚哥机场具有值ID:SAN,Lat:32.7335556,Long:-117.1896667,Var:14,Elev:16.8'(http://www.airnav.com/airport/SAN)该类应具有每个字段的访问器和mutator方法。“
我在这里完成了大部分工作,但我认为我需要在这里添加构造函数。请帮忙。
主要课程:
window.onload = function() {
// append next `track` element to `video` in 1 seconds
setTimeout(function() {
// pass `src`, `label` to set at `track` element
addTrack("/path/to/resource2", "track 1")
}, 1000);
function foo(track, src) {
track.addEventListener("load", function() {
console.log("this loads");
});
video.appendChild(track);
track.src = src;
};
function addTrack(src, tracklabel) {
var track = document.createElement("track");
track.kind = "captions";
track.srclang = "en";
track.label = tracklabel;
// set `default` attribute at `track` element
track.setAttribute("default", "default");
// pass `track` element, `src` to set at `track` to `foo`
foo(track, src);
}
addTrack("/path/to/resource1", "track 1");
}
和机场班......
package lab06;
import javax.swing.JOptionPane;
public class Lab06
{
public static void main(String[] args) {
double number; // To hold the number
String input; // To hold user input
//Create two Airport objects.
Airport firstAirport = new Airport();
Airport secondAirport = new Airport();
// Get and store the coordinates for firstAirport.
input = JOptionPane.showInputDialog("Enter the first Latitude: ");
number = Double.parseDouble(input);
firstAirport.setLatitude(number);
input = JOptionPane.showInputDialog("Enter the first Longitude: ");
number = Double.parseDouble(input);
firstAirport.setLongitude(number);
input = JOptionPane.showInputDialog("Enter the first Elevation: ");
number = Double.parseDouble(input);
firstAirport.setElevation(number);
// Get and store the coordinates for secondAirport.
input = JOptionPane.showInputDialog("Enter the second Latitude: ");
number = Double.parseDouble(input);
secondAirport.setLatitude(number);
input = JOptionPane.showInputDialog("Enter the second Longitude: ");
number = Double.parseDouble(input);
secondAirport.setLongitude(number);
input = JOptionPane.showInputDialog("Enter the second Elevation: ");
number = Double.parseDouble(input);
secondAirport.setElevation(number);
}
// The Distance method calculates the distance in nautical miles
public static void getDistance(String[] args)
{
double R = 3440;
double dist = Math.sin(firstAirport.getLatitude())
* Math.sin(secondAirport.getLatitude())
+ Math.cos(secondAirport.getLatitude())
* Math.cos(firstAirport.getLatitude())
* Math.cos(firstAirport.getLongitude()
- secondAirport.getLongitude());
dist = Math.acos(dist);
dist = dist * R;
// Display result in nautical miles.
JOptionPane.showMessageDialog(null,
"The distance in nautical miles is: %.1f\n" + dist);
System.exit(0);
}
}
答案 0 :(得分:0)
如何从包中的另一个类(java)访问主类中的变量?
我假设您要求访问在主>>方法<<中声明的局部变量。简单的答案就是你不能。
但是您可以将变量的值作为方法或构造函数参数传递给另一个类。
我在这里完成了大部分工作,但我认为我需要在这里添加构造函数。
是。那将是一个好主意。
请帮忙
提示:阅读您的讲义/教科书/关于如何编写构造函数的在线Java教程。
答案 1 :(得分:0)
我读这个问题的方式,静态方法应该提供数据,而不是知道它正在计算机场之间的距离。如果意图是这样做的话,它需要接收两个Airport对象,而不是所描述的4个双打。
注意:作为一般规则,请避免使任何可变数据静态可用(缓存除外)。
答案 2 :(得分:0)
以下是如何将3个双打传递给Airport
的示例:
public class Airport {
public double latitude;
public double longitude;
public double elevation;
public Airport(double latitude, double longitude, double elevation) {
this.latitude = latitude;
this.longitude = longitude;
this.elevation = elevation;
}
//if you need to access variables you add get methods like:
public double getLatitude(){
return latitude;
}
public static void main( String[] args) {
Airport ap = new Airport(30.34567, 27.6789, -140);
System.out.println("Airport latitude is "+ ap.getLatitude());
}
}