Установить и получить методы - PullRequest
0 голосов
/ 30 ноября 2018

Я учусь на Java!

Мне трудно понять, как создавать и получать методы.Я работаю над вопросом в моем учебнике Программирование на Java, 9-е издание самостоятельно, и меня просят сделать следующее:

"Создать класс с именем Sandwich. Поля данных включают String для основного ингредиента (например, тунец ), String для типа хлеба (например, пшеница ), объявление double для цены (например, 4,99).Включите методы для получения и установки значений для каждого из этих полей. "

Затем он попросит меня сделать следующее:

" Создайте приложение с именем TestSandwich, которое создает один объект Sandwich идемонстрирует использование методов set и get. "

Итак, для первой части я создал файл .java со следующим кодом:

public class Sandwich {
private String ingredient;
private String bread;
private double price;

public Sandwich(String ing, String bre, double pri) {
    ingredient = ing;
    bread = bre;
    price = pri;
}

public void setIngredient(String ing) {
    this.ingredient = ing;
}

public String getIngredient() {
    return ingredient;
}
public String getBread() {
    return bread;
}
public Double getPrice() {
    return price;
}
}

Для второй части я сделалследующее:

import java.util.Scanner;
public class TestSandwich {
public static void main(String[] args) {
    String Ingredient;
    String Bread;
    Double Price;
    Scanner keyboard = new Scanner(System.in);

    System.out.println("MAKE A SANDWICH");
    System.out.println("Enter an ingredient:  ");
    Ingredient = keyboard.nextLine();
    System.out.println("Enter bread:  ");
    Bread = keyboard.nextLine();
    System.out.println("Enter a price");
    Price = keyboard.nextDouble();

    Sandwich obj = new Sandwich(Ingredient, Bread, Price);

    System.out.println("The ingredient is " + obj.getIngredient());
    System.out.println("The bread is " + obj.getBread());
    System.out.println("The price is " + obj.getPrice());       
}
}

Я выполнил это, и оно работает хорошо, однако я понимаю, что я не создал никаких методов набора.Может ли кто-нибудь объяснить мне лучший способ сделать это в соответствии с указаниями?Я уверен, что этот способ работает, но я хотел бы сделать это по книге и быть в состоянии понять это лучше.Я не уверен, с чего начать с создания набора методов.Пожалуйста, дайте мне знать.Большое спасибо!

PS: Это НЕ домашняя работа, я просто пытаюсь понять это немного лучше.

-Mark

Ответы [ 3 ]

0 голосов
/ 30 ноября 2018

Здесь вы создаете объект с этими значениями

Sandwich obj = new Sandwich(Ingredient, Bread, Price);

Здесь вы создаете пустой объект и затем устанавливаете значения

Sandwich obj = new Sandwich();
obj.setIngredient(Ingredient);
obj.setBread(Bread);
obj.setPrice(Price);
0 голосов
/ 30 ноября 2018

Рассмотрим этот код в вашем классе с именем Sandwich :

public Sandwich(String ing, String bre, double pri) {
ingredient = ing;
bread = bre;
price = pri;
}

Это называется конструктором, специальным методом, имя которого совпадает с именем класса.Но это не возвращает значение.Этот конструктор принимает три параметра, два из которых являются строками, а один - двойным значением.В теле конструктора вы фактически устанавливаете значения, которые передаются конструктору в качестве параметров, и поэтому вы можете рассматривать это как метод установки, который устанавливает три значения одновременно.

Теперь рассмотрим этот код внутри того же класса:

public void setIngredient(String ing) {
this.ingredient = ing;
}

Этот метод является методом установки, который устанавливает только одно значение, то есть ингредиент.Вы также можете создавать другие методы установки, задавая любое имя по вашему желанию.Например, методы setBread и setPrice внутри класса Sandwich выглядят следующим образом:

public setBread(String bre) {
bread = bre;
}
public setPrice(double pri) {
price = pri;
}

Вы можете использовать конструктор для установки значений или «методы установки» (это просто обычный метод, который используется для принятияи установите значения).Вы можете использовать один метод для установки всех значений за один раз, что и делает конструктор, или использовать отдельные методы для установки каждого значения, например, методы определения, которые мы определили.

Если вы используете один метод для одновременной установки всех значений ( в данном случае конструктор ), то во время создания экземпляра класса Sandwich вам необходимо передать все значения одновременноконструктор, как вы это сделали:

Sandwich obj = new Sandwich(Ingredient, Bread, Price);

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

0 голосов
/ 30 ноября 2018

Просто сделайте так:

System.out.println("Enter another price");
double newPrice = keyboard.nextDouble();
obj.setPrice(newPrice);

и напечатайте obj до / после этого вызова (и, конечно: @Overwrite toString () в этом классе, чтобы получить значимый вывод).

...