七、类的多态

package wangzhuyling;

import java.util.Scanner;

public class Student {
public int i=0,id=1,nj,x;
public static int count=1,count1=1;
public static double wl,wlw,yw,sx,yy,yw1,sx1,yy1;
public String xing,name,zy,address;
public double date,avg,chinese,math,english;
static Scanner shuru=new Scanner(System.in);
public Student(String xing,String name,String zy,int nj,int id,String address,double date,double chinese,double math,double english)
{
this.xing=xing;
this.name=name;
this.zy=zy;
this.nj=nj;
this.x=this.nj*100;
this.id=id;
if(this.zy.equals("网络工程")){
this.id=this.x+count;
}

if(this.zy.equals("物联网工程"))
this.id=this.x+count1;


this.address=address;
this.date=date;
this.chinese=chinese;
this.math=math;
this.english=english;

}

public void name_chazhao(String temp) {
if(this.xing.equals(temp)) {
System.out.println(name+" "+zy+" "+nj+" "+id+" "+address+" "+date+" "+" "+chinese+" "+math+" "+english);
}
}
public void date_chazhao(double temp) {
for(i=0;i<3;i++)
if(this.date==temp) {
System.out.println(name+" "+zy+" "+nj+" "+id+" "+address+" "+date+" "+chinese+" "+math+" "+english);
break;
}
}
public void address_chazhao(String temp) {
if(address.equals(temp)) {
System.out.println(name+" "+zy+" "+nj+" "+" "+id+" "+address+" "+date+" "+chinese+" "+math+" "+english);
}
}
public void tongjichengji() {
if(this.zy.equals("网络工程")) {
this.yw=this.yw+chinese;
this.sx=this.sx+math;
this.yy=this.yy+english;
}
if(this.zy.equals("物联网工程")) {
this.yw1=this.yw1+chinese;
this.sx1=this.sx1+math;
this.yy1=this.yy1+english;
}
}
public static void main(String[] args) {
Student[] stu=new Student[3];
stu[0]=new Student("","张三","网络工程",2017,0,"海南万宁",1998,100,90,80);
stu[1]=new Student("","李四","网络工程",2016,0,"广西南宁",1997,100,95,90);
stu[2]=new Student("","马五六四","网络工程",2015,0,"青海西宁",1999,100,98,96);
String temp;
double year;
Scanner shuru=new Scanner(System.in);
int j=1;
while(j!=0) {
System.out.println("1 姓查找 2 出生年查找 3 地址查找 0 退出");
j=shuru.nextInt();
switch(j) {
case 1:    
System.out.println("请输入查找的姓:");
temp=shuru.next();
for(int i=0;i<3;i++) {
stu[i].name_chazhao(temp);
};break;
case 2:System.out.println("请输入查找的年份:");
year=shuru.nextDouble();
for(int i=0;i<3;i++) {
stu[i].date_chazhao(year);
};break;
case 3:System.out.println("请输入查找的地址:");
temp=shuru.next();
for(int i=0;i<3;i++) {
stu[i].address_chazhao(temp);
};break;
}
}
System.out.println("查询专业的统计成绩:");
temp=shuru.next();
for(int i=0;i<3;i++) {
if(stu[i].zy.equals("网络工程"))
stu[i].tongjichengji();
if(stu[i].zy.equals("物联网工程"))
stu[i].tongjichengji();
}
if(temp.equals("网络工程"))
System.out.println("语文总分为:"+yw+"数学总分为:"+sx+"英语总分为"+yy);
if(temp.equals("物联网工程"))
System.out.println("语文总分为:"+yw1+"数学总分为:"+sx1+"英语总分为"+yy1);    
}    
}
实验结果为:

1 姓查找 2 出生年查找 3 地址查找 0 退出
1
请输入查找的姓:
张
张三  网络工程 2017 201701 海南万宁 1998.0 100.0 90.0 80.0
1 姓查找 2 出生年查找 3 地址查找 0 退出

2
请输入查找的年份:
1997
李四  网络工程 2016 201601 广西南宁 1997.0 100.0 95.0 90.0
1 姓查找 2 出生年查找 3 地址查找 0 退出
3
请输入查找的地址:
青海西宁
马五六四  网络工程 2015 201501 青海西宁 1999.0 100.0 98.0 96.0
1 姓查找 2 出生年查找 3 地址查找 0 退出
0
查询专业的统计成绩:
网络工程
语文总分为:300.0数学总分为:283.0英语总分为266.0

 

心得体会:

1.在定义数据类型时一定不要加上static,不然后面的对象数据会覆盖之前的数据

2.在统计成绩时,一定要先运行对象中的函数separate(),因为对象是无法自动执行函数

3.Java中的成员分为两种,实例成员和静态成员

4.Static不能修饰方法的局部变量

5.子类继承父类除构造方法以外的成员方法,包括实例成员方法和静态成员方法,包括析构方法

猜你喜欢

转载自www.cnblogs.com/zyl9/p/10822181.html