首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java:如何创建10只猫?当Cat ( "cat“+ i) =”cat name“不像其他语言那样工作时

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

Stack Overflow用户
提问于 2010-11-11 18:03:20
回答 10查看 1.5K关注 0票数 2

使用循环,我可以创建

代码语言:javascript
复制
My cat is: Cat1
...
My cat is: Cat1

但是,当我试图用

代码语言:javascript
复制
  Cat ("cat"+i) = new Cat("Cat" + i);

我在犯错误..。

那么,纠正我的代码生成的简单方法是什么?

代码语言:javascript
复制
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只猫instances.....cat1,...cat2.....because,我可以使用“Cat”来创建不同的变量,我想知道如何在Java中做类似的事情.

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

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2010-11-11 18:44:34

如果你不知道你会养多少只猫,就用一个集合。

代码语言:javascript
复制
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));
    }    
  } 
} 

注意:这段代码会产生不正确的结果,并让我陷入困境,直到我仔细看了看猫类。

代码语言:javascript
复制
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

罪魁祸首是:

代码语言:javascript
复制
public class Cat
{
     static String catName;

删除static,您将是黄金级的。

票数 3
EN

Stack Overflow用户

发布于 2010-11-11 18:11:21

这看起来像一个学术问题,所以我会这样处理它。你得把十只猫藏在某个地方。你能做到的一个地方就是数组。

代码语言:javascript
复制
public class TestCat{ 
  public static void main(String [] args){ 

    Cat[] cats = new Cat[10];

    // Create my cats
    for (int i= 0; i < 10; i++) {     
      cats[i] = new Cat("Cat " + i + 1);  
    }

    // Print them out
    for (Cat aCat : cats) {
      System.out.printLn("My Cat is: " + aCat);
    }
  } 
} 
票数 3
EN

Stack Overflow用户

发布于 2010-11-11 18:07:31

代码语言:javascript
复制
for (int i=1; i<10; i++){     
   Cat cat = new Cat("Cat" + i);  
   System.out.println("My cat is:  " + cat ); 
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4157675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档