黑马程序员技术交流社区
标题:
关于集合的问题
[打印本页]
作者:
ぺsimon☆
时间:
2013-4-25 22:24
标题:
关于集合的问题
本帖最后由 ぺsimon☆ 于 2013-4-25 23:09 编辑
import java.util.*;
class Person //定义一个人的类
{
private String name;
private int age;
Person(Sting name,int age) //构造函数初始化
{
this.name=name;
this.age=age;
}
public void setName(String name) //定义一个设置人姓名的函数
{
return this.name=name;
}
public String getName() //定义一个获取人姓名的函数
{
return this.name;
}
}
class FanXingDemo2
{
public static void main(String[] args)
{
ArrayList<Person> st=new ArrayList<Person>(); //新建一个容器
//向容器添加person对象
st.add(new Person("zhangsan01",20));
st.add(new Person("zhangsan02",21));
st.add(new Person("zhangsan03",22));
st.add(new Person("zhangsan04",23));
st.add(new Person("zhangsan05",24));
st.add(new Person("zhangsan06",25));
print(st); //调用函数输出每个人对象的姓名
public static void print(ArrayList<Person> st)
{
Iterator<Person> it=st.iterator();
while(it.hasNext())
{
System.out.println(it.next().getName());
}
}
}
}
复制代码
程序运行后为什么会报错呢?如下
FanXingDemo2.java:43: 非法的表达式开始
public static void print(ArrayList<Person> st)
^
FanXingDemo2.java:43: 非法的表达式开始
public static void print(ArrayList<Person> st)
^
FanXingDemo2.java:43: 需要 ';'
public static void print(ArrayList<Person> st)
^
FanXingDemo2.java:43: 需要 ';'
public static void print(ArrayList<Person> st)
^
作者:
wangyougu010
时间:
2013-4-25 22:34
import java.util.*;
class Person // 定义一个人的类
{
private String name;
private int age;
Person(String name, int age) // 构造函数初始化
{
this.name = name;
this.age = age;
}
public void setName(String name) // 定义一个设置人姓名的函数
{
this.name = name;
}
public String getName() // 定义一个获取人姓名的函数
{
return name;
}
}
class FanXingDemo2 {
public static void main(String[] args)
{
ArrayList<Person> st=new ArrayList<Person>(); //新建一个容器
//向容器添加person对象
st.add(new Person("zhangsan01",20));
st.add(new Person("zhangsan02",21));
st.add(new Person("zhangsan03",22));
st.add(new Person("zhangsan04",23));
st.add(new Person("zhangsan05",24));
st.add(new Person("zhangsan06",25));
print(st); //调用函数输出每个人对象的姓名
}
public static void print(ArrayList<Person> st){
Iterator<Person> it=st.iterator();
while(it.hasNext())
{
System.out.println(it.next().getName());
}
}
}
你的print方法放在主方法里面了,还有String打错了
作者:
李德全
时间:
2013-4-25 22:42
俺是新手 只看见构造函数那里的string打错了
作者:
$love
时间:
2013-4-25 22:45
import java.util.*;
class Person //定义一个人的类
{
private String name;
private int age;
Person(Sting name,int age) //String写错了
{
this.name=name;
this.age=age;
}
public void setName(String name) //给字段赋值不用返回值,返回值是void就是空的,而你却用了return返回所以错误
{
return this.name=name;
}
public String getName() //定义一个获取人姓名的函数
{
return this.name;
}
}
class FanXingDemo2
{
public static void main(String[] args)
{
ArrayList<Person> st=new ArrayList<Person>(); //新建一个容器
st.add(new Person("zhangsan01",20));
st.add(new Person("zhangsan02",21));
st.add(new Person("zhangsan03",22));
st.add(new Person("zhangsan04",23));
st.add(new Person("zhangsan05",24));
st.add(new Person("zhangsan06",25));
print(st);
//还有这个静态方法应该写在main方法外面
public static void print(ArrayList<Person> st)
{
Iterator<Person> it=st.iterator();
while(it.hasNext())
{
System.out.println(it.next().getName());
}
}
}
}
报错的地方给你加了注释,你好好看一下吧同学
希望能帮到你
作者:
ぺsimon☆
时间:
2013-4-25 22:50
$love 发表于 2013-4-25 22:45
import java.util.*;
class Person //定义一个人的类
{
嗯,好的谢谢你
作者:
袁梦希
时间:
2013-4-25 22:52
楼主你好:
1.第7行的带参的构造函数就错了,应该是String name
2.get和set方法错了,15行有错误,既然是空返回类型,就不需要return返回了。
3.少了age的get和set方法
4.你们print方法写在main函数里了,这样就不对了。
正确代码如下:
import java.util.ArrayList;
import java.util.Iterator;
class Person //定义一个人的类
{
private String name;
private int age;
Person(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 Test
{
public static void main(String[] args){
ArrayList<Person> st = new ArrayList<Person>(); //新建一个容器
//向容器添加person对象
st.add(new Person("zhangsan01",20));
st.add(new Person("zhangsan02",21));
st.add(new Person("zhangsan03",22));
st.add(new Person("zhangsan04",23));
st.add(new Person("zhangsan05",24));
st.add(new Person("zhangsan06",25));
print(st); //调用函数输出每个人对象的姓名
}
//打印集合的方法
public static void print(ArrayList<Person> st) {
Iterator<Person> it=st.iterator();
while(it.hasNext()){//迭代集合
System.out.println(it.next().getName());
}
}
}
复制代码
作者:
ぺsimon☆
时间:
2013-4-25 23:08
谢谢大家,程序可以了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2