/**
/**
}
最后一行:a.add(b);显示出错
ArrayList a=new ArrayList();
修改为
ArrayList<Dog> a=new ArrayList<Dog>();
若想指定添加dog类,应该指定泛型。
Dog b =new Dog(); a.add(b) 需要在一个方法体中
ArrayList a=new ArrayList();
修改为
ArrayList a=new ArrayList();
public class test11{
public static void main(String[] args) {
ArrayList list=new ArrayList();
Dog b=new Dog();
list.add(b);
}
要在一个main方法体中
}
public class test1{// 1)
// 2)
ArrayList a=new ArrayList();//3
Dog b =new Dog();//4
a.add(b);//5
}
如上注释,test1是一个类,而在类中可以定义方法和类变量(也称为属性)而不能执行语句(调用函数)
所以3和4是不报错的,因为3和4相当于为test1这个类声明了两个默认访问权限的变量(属性),并且在声明的同时进行了初始化。这是允许的;
而5则是调用了a这个属性成员的add方法,这是不允许的。
ArrayList是一个泛型类,可以这样写
ArrayList dogs=new ArrayList();//a
也可以这样写ArrayList dogs=new ArrayList();//b
如果使用a,那么dogs里只能添加Dog了,你调用dogs.add(cat);就会出错~
如果是b,那么一切对象都可以添加到狗队列啦,因为b的默认泛型是Object,java中的所有类都是Object,所以使用b准确的说得到的不是一个狗队列
而是一个万能队列;当然,这和报错是没有关系的*-*,多了解一些总是好的~加油!
加上一个main就对了
根本不是泛型的问题 就是 要写在方法内部
没有mian方法来执行,怎么运行
你是没有写方法体加上main 方法
刚开始学习Java 注意编码规范: 类名首字母大写
test是关键字,最好不要当类名
public class test1 {
public static void main(String[] args) {
List a=new ArrayList();
Dog b =new Dog();
a.add(b);
}
}
test1没有写main方法
这个你应该是在eclipse上面进行编写的,这种橘色的线前期不用理会,代码运行是绝对没有问题的。。只要是窗口左边没有叉叉就可以啦、、、
ArrayList a=new ArrayList();
Dog b =new Dog();
a.add(b);
这三行代码应该在一个方法体里面,比如:
public class test1 {
void test() {
ArrayList a = new ArrayList();
Dog b = new Dog();
a.add(b);
}
}
ArrayList a=new ArrayList(); 换成main 方法测试
真的是新手,可以多看看基础知识