Educoder - Java类和对象之对象数组(1,2)

感觉面向对象中的一维数组像二维数组一样,一个元素中可以存好多数据,建议第二关多看看

掌握知识点(1,2)

  • 对象之数组静态赋值
  • 对象数组定义
  • split()方法
  • Double.valueOf()方法,字符串转Double
  • 面向对象数组概念

通关源码(1)

/**
 * 任务:使用对象数组的方式创建 3 个 Dog 对象
 * 类名为:Dog
 * 该类为 Dog 的基本属性
 */
public class Dog {
    private String name;     // 小狗名称
    private String type;     // 小狗品种
    private int age;     // 小狗年龄
    private String hobby;    //小狗爱好

    public Dog(){
        
    
    }
    public Dog(String name, String type, int age, String hobby) {
        this.name = name;
        this.type = type;
        this.age = age;
        this.hobby = hobby;
    }
	
    // 获取Dog姓名
    public String getName() {
        return name;
    }

    // 设置Dog姓名
    public void setName(String name) {
        this.name = name;
    }
	// 获取Dog种类
    public String getType() {
        return type;
    }
	// 设置Dog种类
    public void setType(String type) {
        this.type = type;
    }
	// 获取Dog年龄
    public int getAge() {
        return age;
    }
	// 设置Dog年龄
    public void setAge(int age) {
        this.age = age;
    }
	
    // 获取爱好
    public String getHobby() {
        return hobby;
    }
	// 设置爱好
    public void setHobby(String hobby) {
        this.hobby = hobby;
    }
	// Dog的详细信息
    public void info(){
        System.out.printf("小狗名称:%s\n品种:%s\n小狗年龄:%d\n小狗爱好:%s\n",name,type,age,hobby);
    }



    public static void main(String[] args) {
        Dog d1 = new Dog("Tom", "哈士奇",2,"拆家");
        Dog d2 = new Dog("jerry", "中华田园犬",3,"护家");
        Dog d3 = new Dog("旺财","柯基",2,"吃喝玩");

        //begin
        
        Dog []dog = new Dog[]{d1,d2,d3};        //静态赋值
        for (int i = 0; i < dog.length; i++) {
            dog[i].info();
        }
        
        //下面是加强for语法,便于理解,还是看上面的吧
        // for(Dog i:dog){
        //     i.info();
        // }

    }
}

Educoder - Java类和对象之对象数组(1,2)

通关源码(2)

import java.util.Scanner;

public class Student {
    private String name;  // 学生的姓名
    private String num;  // 学生的学号信息
    private double grades;  // 学生的成绩
    // 有参构造方法
    public Student(String name, String num, double grades) {
        this.name = name;
        this.num = num;
        this.grades = grades;
    }

    // 获取和设置学生的属性信息
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getNum() {
        return num;
    }

    public void setNum(String num) {
        this.num = num;
    }

    public double getGrades() {
        return grades;
    }

    public void setGrades(double grades) {
        this.grades = grades;
    }

    public static void main(String[] args) {
        // 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
        /********** Begin **********/

        // 创建可以存放三个对象的对象数组
        Student[] stu = new Student[3];

        // 获取键盘输入的学生信息,将数组中的对象进行实例化
        Scanner scanner = new Scanner(System.in);
        for (int i = 0; i < stu.length; i++) {
           String str = scanner.next();
           stu[i] = new Student(str.split(",")[0],str.split(",")[1]
                   ,Double.valueOf(str.split(",")[2]));
        }
        for (int i = 0; i < stu.length; i++) {
            System.out.printf("姓名:" + stu[i].getName() + "\t学号:" + stu[i].getNum() + "\t成绩:" + stu[i].getGrades() + "\n");
        }

        /********** End **********/
    }
}

Educoder - Java类和对象之对象数组(1,2)

上一篇:序列式容器


下一篇:C++ Traits Classes