面向对象的四大特性
1、封装:把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。
2、继承:从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类,得到继承信息的类被称为子类。
3、多态:允许不同子类型的对象对同一消息作出不同的响应,重写和重载的定义。
4、抽象:将一类对象的共同特征总结出来构造类的过程。
题目:编写一个程序,输入N个学生数据,包括学号、姓名、成绩,要求输出这些学生数据并计算平均分。
思路:设计一个学生类StringUtil,除了包括num(学号)、name(姓名)和score(成绩)数据成员外,有三个静态变量sum、count和score,分别存放总分和人数,另有成员函数show(),用于输出数据成员的值,另有一个静态成员函数show1(),它用输出平均分。在main()函数中输入学生数据。
import java.util.Scanner;
class StringUtil {
private String num;
private String name;
private double score;
private static double sum;
private static int count;
private static double aver;
public void show() {
System.out.print("SNO=");
System.out.print(num + "\t");
System.out.print("SN=");
System.out.print(name + "\t");
System.out.print("SC=");
System.out.println(score);
}
public static void show1() {
System.out.print("学生总数为:");
System.out.println(count);
System.out.print("学生平均成绩为:");
System.out.println(aver);
}
public void student(String num1, String name1, double score1) {
num = num1;
name = name1;
score = score1;
count++;
sum += score1;
aver = sum / count;
}
}
public class Test {
public static void main(String[] args) {
StringUtil cc = new StringUtil();
System.out.print("请输入录入人数:");
Scanner scan0 = new Scanner(System.in);
int n = scan0.nextInt();
for (int i = 0; i < n; i++) {
System.out.print("请输入学生信息(学号 姓名 成绩):");
Scanner scan = new Scanner(System.in);
String a = scan.next();
String b = scan.next();
double c = scan.nextDouble();
cc.student("12", "p1", 90);
cc.show();
}
cc.show1();
}
}