Java:如何创建10只猫?当Cat(“ cat” + i)=“ cat name”不能像其他语言那样工作时 - java

使用循环,我可以创建

My cat is: Cat1
...
My cat is: Cat1

但是,当我尝试使用

  Cat ("cat"+i) = new Cat("Cat" + i);

我在犯错误...

那么,纠正我的代码以产生的简化列表方法是什么?

cat1 ... cat10 cat instances?


public class TestCat{ 
  public static void main(String [] args){ 

 for (int i=1; i<10; i++){     
   //Cat ("cat"+i) = new Cat("Cat 1");
   Cat cat1 = new Cat("Cat 1");  
   System.out.println("My cat is:  " + cat1 ); 
  }
 } 
} 

class Cat{

 static String catName;
 public Cat(String catName){
   this.catName=catName;
 }
 public String toString(){
   return catName;
}
}

对不起...。我应该说

如何创建十个10个Cat实例..... cat1,... cat2 .....因为使用其他语言,所以我可以使用“ cat” || i = ...创建不同的变量,我想知道如何我可以用Java做类似的事情。

换句话说,我想通过考虑循环信息来命名要创建的实例。

参考方案

如果您不知道要养多少只猫,请使用收藏夹。

public class TestCat
{ 
  public static void main(String [] args)
  { 

    Cat[] cats = new Cat[10];    
    Vector catsUnlimited = new Vector(10);    
    Cat myCat = null;

    for (int i=1; i<11; i++)
    {     
    myCat = new Cat("Cat" + i); 
      cats[i-1]= myCat; 

      catsUnlimited.addElement(new Cat("Cat" + i));

      System.out.println("My cat is:  " + cats[i-1] ); 
    }

    System.out.println("Known cats");
    for (int x = 0; x < catsUnlimited.size(); x++)
    {        
     System.out.println("Cat #" + (x+1) + ":" +(Cat)catsUnlimited.get(x));
    }    
  } 
} 

注意:此代码产生不正确的结果,并让我感到困惑,直到我更靠近Cat类。

My cat is:  Cat1
My cat is:  Cat2
My cat is:  Cat3
My cat is:  Cat4
My cat is:  Cat5
My cat is:  Cat6
My cat is:  Cat7
My cat is:  Cat8
My cat is:  Cat9
My cat is:  Cat10
Known cats
Cat #1:Cat10
Cat #2:Cat10
Cat #3:Cat10
Cat #4:Cat10
Cat #5:Cat10
Cat #6:Cat10
Cat #7:Cat10
Cat #8:Cat10
Cat #9:Cat10
Cat #10:Cat10

这是罪魁祸首:

public class Cat
{
     static String catName;

删除static,您会很高兴。

“ new”语句之后的花括号有什么作用? - java

我在查看this example并想知道第一行的作用:private SiteStreamsListener listener = new SiteStreamsListener() { 看起来您可以以这种方式声明其他方法或重写方法。例如,我可以做以下事情吗?ArrayList myList = new ArrayList() { @Override Str…

“ finally”子句在异常处理中的好处 - java

作为对此的新手,在异常处理中使用finally子句有什么好处。换句话说,什么时候最好使用它,什么时候最好不要使用它。我唯一想到的就是关闭输入/输出流……还有其他好处? 参考方案 StinePike撰写的任何内容都很完美,但我想在其中添加一些内容。无论是否发生异常,都将执行finally块...。因此,我们可以通过在try块以及catch block()中写入…

为什么新的FileWriter(“ abc.txt”)创建一个新文件而新的File(“ abc.txt”)却没有? - java

new File("abc.txt")不会创建实际文件,而new FileWriter("abc.txt")会在磁盘上创建文件。在查看源代码时,我发现new FileWriter("abc.txt")最终创建了一个文件,如new File() 参考方案 类java.io.File的构造方法不会在磁盘…

string.split(“ _(B”) - java

基本上,这行代码行不通,我不确定原因: String[] stringHolder = string.split("_(B"); 我收到此错误:索引3附近的未封闭组此行代码有效: String[] stringHolder = string.split("_B"); 因此,这使我相信它是由“(”引起的。有人可以告诉我如…

转换汉字时出现Java桥代码错误:“ utf-8”编解码器无法解码位置0的字节0xc0:无效的起始字节 - java

我们正在接收不同编码格式的数据,目前我们正在使用以下提到的Java编码https://docs.oracle.com/javase/1.5.0/docs/guide/intl/encoding.doc.html我们正在使用python,因此请将此编码逻辑更改为python。由于python不支持中文字符编码,因此与我们使用的Java编码Cp935等效java…