先看下最终的结果吧,是不是你想要的?
项目结构如下图所示:
其中,Student是父类,PostGraduate是子类,继承自父类Student,Main是主类,用于创建对象以及把这些对象的功能调用起来。
---------------------------Student代码如下:------------------------------
/**
* 学生类
* @author 逍遥
*
*/
public class Student {
//学号
private int sId
//姓名
private String sName
//数学成绩
private double mathScore
//计算机成绩
private double computerScore
/**
* 获取学号
* @return
*/
public int getsId() {
return sId
}
/**
* 设置学号
* @param sId
*/
public void setsId(int sId) {
this.sId = sId
}
/**
* 获取姓名
* @return
*/
public String getsName() {
return sName
}
/**
* 设置姓名
* @param sName
*/
public void setsName(String sName) {
this.sName = sName
}
/**
* 获取数学成绩
* @return
*/
public double getMathScore() {
return mathScore
}
/**
* 设置数学成绩
* @param mathScore
*/
public void setMathScore(double mathScore) {
this.mathScore = mathScore
}
/**
* 获取计算机成绩
* @return
*/
public double getComputerScore() {
return computerScore
}
/**
* 设置计算机成绩
* @param computerScore
*/
public void setComputerScore(double computerScore) {
this.computerScore = computerScore
}
/**
* 输出成员变量(4个成员变量)的信息。
*/
public void print(){
System.out.println("学号:"+sId)
System.out.println("姓名:"+sName)
System.out.println("计算机成绩:"+mathScore)
System.out.println("数学成绩:"+computerScore)
}
}
---------------------------Student代码结束------------------------------
---------------------------PostGraduate代码如下:------------------------------
/**
* 研究生类
* @author 逍遥
*
*/
public class PostGraduate extends Student{
//导师姓名
private String tName
//研究方向
private String ResearchDirection
/**
* 获取导师姓名
* @return
*/
public String gettName() {
return tName
}
/**
* 设置导师姓名
* @param tName
*/
public void settName(String tName) {
this.tName = tName
}
/**
* 获取研究方向
* @return
*/
public String getResearchDirection() {
return ResearchDirection
}
/**
* 设置研究方向
* @param researchDirection
*/
public void setResearchDirection(String researchDirection) {
ResearchDirection = researchDirection
}
/**
* 研究生类重写父类的void print()方法,功能是输出成员变量(6个成员变量)的信息
*/
@Override
public void print() {
// TODO Auto-generated method stub
super.print()
System.out.println("导师姓名:"+tName)
System.out.println("研究方向:"+ResearchDirection)
}
}
---------------------------PostGraduate代码结束------------------------------
---------------------------Main代码如下:------------------------------
import java.util.Scanner
/**
* 主类
* @author 逍遥
*
*/
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//用于获取从键盘上输入的信息
Scanner input=new Scanner(System.in)
//创建一个Student类的对象
Student student=new Student()
//从键盘上输入其属性信息
System.out.print("请输入学生的学号:")
student.setsId(input.nextInt())
System.out.print("请输入学生的姓名:")
student.setsName(input.next())
System.out.print("请输入学生的数学成绩:")
student.setMathScore(input.nextDouble())
System.out.print("请输入学生的计算机成绩:")
student.setComputerScore(input.nextDouble())
//并且通过其print方法输出这些信息;
student.print()
//创建一个PostGraduate类的对象
PostGraduate postGraduate=new PostGraduate()
//从键盘上输入其属性信息
System.out.print("请输入研究生的学号:")
postGraduate.setsId(input.nextInt())
System.out.print("请输入研究生的姓名:")
postGraduate.setsName(input.next())
System.out.print("请输入研究生的数学成绩:")
postGraduate.setMathScore(input.nextDouble())
System.out.print("请输入研究生的计算机成绩:")
postGraduate.setComputerScore(input.nextDouble())
System.out.print("请输入研究生的导师姓名:")
postGraduate.settName(input.next())
System.out.print("请输入研究生的研究方向:")
postGraduate.setResearchDirection(input.next())
//并且通过其print方法输出这些信息。
postGraduate.print()
}
}
---------------------------Main代码结束------------------------------
=================知识点的简单总结=================
本题考察的知识点是面向对象的三大特性之一:继承。
Student为父类,包含了学号、姓名、数学成绩和计算机成绩4个属性,以及一个print()方法。
PostGraduate 继承父类的时候,继承了父类中的所有方法,因为方法我都是用的public,而属性继承不了,因为我在父类中用了封装,所有属性都用private修饰了,想访问属性的话,必须通过get、set方法,这里,我重写了父类中的print方法,通过super.print()调用了父类中的print()方法。
最后就是Main类,提供了main方法作为入口函数,用于按要求声明这些对象以及去调用对象中的方法。
import java.math.BigDecimalpublic class JavaCourse {
private String sName//学生姓名
private String sId //学号
private int testGrade //测试成绩
private int regularGrade//平时成绩
private int endOfTermGrade//期末成绩
private int totalGrade //总成绩
public final double TR= 0.3
public final double RR= 0.3
public final double ER= 0.4
public JavaCourse() {
}
public JavaCourse(String sName, String sId, int testGrade, int regularGrade, int endOfTermGrade) {
this.sName = sName
this.sId = sId
this.testGrade = testGrade
this.regularGrade = regularGrade
this.endOfTermGrade = endOfTermGrade
}
public String getsName() {
return sName
}
public void setsName(String sName) {
this.sName = sName
}
public String getsId() {
return sId
}
public void setsId(String sId) {
this.sId = sId
}
public int getTestGrade() {
return testGrade
}
public void setTestGrade(int testGrade) {
this.testGrade = testGrade
}
public int getRegularGrade() {
return regularGrade
}
public void setRegularGrade(int regularGrade) {
this.regularGrade = regularGrade
}
public int getEndOfTermGrade() {
return endOfTermGrade
}
public void setEndOfTermGrade(int endOfTermGrade) {
this.endOfTermGrade = endOfTermGrade
}
public int getTotalGrade() {
return totalGrade
}
@Override
public String toString() {
return "JavaCourse{" +
"sName='" + sName + '\'' +
", sId='" + sId + '\'' +
", testGrade=" + testGrade +
", regularGrade=" + regularGrade +
", endOfTermGrade=" + endOfTermGrade +
'}'
}
public void showTotalGrad() {
//double四舍五入(0.5->1)转int类型
totalGrade = Integer.parseInt(new BigDecimal((testGrade * TR + regularGrade * RR + endOfTermGrade * ER)).setScale(0, BigDecimal.ROUND_HALF_UP).toString())
System.out.println("课程的总成绩:" + totalGrade)
}
}
public class DemoTest02 {
public static void main(String[] args) {
JavaCourse student1 = new JavaCourse()
student1.setsName("小张")
student1.setsId("10086")
student1.setTestGrade(85)
student1.setRegularGrade(90)
student1.setEndOfTermGrade(86)
System.out.println(student1.toString())
student1.showTotalGrad()
JavaCourse student2 = new JavaCourse("老王","10010",60,80,45)
System.out.println(student2.toString())
student2.showTotalGrad()
}
}
不明白你要做什么,但针对你所做的编程做了一点修改,使其不会运行出错。
package wordimport java.util.Scanner
public class Word {
public static void main(String args [] ) {
String en[]= {"work","back","come","java","desk","tool","face"}
int sn[]=new int[4*en.length ]
int q=-1
for(int i=0i<en.lengthi++) {
for (int j=1j<=4j++) {
q++
switch(en[i].charAt(j-1)) {
case 'a':
case 'b':
case 'c':
sn[q]=2
continue
case 'd':
case 'e':
case 'f':
sn[q]=3
continue
case 'g':
case 'h':
case 'i':
sn[q]=4
continue
case 'j':
case 'k':
case 'l':
sn[q]=5
continue
case 'm':
case 'n':
case 'o':
sn[q]=6
continue
case 'p':
case 'q':
case 'r':
sn[q]=7
continue
case 't':
case 'u':
case 'v':
sn[q]=8
continue
case 'w':
case 'x':
case 'y':
case 'z':
sn[q]=9
continue
}
}
}
String s=""
for(int i=0i<4*en.lengthi++) {
s=s+sn[i]
if(i%4==0) s=s+sn[i]+"."
}
String[] sqe=s.split("\\.")
Scanner sc =new Scanner(System.in)
String str1= sc.next()
for(int i=0i<sqe.lengthi++) {
boolean result1=sqe[i].equals(str1)
if ( result1==true) System.out.println(sqe[i]+en[i])
break
}
System.out.println("没匹配单词")
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)