Java несколько классов борьба начинающих - PullRequest
0 голосов
/ 04 августа 2020

, поэтому сейчас я беру онлайн-курс программирования. и он заставляет нас создавать два разных кода. один называется SpaService. и один называется CreateSpaService. Насколько я понимаю, они должны работать вместе, чтобы вызывать переменную (et c.), Но она не работает, и я получаю синтаксические ошибки, говоря, что переменные не объявлены, но я объявил их в другом коде.

Я должен поместить их в один и тот же do c или что-то в этом роде? Я пробовал это, но все равно не получалось. Есть ли способ связать два кода, чтобы они работали вместе? Вот два кода. кроме того, вы видите какие-либо синтаксические ошибки? Большое спасибо

import java.util.Scanner;
public class CreateSpaServices
{
 public static void main(String[] args)
 {
   
   
   SpaService firstService = new SpaService();
   SpaService secondService = new SpaService();
   
  firstService = getData(firstService);
  secondService = getData(secondService);

   System.out.println("First service details:");
   System.out.println(firstService.getServiceDescription() + " $" + firstService.getPrice());
   
   System.out.println("Second service details:");
   System.out.println(secondService.getServiceDescrption() + " $" + secondService.getPrice());
    
 }
 public static SpaService getData(SpaService service)
 {
   String service;
   double price;
   Scanner keyboard = new Scanner(System.in);
   
   System.out.print("Enter service >> ");
   service = keyboard.nextLine();
   System.out.print("Enter price >> ");
   price = keyboard.nextDouble();
   keyboard.nextLine();
   service.setServiceDescription(Service);
   service.setPrice(price);
   return service;
 }
}





//here is other code, im not sure if where I put this, or if I keep it in its own document or in this doc.

public class SpaService
{
 private String serviceDescription;
  private double price;
  
  public SpaService()
  {
    serviceDescription = "XXX";
    price = 0;
  }
  public void setServiceDescription(String service)
  {
    serviceDescription = service;
  }
  public void setPrice(double servicePrice)
  {
    price = servicePrice;
  }
  public String getServiceDescription;
  {
return serviceDescription;
}
public double getPrice()
{
  return price;
}
}

   





     

Ответы [ 3 ]

0 голосов
/ 04 августа 2020

Используете ли вы какую-либо среду IDE или командную строку для компиляции и выполнения вручную? IDE делает вещи очень простыми, но они забирают некоторые более тонкие детали обучения для начинающих.

В любом случае текстовый файл может иметь один класс Publi c и любое количество классов, не относящихся к publi c. Поскольку оба ваших класса публикуются c, они должны быть в другом файле. Классы связаны друг с другом с помощью оператора импорта, который должен быть первой строкой в ​​классе java, если он есть.

У вас также должны возникнуть проблемы с компиляцией, поскольку я вижу этот метод publi c stati c SpaService getData (служба SpaService) Поскольку вы возвращаете служебную переменную, которая имеет тип String, но ваша подпись метода ожидает SpaService

0 голосов
/ 04 августа 2020

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

  1. В getData метод, у вас есть два элемента с именами service, SpaService service и String service;, вам нужно изменить один из них.

  2. Эта строка недействительна service.setServiceDescription(Service);, вы можете 'Не относитесь к Service с большой буквы S, вам нужно ссылаться на допустимую строку.

Вот пример, который учитывает вышесказанное:

 public static SpaService getData(SpaService service)
 {
   //Create a scanner
   Scanner keyboard = new Scanner(System.in);
   
   //Get scanner input
   System.out.print("Enter service >> ");
   String description = keyboard.nextLine();

   //Add input to SpaService object
   service.setServiceDescription(description);

   //Get scanner input
   System.out.print("Enter price >> ");
   double price = keyboard.nextDouble();

   //Add input to SpaService object
   service.setPrice(price);

   //Return SpaService object
   return service;
 }

Для большей помощи отредактируйте свой вопрос, включив в него полную ошибку.

0 голосов
/ 04 августа 2020

Вы хотите, чтобы два класса в соответствующих файлах находились в одной папке:

SpaService.java
CreateSpaServices.java
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...