在面向对象学习中对于类和构造方法的疑问

zhanglianjun12567146 2007-11-01 09:54:45
class Student{
String sNO;
String sNAME;
String sSEX;
String sAGE;
double sJAVA;
String getNO(){
return sNO ;
}
String getName(){
return sNAME;
}
String getSex(){
return sSEX;
}
String getAge(){
return sAGE;
}
double getJava(){
return sJAVA;
}
}

class Ti52{
public static void main(String arg[]){
System.out.println("请输入第一个学生的信息") ;
Scanner sc=new Scanner(System.in);
Student s1=new Student();
Student s2=new Student();
s1.sNO=sc.next();
s1.sNAME=sc.next();
s1.sSEX=sc.next();
s1.sAGE=sc.next();
s1.sJAVA=sc.nextDouble();
System.out.println("请输入第2个学生的信息");
s2.sNO=sc.next();
s2.sNAME=sc.next();
s2.sSEX=sc.next();
s2.sAGE=sc.next();
s2.sJAVA=sc.nextDouble();
System.out.println("输出第1个学生的信息");
s1.getNO();System.out.println(s1.sNO);
s1.getName();System.out.println(s1.sNAME);
s1. getSex();System.out.println(s1.sSEX);
s1.getAge();System.out.println(s1.sAGE);
s1.getJava();System.out.println(s1.sJAVA);
System.out.println("输出第2个学生的信息");
s2.getNO();System.out.println(s2.sNO);
s2.getName();System.out.println(s2.sNAME);
s2. getSex();System.out.println(s2.sSEX);
s2.getAge();System.out.println(s2.sAGE);
s2.getJava(); System.out.println(s2.sJAVA) ;
double average=(s1.sJAVA+s2.sJAVA)/2;
System.out.println("这两个学生的平均成绩是:" +average);
}
}





利用构造方法实现以上程序如下

class Student{
String sNO;
String sNAME;
String sSEX;
String sAGE;
double sJAVA;
Student(String sNO,String sNAME,String sSEX,String sAGE,double sJAVA){
this.sNO=sNO;
this.sNAME=sNAME;
this.sSEX=sSEX;
this.sAGE=sAGE;
this.sJAVA=sJAVA;
}

class Ti52{
public static void main(String arg[]){
System.out.println("请输入第一个学生的信息") ;
Scanner sc=new Scanner(System.in);
String a=sc.next();
String b=sc.next();
String c=sc.next();
String d=sc.next();
double e=sc.nextDouble();
Student s1=new Student(a,b,c,d,e);

System.out.println("请输入第2个学生的信息");
a=sc.next();
b=sc.next();
c=sc.next();
d=sc.next();
e=sc.nextDouble();
Student s2=new Student(a,b,c,d,e);

System.out.println("输出第1个学生的信息");
System.out.println( s1.sNO+" "+s1.sNAME+" "+s1.sSEX+" "+s1.sAGE+" "s1.sJAVA) ;

System.out.println("输出第2个学生的信息");
System.out.println( s2.sNO+" "+s2.sNAME+" "+s2.sSEX+" "+s2.sAGE+" "s2.sJAVA) ;
double average=(s1.sJAVA+s2.sJAVA)/2;
System.out.println("这两个学生的平均成绩是:" +average);
}
}



我的问题是在第一个程序中 是建立了Student类的两个对象 s1和 s2而第二个程序建立的s1和s2是什么东西呢 ??
...全文
117 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
网络咖啡 2007-11-03
  • 打赏
  • 举报
回复
也是对象,只是调用带参数的构造方法创建罢了
seachips 2007-11-01
  • 打赏
  • 举报
回复
第二个s1,s2也是student类的实例,区别在于等号后面new Student(); 和new Student(a,b,c,d,e);
后面一个在定义实例的同时就已经开始调用student类中的构造方法了。不用像第一个一样给student的每个变量赋值。

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧