thinking in java 第十一章练习1

本文探讨了Java中Gerbil类的构造函数与ArrayList集合的使用方式,对比了两种不同的实现方法,一种直接在构造函数中初始化成员变量,另一种在构造函数中调用setter方法。同时,指出了泛型在ArrayList中的正确应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.zml;

import java.util.ArrayList;

/**
 * Created by zml on 2018/8/24.
 */
public class Gerbil {
    private int gerbilNumber;


    public Gerbil(int gerbilNumber){
        this.gerbilNumber = gerbilNumber;
    }

    public void hop(){
        System.out.println("gerbilNumber :" + gerbilNumber);
    }

    public static void main(String[] args){
        ArrayList<Gerbil> gerbils = new ArrayList<Gerbil>();
        gerbils.add(new Gerbil(1));
        gerbils.add(new Gerbil(2));
        gerbils.add(new Gerbil(3));
        for(Gerbil c : gerbils)
            c.hop();
    }
}

这是我自己写的答案,但是在网上有看到另一种有了构造函数还调用set()感觉很奇怪,如下:

public class Gerbil { 
private int gerbilNumber; 
public int getGerbilNumber() { 
return gerbilNumber; 
} 
public void setGerbilNumber(int gerbilNumber){ 
this.gerbilNumber = gerbilNumber; 
} 
public Gerbil(int gerbilNumber) { 
setGerbilNumber(gerbilNumber); 
} 
private void hop() { 
System.out.println("gerbilnumber = " + gerbilNumber); 
} 
public static void main(String[] args) { 
ArrayList gerbilList = new ArrayList (); 
gerbilList.add(new Gerbil(1)); 
gerbilList.add(new Gerbil(3)); 
gerbilList.add(new Gerbil(5)); 
gerbilList.add(new Gerbil(7)); 
for (Gerbil gerbil : gerbilList) { 
gerbil.hop(); 
} 
} 
} 

总感觉不对,明明已经有了构造函数初始化,却还要在构造函数里调用set(),而且后面ArrayList也不对,没有用Gerbil的泛型,应该是这个作者写的有问题。

依照我自己写的吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值