A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ぺsimon☆ 中级黑马   /  2013-4-25 22:24  /  1694 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 ぺsimon☆ 于 2013-4-25 23:09 编辑

  1. import java.util.*;
  2. class Person  //定义一个人的类
  3. {
  4.         private String name;
  5.         private int age;
  6.         Person(Sting name,int age)  //构造函数初始化        
  7.         {
  8.         this.name=name;
  9.         this.age=age;
  10.         }

  11.         public void setName(String name)  //定义一个设置人姓名的函数
  12.         {
  13.         return this.name=name;
  14.         }
  15.         public String getName() //定义一个获取人姓名的函数
  16.         {
  17.         return this.name;
  18.         }
  19. }


  20. class FanXingDemo2
  21. {
  22.         public static void main(String[] args)
  23.         {
  24.         ArrayList<Person> st=new ArrayList<Person>(); //新建一个容器

  25.         //向容器添加person对象
  26.         st.add(new Person("zhangsan01",20));
  27.         st.add(new Person("zhangsan02",21));
  28.         st.add(new Person("zhangsan03",22));
  29.         st.add(new Person("zhangsan04",23));
  30.         st.add(new Person("zhangsan05",24));
  31.         st.add(new Person("zhangsan06",25));

  32.         print(st); //调用函数输出每个人对象的姓名
  33.         public static void print(ArrayList<Person> st)
  34.         {
  35.         Iterator<Person> it=st.iterator();
  36.         while(it.hasNext())
  37.         {
  38.         System.out.println(it.next().getName());
  39.         }
  40.         }

  41.         }
  42. }
复制代码
程序运行后为什么会报错呢?如下
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)
                                                      ^

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

6 个回复

倒序浏览
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打错了

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
俺是新手 只看见构造函数那里的string打错了

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报

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());
        }
        }

        }
}
报错的地方给你加了注释,你好好看一下吧同学
希望能帮到你

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
$love 发表于 2013-4-25 22:45
import java.util.*;
class Person  //定义一个人的类
{

嗯,好的谢谢你
回复 使用道具 举报
楼主你好:
1.第7行的带参的构造函数就错了,应该是String name
2.get和set方法错了,15行有错误,既然是空返回类型,就不需要return返回了。
3.少了age的get和set方法
4.你们print方法写在main函数里了,这样就不对了。
正确代码如下:
  1. import java.util.ArrayList;
  2. import java.util.Iterator;

  3. class Person //定义一个人的类
  4. {
  5. private String name;
  6. private int age;

  7. Person(String name,int age) //构造函数初始化
  8. {
  9. this.name=name;
  10. this.age=age;
  11. }

  12. public String getName() {
  13. return name;
  14. }
  15. public void setName(String name) {
  16. this.name = name;
  17. }
  18. public int getAge() {
  19. return age;
  20. }
  21. public void setAge(int age) {
  22. this.age = age;
  23. }
  24. }


  25. class Test
  26. {
  27. public static void main(String[] args){

  28. ArrayList<Person> st = new ArrayList<Person>(); //新建一个容器

  29. //向容器添加person对象
  30. st.add(new Person("zhangsan01",20));
  31. st.add(new Person("zhangsan02",21));
  32. st.add(new Person("zhangsan03",22));
  33. st.add(new Person("zhangsan04",23));
  34. st.add(new Person("zhangsan05",24));
  35. st.add(new Person("zhangsan06",25));

  36. print(st); //调用函数输出每个人对象的姓名

  37. }
  38. //打印集合的方法
  39. public static void print(ArrayList<Person> st) {

  40. Iterator<Person> it=st.iterator();

  41. while(it.hasNext()){//迭代集合

  42. System.out.println(it.next().getName());

  43. }
  44. }
  45. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
谢谢大家,程序可以了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马