繁体   English   中英

一遍又一遍地阵列打印相同的单元格

Array printing out same cell over and over

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在让用户输入数据的名字,姓氏和号码。 问题是当我打印出数组时,它只会打印出最后输入的数据。

例如,如果用户输入:(F,V 12345)(L,K 2345)(R,G 4555)//使用首字母代替名称

该程序将打印出:

R,G 4555 R,G 4555 R,G 4555

Datab.java

 public Datab()
{
    first = null;
    last = null;
    cell = null;
}

public Datab(String f, String l, String c)
{
    first=f;
    last=l;
    cell=c;

}
public static String getFirst(Datab friends)
{
    Scanner kb = new Scanner(System.in);
    System.out.println("Enter First name: ");
    first = kb.next();
    return first;

}
public static String getLast(Datab friends)
{
    Scanner kb = new Scanner(System.in);
    System.out.println("Enter Last name: ");
    last = kb.next();


    return last;  
} 
public static String getCell(Datab friends)
{
    Scanner kb = new Scanner(System.in);
    System.out.println("Enter Cell Number: ");
    cell = kb.next();

    return cell;

}



 public String toString(){




 return (first + " ,"+" "+ last + " "+ cell);



   }

}

DBMS.java

Datab[] friends = new Datab[n];


    for (int i = 0; i < friends.length; i++) {
        friends[i] = new Datab();
        System.out.println("\nFilling object #: " + (i + 1));



        friends[i].getFirst(friends[i]);

        friends[i].getLast(friends[i]);
        friends[i].getCell(friends[i]);


    }

for(int x=0; x<friends.length; x++){

            System.out.println(friends[x]);
        }
2 个回复

将变量first, last, cell定义为静态的原因。

您应该删除static,并使其特定于实例。 方法同样适用。

当您将变量设为静态时,您只有一个相同的实例,无论您最后分配的值是什么,您都将看到该实例,因此无论您之前分配了什么,都将看到相同的值被打印。

变量firstlastcell是静态的。 此外,为初始化变量而定义的方法getFirst()getLast()getCell()是静态的。

为类的所有实例的静态成员(变量和成员)创建的副本只有一个。 因此,在您的情况下,类Datab的所有实例(即,friends [])都引用变量 first,last,cell的相同副本

从变量声明和方法中删除static关键字将解决此问题,因为Datab的所有实例将指向不同的变量。

4 一遍又一遍地构造相同的对象

我刚学过C ++,在练习的时候遇到了一种情况,我想将所有向量数组的值重置为零。 我想知道,如果继续这样做,vectorArr实际会发生什么: 它是否只是从内存中丢弃前一个,并使用相同的名称制作一个新的? ...

6 如何避免一遍又一遍地替换相同的片段?

我正在创建我的第一个android应用程序。 做完必要的作业后,我带过来寻求帮助。 片段A可以从导航抽屉中调用。 再次,如果我滑动导航栏并调用片段A。其先前重叠的已调用片段A。问题是用户必须单击两次以返回主屏幕。 我分享了一些屏幕截图和摘要。 启动片段A(Help_Frag ...

8 gradlewAssemble一遍又一遍地生成相同的APK

我目前在使用react native的android应用的构建过程中遇到问题。 运行命令: 正在生成一个新的APK,但js包似乎一直都一样。 结果,构建中未包含任何应用程序更新。 最重要的是,使用以下命令在模拟器中运行应用程序时: 在模拟器中更新应用程序。 假设这是一 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM