请问kind的类型是字符串型还是对象型的

请问kind的类型是字符串型还是对象型的

做实验想要把kind 声明为Animal类型的,下面的代码在测试类中如何给每一个数组元素赋值,就是用obj.setKind()赋值 求指教 谢谢!

public class Animal {
   //属性:kind(种类)
   private Animal kind;

   public Animal(){

   }

   //创建带参(king为参数)构造函数
   public Animal(Animal kind)
   {
       this.setKind(kind);
   }

   //应用封装实现对私有属性的get/set操作

   public Animal getKind() {
       return kind;
   }

   public void setKind(Animal kind) {
       this.kind = kind;
   }


   //创建成员方法cry():void
   public void cry()
   {
       System.out.println("不是所有动物都会叫!");
   }



}

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
一叶知秋519 2017-08-17 10:08:40

你好,kind可以称为对象类型的引用;在赋值的时候和基本类型的属性赋值的方法是一样的,只不过传入的参数需要是对象类型的引用。祝学习愉快~

  • 提问者 林小堂 #1
    你好 我试过了 但是总是报错 就是想要以obj.setKind(Cat())这样传进去 但是不成功
    2017-08-17 14:02:13
  • 一叶知秋519 回复 提问者 林小堂 #2
    如果想要传递Cat对象的话,不能直接使用构造方法,应该是obj.setKind(new Cat())。
    2017-08-17 15:38:00
  • 提问者 林小堂 回复 一叶知秋519 #3
    我是这样写的 for (int i = 0;i<OBJ.length;i++) { int a = (int)(Math.random()*3);//随机生成0-2中间的整形数字 Animal obj; if(a==0) { obj.setKind(new Cat()); } else if(a==1) { obj = new Dog(); } else { obj = new Sheep(); } OBJ[i] = obj;//将生成的对象保存至对象数组OBJ中 } 但是obj有波浪线 这样不行
    2017-08-17 18:52:16
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师