下面就举简单的几个例子用来回顾面向对象的封装以及构造方法的重载。
1)编写一个圆类Circle,该类拥有:
①一个成员变量
Radius(私有,浮点型); // 存放圆的半径;
②两个构造方法
Circle( ) // 将半径设为0
Circle(double r ) //创建Circle对象时将半径初始化为r
③ 三个成员方法
double getArea( ) //获取圆的面积
double getPerimeter( ) //获取圆的周长
void show( ) //将圆的半径、周长、面积输出到屏幕
这题很简单,就是为了熟悉创建成员变量以及成员方法的调用,下面是实现代码:
package test11;
public class Circle {
private double Radius;
public Circle() {
Radius=0;
}
Circle(double r){
Radius=r;
}
public double getArea(double Area){
Area =Radius*Radius*Math.PI;
return Area;
}
public double getPerimeter(double Permeter){
Permeter=Radius*2*Math.PI;
return Permeter;
}
public void show(){
System.out.println("面积是"+getArea(Radius));
System.out.println("周长为"+getPerimeter(Radius));
}
public static void main(String[] args) {
Circle circle =new Circle(4);
circle.show();
}
}
运行结果为:
2)定义一个表示学生信息的类Student,要求如下:
(1)类Student的成员变量:
sNO 表示学号;sName表示姓名;sSex表示性别;sAge表示年龄;sJava:表示Java课程成绩。
(2)类Student带参数的构造方法:
在构造方法中通过形参完成对成员变量的赋值操作。
(3)类Student的方法成员:
getNo():获得学号;
getName():获得姓名;
getSex():获得性别;
getAge()获得年龄;
getJava():获得Java 课程成绩
根据类Student的定义,创建五个该类的对象,输出每个学生的信息,计算并输出这五个学生Java语言成绩的平均值,以及计算并输出他们Java语言成绩的最大值和最小值。
这题比上题稍复杂些,但是我们可以利用数组来调用每个学生的信息,就会比单独输入要轻松一些。package com.hpe.www;
public class Student {
private int sNO;
private String sName;
private String sSex;
private int sAge;
private double sJava;
public Student(int no, String name, String sex, int age, double java) {
sNO = no;
sName = name;
sSex = sex;
sAge = age;
sJava = java;
}
public int getsNO(int no) {
return sNO;
}
public void setsNO(int sNO) {
this.sNO = sNO;
}
public String getsName() {
return sName;
}
public void setsName(String sName) {
this.sName = sName;
}
public String getsSex() {
return sSex;
}
public void setsSex(String sSex) {
this.sSex = sSex;
}
public int getsAge() {
return sAge;
}
public void setsAge(int sAge) {
this.sAge = sAge;
}
public double getsJava() {
return sJava;
}
public void setsJava(double sJava) {
this.sJava = sJava;
}
public static void main(String[] args) {
double sum = 0;
Student student1 = new Student(01, "张三", "男", 21, 95);
Student student2 = new Student(02, "李四", "男", 21, 65);
Student student3 = new Student(03, "王五", "女", 19, 95);
Student student4 = new Student(04, "李雷", "男", 23, 70);
Student student5 = new Student(05, "韩梅梅", "女", 18, 89);
Student[] students = { student1, student2, student3, student4, student5 };
System.out.println("学号 姓名 性别 年龄 java成绩 ");
for (int i = 0; i < students.length; i++) {
System.out.println(students[i].sNO + "\t" + students[i].sName + "\t" + students[i].sSex + "\t"
+ students[i].sAge + "\t" + students[i].sJava);
}
// System.out.println(student1.sNO+"\t"+student1.sName+"\t"+student1.sSex+"\t"+student1.sAge+"\t"+student1.sJava);
// System.out.println(student2.sNO+"\t"+student2.sName+"\t"+student2.sSex+"\t"+student2.sAge+"\t"+student2.sJava);
// System.out.println(student3.sNO+"\t"+student3.sName+"\t"+student3.sSex+"\t"+student3.sAge+"\t"+student3.sJava);
// System.out.println(student4.sNO+"\t"+student4.sName+"\t"+student4.sSex+"\t"+student4.sAge+"\t"+student4.sJava);
// System.out.println(student5.sNO+"\t"+student5.sName+"\t"+student5.sSex+"\t"+student5.sAge+"\t"+student5.sJava);
for (int i = 0; i < students.length; i++) {
sum += students[i].sJava;
}
double ave = sum / students.length;
System.out.println("平均成绩是" + ave);
for (int i = 0; i < students.length; i++) {
for (int j = 0; j < i; j++) {
if (students[i].sJava < students[j].sJava) {
students[i].sJava = students[i].sJava + students[j].sJava;
students[j].sJava = students[i].sJava - students[j].sJava;
students[i].sJava = students[i].sJava - students[j].sJava;
}
}
}
System.out.println("全班最高成绩为:" + students[0].sJava + "最低成绩为:" + students[4].sJava);
}
}
运行结果为: