Java 我能';我似乎不知道如何从类创建对象
我需要一些帮助,因为我真的卡住了。我正在做这个家庭作业,我似乎不明白为什么它不起作用。以下是确切的说明Java 我能';我似乎不知道如何从类创建对象,java,Java,我需要一些帮助,因为我真的卡住了。我正在做这个家庭作业,我似乎不明白为什么它不起作用。以下是确切的说明 创建一个名为“Java1Final\u LastName”的Eclipse项目 创建一个名为“Customer”的抽象类 在类中添加两个私有字段“name”和“id” 添加一个接受2个参数“aName”和“aId”的构造函数 添加以下抽象方法“public abstract int discount();” 创建名为“OnlineCustomer”的客户子类 添加一个构造函数,该构造函数接受两
import java.time.LocalDate;
public abstract class Customer
{
// private fields
private String name;
private String idnumber;
// overloaded constructor with 2 arguments
public Customer(String aName, String aIdNumber)
{
this.name = aName;
this.idnumber = aIdNumber;
}
//abstract method
public abstract int discount();
}
public class OnlineCustomer extends Customer
{
private int discount=10;
//OnlineCustomer constructor
public OnlineCustomer(String aName, String aIdNumber)
{
//use parent constructor
super(aName, aIdNumber);
}
//body of inherited method
public int discount()
{
return discount;
}
}
-在线客户类别-
import java.time.LocalDate;
public abstract class Customer
{
// private fields
private String name;
private String idnumber;
// overloaded constructor with 2 arguments
public Customer(String aName, String aIdNumber)
{
this.name = aName;
this.idnumber = aIdNumber;
}
//abstract method
public abstract int discount();
}
public class OnlineCustomer extends Customer
{
private int discount=10;
//OnlineCustomer constructor
public OnlineCustomer(String aName, String aIdNumber)
{
//use parent constructor
super(aName, aIdNumber);
}
//body of inherited method
public int discount()
{
return discount;
}
}
-CustomerJFrame类-
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class CustomerJFrame extends JFrame implements ActionListener
{
private static final long serialVersionUID = 1L;
//fields
private JLabel nameJLabel;
private JTextField nameJTextField;
private JLabel idJLabel;
private JTextField idJTextField;
private JLabel outputJLabel;
private JButton submitJButton;
private final int WIDTH = 300;
private final int HEIGHT = 250;
public CustomerJFrame()
{
// call the super class constructor
super("Java 1 Final by Vokurka");
// set the height and width of the JFrame
setSize(WIDTH, HEIGHT);
// set the default close operation to end the program.
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setResizable(false);
// set flow layout
setLayout(new FlowLayout());
// create a label and add it to the frame
nameJLabel = new JLabel("Name: ");
add(nameJLabel);
// create a text field and add it to the frame
nameJTextField = new JTextField("", 15);
nameJTextField.selectAll();
add(nameJTextField);
// create a label and add it to the frame
idJLabel = new JLabel("Id: ");
add(idJLabel);
// create a text field and add it to the frame
idJTextField = new JTextField("", 15);
idJTextField.selectAll();
add(idJTextField);
// create and add a message JLabel
outputJLabel = new JLabel("Customer: Name, ID:000, Discount: 0%");
add(outputJLabel);
// create and add a JButton
submitJButton = new JButton("Submit");
submitJButton.addActionListener(this);
add(submitJButton);
// set the JFrame to visible
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e)
{
// get the user data from the JTextFields
String nameresults = nameJTextField.getText();
String idresults = nameJTextField.getText();
// set the results to the message JLabel
outputJLabel.setText("Customer:" + nameresults, "ID:" + idresults, "Discount: 10%");
}
}
-CustomerApp类-
public class CustomerApp
{
public static void main(String[] args)
{
// create a JMyFrame object
CustomerJFrame aFrame = new CustomerJFrame();
}
}
任何帮助都将不胜感激。CustomerJFrame在设置输出文本时出错(如果有帮助)。谢谢大家 如消息所述:您正在传递一个方法3参数,而它只需要1:
outputJLabel.setText("Customer:" + nameresults, "ID:" + idresults, "Discount: 10%");
相反,将它们连接到一个字符串中(或类似的内容):
你不应该像步骤中说的那样创建对象吗
OnlineCustomer oc = new OnlineCustomer(nameJTextField.getText(), idJTextField.getText());
发布错误消息,并可能缩小问题代码的范围,而不是发布整个应用程序,将有助于您获得答案。您最好问一些准确的问题。没有人愿意做别人的家务(我真的不知道怎么了。错误消息是这样的;类型JLabel中的方法setText(String)不适用于参数(String,String,String)。如果我知道问题出在哪里,我会询问具体情况,对不起,我是新手。就像消息所说的:当它只需要1时,你要传递3个参数。你为什么不问问你的教授?这是他的工作,不是我们的。我不知道“安置有什么不同。谢谢!我真的很感谢你的帮助。
”
安置没有什么不同。我刚刚添加了一个额外的空格,以便将ID
和Discount
与前面的文本分开。这里的重要变化是使用+
而不是,
将字符串的位连接在一起。如果是为了澄清,请您将其作为注释发布好吗?@Phani肯定我现在会重新编辑它,但我以前不能,因为当时我没有50%的声誉来提交注释。