package com.imooc.collection;import java.util.ArrayList;import java.util.List;//带有泛型的course,list属性public class TestGeneric { public List<Course> courses;//泛型的写法public List<属性>属性值 public TestGeneric() {//构造器没有类名class,没有返回值类型 this.courses=new ArrayList<Course>();//直指当前的属性值=新的 数组列表<属性>(); } //测试添加,这是一个方法,所以需要一个返回值 public void Testadd() { //ts1只是用来保存后面值("1", "大学语文")的保存对象,主对象是写在构造器当中的this.后面的,主对象来操作比如增加(保存的对象名)删除(保存的对象名)等, Course ts1 = new Course("1", "大学语文"); courses.add(ts1); //泛型集合中不能add添加一些其他类型的内容,否则会报错 // courses.add("能否添加一些奇怪的东西呢");, Course ts2 =new Course("2", "java基础"); courses.add(ts2); } //测试循环遍历 public void testForEach() { for (Course ts2:courses) {//泛型可以少些一步类型转换 System.out.println(ts2.ID+ts2.Name); } } public static void main(String[] args) { TestGeneric TG =new TestGeneric(); TG.Testadd(); TG.testForEach(); }}
这里面的courses是作为一个属性值还是做一个对象名还是什么
对于TestGeneric类来说,courses是他的一个属性;但是这个属性的类型是List的,就是父接口List的引用指向子类ArrayList的对象;又通过泛型规定了courses里的元素类型必须是Course及其子类的对象。可以这样简单理解:courses是一个数组列表,它的元素必须是Course类及其子类的对象。