如何在 java 中更新详细信息



我想更新员工姓名,让用户选择员工 并更新相应的玩家详细信息。我正在使用 getter 和 setter 方法来更新值。但在输出中,没有显示新的更新值。查看我错了的以下代码。

import java.io.*;
import java.util.*;
class product
{
String name;
public product(String name)
{
this.name = name;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public void display()
{
System.out.println("Name is " + getName());
}
}
class Main {
public static void main (String[] args) 
{
Scanner sc = new Scanner(System.in);
String n;
System.out.println("Update player name");
n = sc.nextLine();
product p1 = new product(n);
p1.display();
while(true)
{
int num=sc.nextInt();
switch(num)
{
case 1:
System.out.println("Update name");
String n1 = sc.nextLine();
product p2 = new product(n1);
p2.display();
case 2:
System.out.println("Display");
p1.display();
}
}
}
}

在输出中,我没有获得更新的名称,并且在显示详细信息时,它显示的是以前的名称而不是更新的名称。 Plaese 告诉我如何使用 getter 和 setter 获取更新的值。 谢谢

在情况 1 中,您不更新名称,而是创建类的新实例。 尝试 p1.setName(( 而不是 new。

您没有使用您的二传手来更改 p1 的值...相反,您正在创建一个新对象(然后您不会显示该对象(。这与你所说的你想要的方法不同。只要你改变,你的做事方式就可以有效

产品 p2 = 新产品(n1(;

p1 = 新产品(n1(;

但是关于你的要求...要使用 setter 进行更改,您应该在情况 1 中使用 setter 方法,将提到的第一行代码替换为

p1.setName(n1(;

检查以下内容

product p2 = new product("Ananya");//Create a new object with a name
p2.display(); //prints Ananya
p2.setName("Ananyaaa");//set a new name
p2.display(); prints Ananyaaa

你可以改变

case 1:
System.out.println("Update name");
String n1 = sc.nextLine();
product p2 = new product(n1);
p2.display();

case 1:
System.out.println("Update name");
String n1 = sc.nextLine();
p1.setName(n1);
p1.display();

您不需要另一个对象,而您所做的只是实际更新现有对象。

最新更新