日期:2014-05-20  浏览次数:20707 次

新手求意见 定义的一学生类,并创建类的对象。
import java.util.*;
public class student {
  String stnum;
  String name;
  String sex;
  int age;
  void getStnum()
  {
  System.out.println("请输入学号:");
  Scanner a = new Scanner(System.in);
  stnum = a.next();
  };
  void getName()
  {
  System.out.println("请输入学生姓名:");
  Scanner a = new Scanner(System.in);
  name = a.next();
  }
  void getSex()
  {
  System.out.println("请输入学生性别:");
  Scanner a = new Scanner(System.in);
  sex = a.next();
  }
  void getAge()
  {
  Scanner scanner=new Scanner(System.in);
  System.out.println("输入学生年龄:");
  age=scanner.nextInt();
  }
  void alterAge()
  {
  int b;
  Scanner scanner=new Scanner(System.in);
  System.out.println("输入你要改变的数值:");
  b=scanner.nextInt();
  age=b;
  }
  public static void main(String[] args) {
  student A=new student();
  student B=new student();
  A.getStnum();
  A.getSex();
  A.getName();
  A.getAge();
  B.getStnum();
  B.getSex();
  B.getName();
  B.getAge();
  B.alterAge();
  System.out.println("学号:"+A.stnum+"性别:"+A.sex+"姓名:"+A.name+"年龄:"+A.age+"学号:"+B.stnum+"性别:"+B.sex+"姓名:"+"姓名:"+B.name+"年龄:"+B.age);
  }
}

我费解的是为什么输入的姓名,性别为中文,输出就出问题了?

------解决方案--------------------
貌似没看出有什么问题,可能是你输入的时候没有换行。
还有, 类名应该大写得哟!
------解决方案--------------------
System.in是一个InputStream,也就是字节流。in是System这个类的一个属性来着。中文是两个字节,再往里面读的时候,是把中文拆成两个字节读进去了,但是虚拟机却只是以字节输出,怎么知道你是要中文输出呢!
------解决方案--------------------
问题到没看出什么来!
不过lz写代码很不规范,到是看出来来了,类名不以大写字目开头,不规范,如果是个JavaBean,那么因该写到应的get,set方法,而不是get来设置一个属性的值,不是么?