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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王雷 中级黑马   /  2012-9-26 08:59  /  1944 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. import java.util.*;
  2. class Test
  3. {
  4.         public static void main(String[]args)
  5.         {
  6.                 for(int i=0;i<3;i++)
  7.                 {
  8.                         Scanner sc=new Scanner(System.in);
  9.                         System.out.print("请输入姓名");
  10.                         String name=sc.nextLine();
  11.                         System.out.print("请输入性别");
  12.                         String sex=sc.nextLine();
  13.                         System.out.print("请输入年龄");
  14.                         int age=sc.nextInt();
  15.                 }
  16.                 person p1=new person();
  17.                 person p2=new person();
  18.                 person p3=new person();
  19.                 p1.shu();
  20.                 p2.shu();
  21.                 p3.shu();
  22.         }
  23. }
  24. class person
  25. {
  26.         int age;
  27.         String sex;
  28.         String name;
  29.         void shu()
  30.         {
  31.                 System.out.println(name+"  "+sex+"  "+age+"\t");
  32.         }
  33. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 赞一个!

查看全部评分

7 个回复

倒序浏览
为什么呢
回复 使用道具 举报
本帖最后由 刘学 于 2012-9-26 09:57 编辑

import java.util.*;
class Test
{
        public static void main(String[]args)
        {  
              person p1=new person();   //创建Person对象
                for(int i=0;i<1;i++)
                {
                        Scanner sc=new Scanner(System.in);
                        System.out.print("请输入姓名");
                        p1.name=sc.nextLine();   //将输入的数据赋值给Person对象中的属性
                        
                        System.out.print("请输入性别");
                        p1.sex=sc.nextLine();    //将输入的数据赋值给Person对象中的属性

                        System.out.print("请输入年龄");
                        p1.age=sc.nextInt();     //将输入的数据赋值给Person对象中的属性

                }
              
              //  person p2=new person();
             //   person p3=new person();
                p1.shu();
              //  p2.shu();
             //   p3.shu();
        }
}
class person   //哥们 ,你这类名首字母小写了不符合规范了
{
        int age;
        String sex;
        String name;
        void shu()
        {
                System.out.println(name+"  "+sex+"  "+age+"\t");
        }
}

//你的错误是输入完数据既没有直接打印有没有赋值给Person对象中的属性,此时Person对象中属性值是默认值,当然是 null 和0了

评分

参与人数 1技术分 +1 收起 理由
唐志兵 + 1 很给力!

查看全部评分

回复 使用道具 举报
{:soso_e179:}thanks  问题已搞定
回复 使用道具 举报
首先,你这个程序存在这很多问题,你只是创建了person对象,但你都没给对象的所有成员赋值,当然输出的就是null null 0了。
其次,对于这个程序,创建对象最好选择数组,这样容易赋值。
修改后的代码如下:
import java.util.*;
class Test
{
        public static void main(String[]args)
        {
       person[] p = new person[]{new person(),new person(),new person()};
                for(int i=0;i<3;i++)
       {
                        Scanner sc=new Scanner(System.in);
                        System.out.println("请输入姓名:");
                        p.name = sc.nextLine();
                        System.out.println("请输入性别:");
                        p.sex = sc.nextLine();
                        System.out.println("请输入年龄:");
                        p.age = sc.nextInt();
                }
                for(int i=0;i<3;i++)
                    p.shu();
        }
}
class person
{
        int age;
        String sex;
        String name;
        void shu()
        {
                System.out.println(name+"  "+sex+"  "+age+"\t");
        }
}



12.jpg (21.15 KB, 下载次数: 38)

运行结果

运行结果

评分

参与人数 1技术分 +1 收起 理由
唐志兵 + 1 赞一个!

查看全部评分

回复 使用道具 举报
看到问题的时间有点晚哈

import java.util.*;
class Test
{
        public static void main(String[]args)
        {
                 person p1=new person();
             person p2=new person();
             person p3=new person();
                        for(int i=0;i<3;i++)
                {
                        Scanner sc=new Scanner(System.in);
                        System.out.print("请输入姓名");//你的结果是Null那是因为没为赋值,这个是按照我的习惯写了一下,通过调用函数来赋值,
                        p1.setName(sc.nextLine());
                        System.out.print("请输入性别");/因为只对P1进行赋值/所以打印只有P1的结果
                        p1.setSex(sc.nextLine());
                        System.out.print("请输入年龄");
                        p1.setAge(sc.nextInt());

               }
                               

                p1.shu();
               p2.shu();
                p3.shu();
        }
}
class person
{
        private int age;
        private String sex;
        private String name;
        void shu()
        {
                System.out.println(name+"  "+sex+"  "+age+"\t");
        }
        public void setAge(int age)                   //设置年龄
        {
                this.age=age;
        }
        public void setName(String name)       //设置名字
        {
                this.name=name;
        }
        public void setSex(String sex)             //设置性别
        {
                this .sex=sex;
        }
}

评分

参与人数 1技术分 +1 收起 理由
唐志兵 + 1 赞一个!

查看全部评分

回复 使用道具 举报
  1. package com.aduvm.practice;


  2. import java.util.*;
  3. class Test3
  4. {
  5.         public static void main(String[]args)
  6.         {
  7.                
  8.                 Person p1=new Person();
  9.                 Person p2=new Person();
  10.                 Person p3=new Person();
  11.                 p1.getInfo();  //你只在类中定义了输出方法没有定义输入方法
  12.                
  13.                 p1.shu();
  14.                
  15.                 p2.getInfo();  //你只在类中定义了输出方法没有定义输入方法
  16.                 p2.shu();
  17.                 p3.getInfo();  //你只在类中定义了输出方法没有定义输入方法
  18.                 p3.shu();
  19.         }
  20. }
  21. class Person
  22. {
  23.         int age;
  24.         String sex;
  25.         String name;
  26.         void shu()
  27.         {
  28.                 System.out.println(name+"  "+sex+"  "+age+"\n");
  29.         }
  30.         void getInfo(){

  31.                      Scanner sc=new Scanner(System.in);
  32.                      System.out.print("请输入姓名");
  33.                      this.name=sc.nextLine();    //这里用类中Person的变量名
  34.                      System.out.print("请输入性别");
  35.                      this.sex=sc.nextLine();     //这里用类中Person的变量名
  36.                      System.out.print("请输入年龄");
  37.                      this.age=sc.nextInt();      //这里用类中Person的变量名
  38.             
  39.         }
  40.         
  41. }

  42.                

  43.                

  44.        



复制代码

评分

参与人数 1技术分 +1 收起 理由
唐志兵 + 1 赞一个!

查看全部评分

回复 使用道具 举报
像这种问题应该好好看看,自己也能解决的,下面是我的代码
  1. package com.test;
  2. import java.util.*;
  3. public class Test
  4. {
  5.         public static void main(String[] args)
  6.         {
  7.                 for(int i=0;i<3;i++)
  8.                 {
  9.                         Scanner sc=new Scanner(System.in);
  10.                         System.out.print("请输入姓名");
  11.                         String name=sc.nextLine();
  12.                         System.out.print("请输入性别");
  13.                         String sex=sc.nextLine();
  14.                         System.out.print("请输入年龄");
  15.                         int age=sc.nextInt();
  16.                         Person p=new Person(name,sex,age);
  17.                 }
  18.                
  19.                
  20.                
  21.         }
  22. }

  23. class Person
  24. {
  25.         private String name;
  26.         private String sex;
  27.         private int age;
  28.         public Person(String name,String sex,int age) {
  29.                 this.name=name;
  30.                 this.sex=sex;
  31.                 this.age=age;
  32.                 System.out.println(name+" "+sex+" "+age);
  33.         }       
  34.         
  35. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
唐志兵 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马