✈【【零基础 快速学Java】韩顺平 零基础30天学会Java】
请编写程序,在ArrayList中,添加3个Dog对象
Dog对象含有name和age,并输出name和age(要求使用getXxx()))
【传统方法】
package com.dingjiaxiong.generic;
import java.util.ArrayList;
/**
* ClassName: Generic01
* date: 2022/9/6 10:29
*
* @author DingJiaxiong
*/
@SuppressWarnings({"all"})
public class Generic01 {
public static void main(String[] args) {
//传统方法
ArrayList arrayList = new ArrayList();
arrayList.add(new Dog("旺财",10));
arrayList.add(new Dog("发财",1));
arrayList.add(new Dog("小黄",5));
//程序员不小心添加了一只猫
arrayList.add(new Cat("招财猫",8));
//遍历
for (Object o : arrayList){
//向下转型
Dog dog = (Dog) o;
System.out.println(dog.getName() + "-" + dog.getAge());
}
}
}
class Dog{
private String name;
private int age;
public Dog(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
class Cat{
private String name;
private int age;
public Cat(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
运行结果

可以看到报了异常,猫不是狗。
【举个栗子】

package com.dingjiaxiong.generic;
import java.util.ArrayList;
/**
* ClassName: Generic02
* date: 2022/9/6 10:35
*
* @author DingJiaxiong
*/
@SuppressWarnings({"all"})
public class Generic02 {
public static void main(String[] args) {
ArrayList<Dog> arrayList = new ArrayList<Dog>();
arrayList.add(new Dog("旺财",10));
arrayList.add(new Dog("发财",1));
arrayList.add(new Dog("小黄",5));
//这时如果想添加一只猫
// arrayList.add(new Cat("招财猫",8));//直接报红,不能添加猫猫
System.out.println("=====使用泛型=====");
for (Dog dog : arrayList){
System.out.println(dog.getName() + "-" + dog.getAge());
}
}
}
class Dog{
private String name;
private int age;
public Dog(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
class Cat{
private String name;
private int age;
public Cat(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
运行结果
