Java Set&;获取方法

Java Set&;获取方法,java,methods,get,set,Java,Methods,Get,Set,我是这里的学生 我很难理解如何设置和获取方法。我正在独立编写第9版《Java编程》教材中的一个问题,我被要求做以下工作: import java.util.Scanner; public class TestSandwich { public static void main(String[] args) { String Ingredient; String Bread; Double Price; Scanner keyboard = new Scanner(

我是这里的学生

我很难理解如何设置和获取方法。我正在独立编写第9版《Java编程》教材中的一个问题,我被要求做以下工作:

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());       
}
}
“创建一个名为
Sandwich
的类。数据字段包括主要成分(如金枪鱼)的
String
、面包类型(如小麦)的
String
、价格(如4.99)的
double
。包括获取和设置每个字段值的方法。”

然后它要求我这样做:

“创建名为
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());       
}
}
我完成了这个,它工作得很好,但是我意识到我没有创建任何集合方法。有人能根据指示向我解释一下更好的方法吗?我确信这种方法是可行的,但我希望能照本宣科,更好地理解它。我不确定从哪里开始创建set方法。请让我知道。非常感谢

附言:这不是家庭作业,我只是想更好地理解这一点

-标记

简单的模仿:

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

并在调用之前/之后打印您的
obj
(当然还有:@覆盖该类以获得有意义的输出)。

在这里,您可以使用这些值创建一个对象

Sandwich obj = new Sandwich(Ingredient, Bread, Price);
这里创建一个空对象,然后设置值

Sandwich obj = new Sandwich();
obj.setIngredient(Ingredient);
obj.setBread(Bread);
obj.setPrice(Price);

在名为“三明治”的类中考虑以下代码:

public Sandwich(String ing, String bre, double pri) {
ingredient = ing;
bread = bre;
price = pri;
}
这称为构造函数,这是一种特殊的方法,与类具有相同的名称。但它不返回值。此构造函数接受三个参数,其中两个是字符串,一个是双精度值。在构造函数体中,实际上是将传递给构造函数的值设置为参数,因此可以将其视为一个同时设置三个值的SETTER方法。

现在在同一类内考虑这个代码:

public void setIngredient(String ing) {
this.ingredient = ing;
}
此方法是一种setter方法,只设置一个值,即成分。您可以创建其他setter方法,也可以这样命名您想要的任何名称。例如,三明治类中的setBread和setPrice方法如下:

public setBread(String bre) {
bread = bre;
}
public setPrice(double pri) {
price = pri;
}
您可以使用构造函数来设置值,也可以使用“setter方法”(它只是一个用于接受和设置值的普通方法)。您可以使用单个方法一次性设置所有值,这是构造函数正在做的事情,或者使用单个方法设置每个值,就像我们定义的setter方法一样

如果使用单个方法一次设置所有值(在本例中为构造函数),则在实例化三明治类期间,您需要一次将所有值传递给构造函数,就像这样:

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

如果不按正确的顺序同时将三个变量传递给构造函数,则会发生编译错误。由于已经有一个构造函数设置了三个值,所以其他setter方法没有多大用处,除非以后需要更改这些值。我希望这有帮助。

您有一个
setComponent()
方法。看看这个,对
bread
price
做同样的事情,请遵循Java命名约定:包、属性、变量、参数、方法必须以小写开头,而类,接口应以大写/开头,无需拆分声明和赋值。它可以一次完成
double price=keyboard.nextDouble()@azro你说得对,我道歉。我修好了,谢谢@GBLODGET我知道了,谢谢@幽灵猫我会修复它并记住它以备将来参考。谢谢这回答了实际问题。谢谢!我意识到构造函数和setter的使用有点多余。我现在已经把它编码为只使用构造函数。我很高兴我能帮上忙。