Проблемы с методами-модификаторами из двух разных классов - PullRequest
0 голосов
/ 18 января 2019

Я пытаюсь вызвать метод из другого класса, но нас никогда не учили, как это правильно делать. Мне нужна моя prodCompany в моем классе фильма, чтобы получить производственную информацию из моего производственного класса, но я не уверен, как вернуть этот результат с несколькими вариациями в моем классе фильма.

\\My movie class:

   public void setProdCompany(String someName, String someCity, String someState) {
      prodCompany = someName + someCity + someState;
   }
   public String toString() {
      String result = "\nMovie Title:\t\t" + movieTitle + "\nMovie Length:\t\t" 
                + length + "\nMovie Year:\t\t" + year + "\nMovie Production:\t" +
                prodCompany + "\n\n";
        return result;
   }

\\From my production class:

 public class Production {
   private String companyName;
   private String locationCity; 
   private String locationState;

   public Production() {
      companyName = "?";
      locationCity = "?";
      locationState = "?";
   }

   public String getCompanyName() {
      return companyName;
   }
   public String getLocationCity() {
      return locationCity;
   }
   public String getLocationState() {
      return locationState;
   }
   public void setCompanyName(String someName) {
      companyName = someName;
   }
   public void setLocationCity(String someCity) {
      locationCity = someCity;
   }
   public void setLocationState(String someState) {
      locationState = someState;
   }
   public String toString() {
      String result = companyName + " at " + locationCity + " " + 
                locationState;
      return result;        
   }
}

Кроме этого все работает, и мой вывод выглядит следующим образом:

Choice      Action
------      ------
A           Add Movie
D           Display Movie
Q           Quit
?           Display Help

What action would you like to perform? a
Please enter the Movie information:
Enter its title:  Field of Dreams
Enter its length: 107
Enter its year:   1989
Enter its production company name:     Gordon Company
Enter its production company's city:   Thomasville
Enter its production company's state:  NC
What action would you like to perform? D

Movie Title:        Field of Dreams
Movie Length:       107
Movie Year:         1989
Movie Production:   null

Ответы [ 3 ]

0 голосов
/ 18 января 2019

Вместо того чтобы делать prodCompany в вашем Movie классе строкой, вы должны сделать его типа Production.

Кажется, вы хотите инициализировать производственную компанию с вопросительными знаками. И тогда вы можете перезаписать название, город и штат производственной компании. Итак, ваш Movie класс должен выглядеть так:

public class Movie {

    private Production prodCompany;

    public Movie() {
        prodCompany = new Production();
    }

    public void setProdCompany(String someName, String someCity, String someState) {
        prodCompany.setCompanyName(someName);
        prodCompany.setLocationCity(someCity);
        prodCompany.setLocationState(someState);
    }
...
0 голосов
/ 18 января 2019

Перед вызовом из другого класса вам необходимо создать его экземпляр. После вы можете вызвать его методы.

Как это:

private Production prodCompany = new Production();

public void setProdCompany(String someName, String someCity, String someState) {
    prodCompany = someName + someCity + someState;
0 голосов
/ 18 января 2019

вам необходимо установить и понять основную логику того, какова ваша действительная функциональность метода и как получить доступ к другому классу. Посмотрим, как это можно сделать:

public void getProdCompany() {  //Check here, there is no point passing arguments.
   Production prod = new Production();  // Calling your constructor and creating a Production instance.
   // From your Production instance:prod , you may access the getters of Production's private variables.
   prodCompany = prod.getCompanyName() + prod.getLocationCity() + prod.getLocationState();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...