高手来帮帮java菜鸟调试个程序啊!老出错!!

[复制链接]
查看11 | 回复3 | 2009-7-22 23:23:33 | 显示全部楼层 |阅读模式
import java.util.*;
class testStudent{
public static void main(String[] args){
Student[] str=new Student[3];
str[0]=new EnglishSt("123456","Jackson","male",25).setScore(100,66,90);
str[1]=new PCSt("789120","Rose","fmale",22).setScore(100,66,90,100);
str[2]=new LiteratureSt("342332","Susan","fmale",23).setScore(100,100,90,100);
for(int i=0;i<str.length;i++)
str.toPrintStudentInfo();
}
}
class Student{
private String num;
private String name;
private String sex;
private int age;
Student(){}
Student(String num,String name,String sex,int age){
this.num=num;
this.name=name;
this.sex=sex;
this.age=age;
}
void toPrintStudentInfo(){
System.out.println("NUM:"+num+" "+"NMAE:"+name+" "+"SEX:"+sex+" "+"AGE:"+age+" ");
}
}
/*English*/
class EnglishSt extends Student{
private double sumScore;
private int speechScore;
private int midScore;
private int lasScore;

EnglishSt(String num,String name,String sex,int age){
super(num,name,sex,age);
}
void setScore(int speechScore,int midScore,int lasScore){
this.speechScore=speechScore;
this.midScore=midScore;

this.lasScore=lasScore;
}
void toPrintStudentInfo(){
super.toPrintStudentInfo();
sumScore=0.5*speechScore+0.25*midScore+0.25*lasScore;
System.out.println("SUMSCORE:"+sumScore);
}
}
/*PC*/
class PCSt extends Student{
private double sumScore;
private int operateAbilityScore;
private int englishWriteScore;
private int midScore;
private int lasScore;

PCSt(String num,String name,String sex,int age){
super(num,name,sex,age);
}
void setScore(int operateAbilityScore,int englishWriteScore,int midScore,int lasScore){
this.operateAbilityScore=operateAbilityScore;
this.englishWriteScore=englishWriteScore;
this.midScore=midScore;

this.lasScore=lasScore;
}
void toPrintStudentInfo(){
super.toPrintStudentInfo();
sumScore=0.4*operateAbilityScore+0.2*englishWriteScore+0.2*midScore+0.2*lasScore;
System.out.println("SUMSCORE:"+sumScore);
}
}
/*literature*/
class LiteratureSt extends Student{
private double sumScore;
private int speechScore;
private int opusScore;
private int midScore;
private int lasScore;

LiteratureSt(String num,String name,String sex,int age){
super(num,name,sex,age);
}
void setScore(int speechScore,int opusScore,int midScore,int lasScore){
this.speechScore=speechScore;
this.opusScore=opusScore;
this.midScore=midScore;

this.lasScore=lasScore;
}
void toPrintStudentInfo(){
super.toPrintStudentInfo();
sumScore=0.35*speechScore+0.35*opusScore+0.15*midScore+0.15*lasScore;
System.out.println("SUMSCORE:"+sumScore);
}
}
str[0]=new EnglishSt("123456","Jackson","male",25).setScore(100,66,90);
提示不兼容类型
找到:void
需要:student
怎么改呢?

回复

使用道具 举报

千问 | 2009-7-22 23:23:33 | 显示全部楼层
调好了哈!构造函数我给你稍稍变了一下,你一定能看出来代码如下:import java.util.*;class testStudent{ public static void main(String[] args){Student[] str=new Student[3];str[0]=new EnglishSt("123456","Jackson","male",25,100,66,90);str[1]=new PCSt("789120","Rose","fmale",22,100,66,90,100);str[2]=new LiteratureSt("342332","Susan","fmale"...
回复

使用道具 举报

千问 | 2009-7-22 23:23:33 | 显示全部楼层
这样写就不报错:Student s = new EnglishSt("123456","Jackson","male",25);你后面的setScore返回void类型,这与Student类型不匹配。...
回复

使用道具 举报

千问 | 2009-7-22 23:23:33 | 显示全部楼层
str[0]装的Student对象..void setScore返回的是空..所以提示不兼容类型...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行