对象数组

package com.test4;
import java.io.*;

/**
 * @author qingfeng
 *
 * 功能:对象数组的使用
 *
 * 养狗场问题:命令行输入狗的名字和体重
 * 问题1:计算它们的平均体重
 * 问题2:找出最大和最小狗的名字
 * 问题3:输入某个狗可以显示其体重
 */
public class Object
{
    public static void main(String[] args) throws IOException
    {
        // TODO Auto-generated method stub
        Dog[] dogs = new Dog[4];//对象数组!
        
        Float totalWeight=0f;
        
        for(int i=0; i<dogs.length; i++)
        {
            dogs[i] = new Dog();//很重要!否则会报空指针错误!(因为数组存的是对象的引用)
            
            System.out.println("请输入第"+(i+1)+"个狗的名字:");
            InputStreamReader isr = new InputStreamReader(System.in);
            BufferedReader br  = new BufferedReader(isr);
            String name = br.readLine();
            dogs[i].setName(name);

            System.out.println("请输入第"+(i+1)+"个狗的体重:");
            String s_weight = br.readLine();
            Float weight= Float.parseFloat(s_weight);
            dogs[i].setWeight(weight);
            
            
            totalWeight += dogs[i].getWeight();
        }
        System.out.println("平均重量为:"+(totalWeight/dogs.length));
        
        //选择排序思想找出最大重量和最小重量
        float maxWeight;
        maxWeight = dogs[0].getWeight();
        int maxIndex = 0;
        for(int i=1; i<dogs.length; i++)
        {
            if(maxWeight < dogs[i].getWeight())
            {
                maxWeight = dogs[i].getWeight();
                maxIndex = i;
            }
        }
        System.out.println("最大重量的狗是第"+(maxIndex+1)+"只狗,重量为"+maxWeight);
        float minWeight;
        minWeight = dogs[0].getWeight();
        int minIndex = 0;
        for(int i=1; i<dogs.length; i++)
        {
            if(minWeight > dogs[i].getWeight())
            {
                minWeight = dogs[i].getWeight();
                minIndex = i;
            }
        }
        System.out.println("最大重量的狗是第"+(minIndex+1)+"只狗,重量为"+minWeight);
        
        InputStreamReader isr  = new InputStreamReader(System.in);
        BufferedReader br  = new BufferedReader(isr);
        String name = br.readLine();
        int flag = 0;
        //判断是否和数组存在的值相等
        //易错点:String、对象判断相等用“equals”方法 ;int float double判断相等用“==”

        for (int i = 0; i < dogs.length; i++)
        {
            if (dogs[i].getName().equals(name))
            {
                System.out.println("狗的重量为:" + dogs[i].getWeight());
                flag = 1;
            }
        }
        if (flag == 0) {
            System.out.println("你输入的狗不存在!");
        }

    }
        
}

class Dog
{
    //私有变量
    private String name;
    private float weight;
    
    //setter和getter方法
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public float getWeight() {
        return weight;
    }
    public void setWeight(float weight) {
        this.weight = weight;
    }

}

/******************************************************************/

/***********************************************************************/

原文地址:https://www.cnblogs.com/qingfengzhuimeng/p/6491859.html