2016-10-15 2 views
-1

Я делаю домашнее задание, и мне трудно найти проблему здесь. Программа, которую я написал, не компилируется. Пожалуйста помоги. Домашние задания:Как получить доступ к переменным в основном классе из другого класса в пакете (java)?

«Создайте класс под названием« Аэропорт »со следующими полями: Идентификатор. Координаты, которые состоят из Широта и долготы (не создавайте два из каждого!). Широта положительна, чтобы указать, что север экватора и отрицательный когда он расположен в южном полушарии. Долгота отрицательна, чтобы указать на Запад и положительную, чтобы указать, что она находится на востоке от среднего значения по Гринвичу. Магнитная вариация, которая также обозначается отрицательной для Запада и позитивной для Востока. Высота над уровнем моря в футах

Добавить статический метод, который принимает четыре удвоения, которые являются двумя заданными координатами (двойной lat1, double long1, double lat2, double long2) и возвращает расстояние в морских милях, используя формулу, дающую в Лаборатория 05. Например, аэропорт Сан-Диего имеет значения ID: SAN, Lat: 32.7335556, Long: -117.1896667, Var: 14, Elev: 16.8 '(http://www.airnav.com/airport/SAN) Класс должен иметь методы доступа и мутатора для каждого поля. "

Я сделал большую часть работы здесь, но я думаю, что мне нужно добавить конструкторы здесь. Пожалуйста помоги.

Основной класс:

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); 
    } 
} 

и класс аэропорта ....

package lab06; 

public class Airport 
{ 
    public double latitude; 
    public double longitude; 
    public double elevation; 

    //The setLatitude method stores a value in the latitude field. 
    public void setLatitude(double latitude) 
    { 
     this.latitude = latitude; 
    } 
    //The setLongitude method stores a value in the longitude field. 
    public void setLongitude(double longitude) 
    { 
     this.longitude = longitude; 
    } 
    //The setElevation method stores a value in the elevation field. 
    public void setElevation (double elevation) 
    { 
     this.elevation = elevation; 
    } 
    //The getLatitude method returns an Airport object's latitude. 
    public double getLatitude() 
    { 
     return latitude; 
    } 
    //The getLongitude method returns an Airport object's longitude. 
    public double getLongitude() 
    { 
     return longitude; 
    } 
    //The getElevation method returns an Airport object's elevation. 
    public double getElevation() 
    { 
     return elevation; 
    } 
} 
+1

Я прочитал вопрос, как «Это не компилируется, и я не могу быть обеспокоен прочтении сообщения об ошибке или дает его вам Я ожидаю, что вы сделаете для меня всю работу ». – John3136

+0

* Почему * он не компилируется? Что * конкретно * происходит, когда вы * пытаетесь * скомпилировать его? Есть что-то * прекращение * его от компиляции? Что это такое? – David

+0

Не размещайте столько кода. Опубликуйте [MCVE]: опубликуйте минимальный минимум, чтобы показать свою проблему. – c0der

ответ

0

Как получить доступ к переменным в главном классе из другого класса в пакете (Java)?

Я предполагаю, что вы спрашиваете о доступе к локальным переменным, указанным в основном >> методе < <. Простой ответ: вы НЕ МОЖЕТЕ.

Но вы можете передать значение значения переменной переменной в другой класс как аргумент метода или конструктора.

Я сделал большую часть работы здесь, но я думаю, что мне нужно добавить сюда конструкторы.

Да. Это было бы хорошей идеей.

Пожалуйста, помогите

Подсказка: читать ваши конспекты/текст книги/онлайн Java учебник о том, как написать конструктор.

+0

Спасибо за помощь Стивен. –

0

Как я прочитал вопрос, статический метод должен быть предоставлен с данными и не знать, что он рассчитывает расстояния между аэропортами. Если бы это было сделано, ему нужно было бы взять два объекта аэропорта, а не 4 двухместных, как описано.

Примечание. Как правило, избегайте внесения каких-либо изменяемых данных, статически доступных (за исключением кеширования).

+0

Этот пост не является фактической попыткой ответить на вопрос. Обратите внимание, что [Переполнение стека не работает, как дискуссионный форум] (http://stackoverflow.com/about), это сайт вопросов и ответов, в котором каждый пост является вопросом или ответом на вопрос. Сообщения также могут иметь [комментарии] (http://stackoverflow.com/help/privileges/comment) - небольшие предложения, подобные этой, которые могут быть использованы для критики или запроса разъяснений от автора. Это должен быть комментарий или [новый вопрос] (http://stackoverflow.com/questions/ask). –

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()); 
    } 

} 
+0

пользователя запрашивают координаты. –

+0

пользователю программы предлагается ввести координаты ... –

+0

Опубликовать [MCVE]. См. Также: http://stackoverflow.com/help/someone-answers – c0der

Смежные вопросы