黑马程序员技术交流社区
标题:
为什么输出结果是nullnull0
[打印本页]
作者:
王雷
时间:
2012-9-26 08:59
标题:
为什么输出结果是nullnull0
import java.util.*;
class Test
{
public static void main(String[]args)
{
for(int i=0;i<3;i++)
{
Scanner sc=new Scanner(System.in);
System.out.print("请输入姓名");
String name=sc.nextLine();
System.out.print("请输入性别");
String sex=sc.nextLine();
System.out.print("请输入年龄");
int age=sc.nextInt();
}
person p1=new 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");
}
}
复制代码
作者:
王雷
时间:
2012-9-26 09:27
为什么呢
作者:
刘学
时间:
2012-9-26 09:54
本帖最后由 刘学 于 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了
作者:
王雷
时间:
2012-9-26 09:56
{:soso_e179:}thanks 问题已搞定
作者:
汪小照
时间:
2012-9-26 10:04
首先,你这个程序存在这很多问题,你只是创建了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, 下载次数: 74)
下载附件
2012-9-26 10:03 上传
运行结果
作者:
王玉岩
时间:
2012-9-26 10:11
看到问题的时间有点晚哈
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;
}
}
作者:
杜正华
时间:
2012-9-26 10:13
package com.aduvm.practice;
import java.util.*;
class Test3
{
public static void main(String[]args)
{
Person p1=new Person();
Person p2=new Person();
Person p3=new Person();
p1.getInfo(); //你只在类中定义了输出方法没有定义输入方法
p1.shu();
p2.getInfo(); //你只在类中定义了输出方法没有定义输入方法
p2.shu();
p3.getInfo(); //你只在类中定义了输出方法没有定义输入方法
p3.shu();
}
}
class Person
{
int age;
String sex;
String name;
void shu()
{
System.out.println(name+" "+sex+" "+age+"\n");
}
void getInfo(){
Scanner sc=new Scanner(System.in);
System.out.print("请输入姓名");
this.name=sc.nextLine(); //这里用类中Person的变量名
System.out.print("请输入性别");
this.sex=sc.nextLine(); //这里用类中Person的变量名
System.out.print("请输入年龄");
this.age=sc.nextInt(); //这里用类中Person的变量名
}
}
复制代码
作者:
王小闲7
时间:
2012-9-26 10:46
像这种问题应该好好看看,自己也能解决的,下面是我的代码
package com.test;
import java.util.*;
public class Test
{
public static void main(String[] args)
{
for(int i=0;i<3;i++)
{
Scanner sc=new Scanner(System.in);
System.out.print("请输入姓名");
String name=sc.nextLine();
System.out.print("请输入性别");
String sex=sc.nextLine();
System.out.print("请输入年龄");
int age=sc.nextInt();
Person p=new Person(name,sex,age);
}
}
}
class Person
{
private String name;
private String sex;
private int age;
public Person(String name,String sex,int age) {
this.name=name;
this.sex=sex;
this.age=age;
System.out.println(name+" "+sex+" "+age);
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2