使用用户输入创建新对象[JAVA] [英] Using user input to create a new object [JAVA]
问题描述
import java.util.Scanner;
public class Main
{
public static void main(String args [])
{
String input;
扫描仪扫描仪=新扫描仪(System.in);
do
{
System.out.println(Computer Menu);
System.out.println(1。添加新的桌面信息);
System.out.println(2。添加新的笔记本电脑信息);
System.out.println(3。显示所有计算机信息);
System.out.println(4.退出);
System.out.print(请输入1到4:);
input =(scanner.nextLine());
if(input.equals(1))
{
桌面desktop1 = new Desktop();
System.out.println(请输入桌面ID:);
desktop1.setID(scanner.nextLine());
System.out.println(请输入桌面处理器速度:);
desktop1.setProcess(Double.parseDouble(scanner.nextLine()));
System.out.println(请进入桌面RAM:);
desktop1.setRam(Double.parseDouble(scanner.nextLine()));
System.out.println(请进入桌面硬盘空间:);
desktop1.setDisk(Double.parseDouble(scanner.nextLine()));
System.out.println(请输入桌面监视器类型:);
desktop1.setMonitor(scanner.nextLine());
System.out.println(请输入桌面价格:);
desktop1.setPrice(Double.parseDouble(scanner.nextLine()));
desktop1.displayComputer();
}
else if(input.equals(2))
{
笔记本电脑laptop1 = new Laptop();
System.out.println(请输入笔记本电脑ID:);
laptop1.setID(scanner.nextLine());
System.out.println(请输入笔记本电脑处理器速度:);
laptop1.setProcess(Double.parseDouble(scanner.nextLine()));
System.out.println(请输入笔记本电脑RAM:);
laptop1.setRam(Double.parseDouble(scanner.nextLine()));
System.out.println(请输入笔记本电脑硬盘空间:);
laptop1.setDisk(Double.parseDouble(scanner.nextLine()));
System.out.println(请输入笔记本电脑重量:);
laptop1.setWeight(Double.parseDouble(scanner.nextLine()));
System.out.println(请输入笔记本电脑价格:);
laptop1.setPrice(Double.parseDouble(scanner.nextLine()));
laptop1.displayComputer();
}
计算机超类
public class Computer
{
String ID;
双进程;
双ram;
双盘;
双价;
void setID(String _id)
{
ID = _id;
}
void setProcess(double _Process)
{
process = _Process;
}
void setRam(double _Ram)
{
ram = _Ram;
}
void setDisk(double _Disk)
{
disk = _Disk;
}
void setPrice(double _Price)
{
price = _Price;
}
String getID()
{
return ID;
}
double getProcess()
{
return process;
}
double getRam()
{
return ram;
}
double getDisk()
{
return disk;
}
double getPrice()
{
return price;
}
void displayComputer()
{
System.out.println(Computer ID:+ getID());
System.out.println(Processor Speed:+ getProcess());
System.out.println(RAM:+ getRam());
System.out.println(Harddisk:+ getDisk());
System.out.println(Price:+ getPrice());
}
}
桌面子类
public class Desktop extends Computer
{
String monitor;
void setMonitor(String _Monitor)
{
monitor = _Monitor;
}
String getMonitor()
{
return monitor;
}
void displayComputer()
{
System.out.println(Computer ID:+ getID());
System.out.println(Processor Speed:+ getProcess());
System.out.println(RAM:+ getRam());
System.out.println(Harddisk:+ getDisk());
System.out.println(Monitor Type:+ getMonitor());
System.out.println(Price:+ getPrice());
System.out.println();
}
}
笔记本电脑子类
public class Desktop extends Computer
{
double Weight;
void setWeight(String _Weight)
{
重量= _Weight;
}
String getWeight()
{
返回重量;
}
void displayComputer()
{
System.out.println(Computer ID:+ getID());
System.out.println(Processor Speed:+ getProcess());
System.out.println(RAM:+ getRam());
System.out.println(Harddisk:+ getDisk());
System.out.println(Weight:+ getWeight());
System.out.println(Price:+ getPrice());
System.out.println();
}
}
所以有一个类和两个子类,但是不要以为重要。所以如果我输入1,它应该为桌面创建一个新对象,如果我输入2,它将创建一个新的对象为笔记本电脑。当我输入3时,应该显示所有创建的对象。我不知道如何让他们的工作请帮忙。
使用您提供的限制信息,我尝试解决问题:
- 我没有添加任何属性到桌面和笔记本电脑类,覆盖toString方法在这两个类ie
public class Laptop {
public String toString(){
returnLaptop [getClass()=+ getClass()+,hashCode()=
+ hashCode()+,toString()=+ super.toString()+]
}
}
public class桌面{
public String toString(){
returnDesktop [getClass()=+ getClass()+,hashCode()=
+ hashCode()+,toString )=+ super.toString()+];
}
}
您的主要方法如下所示:
public static void main(String args [])
{
String input;
扫描仪扫描仪=新扫描仪(System.in);
列表< Object> listOfObject = new ArrayList<>();
do
{
System.out.println(Computer Menu);
System.out.println(1。添加新的桌面信息);
System.out.println(2。添加新的笔记本电脑信息);
System.out.println(3。显示所有计算机信息);
System.out.println(4.退出);
System.out.print(请输入1到4:);
input =(scanner.nextLine());
if(input.equals(1)){
Desktop desktop1 = new Desktop();
listOfObject.add(desktop1);
} else if(input.equals(2)){
笔记本电脑laptop1 = new Laptop();
listOfObject.add(laptop1);
} else if(input.equals(3)){
for(Object obj:listOfObject){
if(obj instanceof Desktop){
桌面d1 =(桌面)OBJ;
System.out.println(d1.toString());
} else if(obj instanceof Laptop){
Laptop l1 =(Laptop)obj;
System.out.println(l1.toString());
}
}
}
} while(!input.equals(4));
}
Hi I am trying to create a program to create a new object whenever the user inputs a new information for a certain object. Currently I have this.
import java.util.Scanner;
public class Main
{
public static void main (String args[])
{
String input;
Scanner scanner = new Scanner(System.in);
do
{
System.out.println("Computer Menu");
System.out.println("1. Add a new Desktop Information");
System.out.println("2. Add a new Laptop Information");
System.out.println("3. Display all Computer Information");
System.out.println("4. Quit");
System.out.print("Please enter either 1 to 4: ");
input =(scanner.nextLine());
if (input.equals("1"))
{
Desktop desktop1 = new Desktop();
System.out.println("Please enter Desktop ID: ");
desktop1.setID (scanner.nextLine());
System.out.println("Please enter Desktop Processor Speed: ");
desktop1.setProcess (Double.parseDouble(scanner.nextLine()));
System.out.println("Please enter Desktop RAM: ");
desktop1.setRam (Double.parseDouble(scanner.nextLine()));
System.out.println("Please enter Desktop Harddisk Space: ");
desktop1.setDisk (Double.parseDouble(scanner.nextLine()));
System.out.println("Please enter Desktop Monitor Type: ");
desktop1.setMonitor (scanner.nextLine());
System.out.println("Please enter Desktop Price: ");
desktop1.setPrice (Double.parseDouble(scanner.nextLine()));
desktop1.displayComputer();
}
else if (input.equals("2"))
{
Laptop laptop1 = new Laptop();
System.out.println("Please enter Laptop ID: ");
laptop1.setID (scanner.nextLine());
System.out.println("Please enter Laptop Processor Speed: ");
laptop1.setProcess (Double.parseDouble(scanner.nextLine()));
System.out.println("Please enter Laptop RAM: ");
laptop1.setRam (Double.parseDouble(scanner.nextLine()));
System.out.println("Please enter Laptop Harddisk Space: ");
laptop1.setDisk (Double.parseDouble(scanner.nextLine()));
System.out.println("Please enter Laptop Weight: ");
laptop1.setWeight (Double.parseDouble(scanner.nextLine()));
System.out.println("Please enter Laptop Price: ");
laptop1.setPrice (Double.parseDouble(scanner.nextLine()));
laptop1.displayComputer();
}
Computer super class
public class Computer
{
String ID;
double process;
double ram;
double disk;
double price;
void setID (String _id)
{
ID = _id;
}
void setProcess (double _Process)
{
process = _Process;
}
void setRam (double _Ram)
{
ram = _Ram;
}
void setDisk (double _Disk)
{
disk = _Disk;
}
void setPrice (double _Price)
{
price = _Price;
}
String getID()
{
return ID;
}
double getProcess()
{
return process;
}
double getRam()
{
return ram;
}
double getDisk()
{
return disk;
}
double getPrice()
{
return price;
}
void displayComputer()
{
System.out.println("Computer ID: " + getID());
System.out.println("Processor Speed: " + getProcess());
System.out.println("RAM: " + getRam());
System.out.println("Harddisk: " + getDisk());
System.out.println("Price: " + getPrice());
}
}
Desktop sub class
public class Desktop extends Computer
{
String monitor;
void setMonitor (String _Monitor)
{
monitor = _Monitor;
}
String getMonitor()
{
return monitor;
}
void displayComputer()
{
System.out.println("Computer ID: " + getID());
System.out.println("Processor Speed: " + getProcess());
System.out.println("RAM: " + getRam());
System.out.println("Harddisk: " + getDisk());
System.out.println("Monitor Type: " + getMonitor());
System.out.println("Price: " + getPrice());
System.out.println("");
}
}
Laptop sub class
public class Desktop extends Computer
{
double Weight;
void setWeight(String _Weight)
{
Weight= _Weight;
}
String getWeight()
{
return Weight;
}
void displayComputer()
{
System.out.println("Computer ID: " + getID());
System.out.println("Processor Speed: " + getProcess());
System.out.println("RAM: " + getRam());
System.out.println("Harddisk: " + getDisk());
System.out.println("Weight: " + getWeight());
System.out.println("Price: " + getPrice());
System.out.println("");
}
}
So There is one class and 2 sub classes but I don't think it matters. So if i entered 1 it should create a new object for Desktop and if i entered 2 it would create a new object for Laptop. And when I enter 3 it should show all the objects created. I don't know how to get any of them to work please help.
With the limit information provided by you I try to solve the issue:
- I am not adding any attributes to Desktop and Laptop class, overriding toString Method in both the Classes i.e.
public class Laptop {
public String toString() {
return "Laptop [getClass()=" + getClass() + ", hashCode()="
+ hashCode() + ", toString()=" + super.toString() + "]";
}
}
public class Desktop {
public String toString() {
return "Desktop [getClass()=" + getClass() + ", hashCode()="
+ hashCode() + ", toString()=" + super.toString() + "]";
}
}
Your Main method look like:
public static void main (String args[])
{
String input;
Scanner scanner = new Scanner(System.in);
List<Object> listOfObject = new ArrayList<>();
do
{
System.out.println("Computer Menu");
System.out.println("1. Add a new Desktop Information");
System.out.println("2. Add a new Laptop Information");
System.out.println("3. Display all Computer Information");
System.out.println("4. Quit");
System.out.print("Please enter either 1 to 4: ");
input =(scanner.nextLine());
if (input.equals("1")){
Desktop desktop1 = new Desktop();
listOfObject.add(desktop1);
}else if (input.equals("2")){
Laptop laptop1 = new Laptop();
listOfObject.add(laptop1);
}else if(input.equals("3")){
for(Object obj : listOfObject){
if(obj instanceof Desktop){
Desktop d1 = (Desktop)obj;
System.out.println(d1.toString());
}else if(obj instanceof Laptop){
Laptop l1 = (Laptop)obj;
System.out.println(l1.toString());
}
}
}
}while(!input.equals("4"));
}
这篇关于使用用户输入创建新对象[JAVA]的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!