1.实验目的
掌握类的声明、对象的创建、方法的定义和调用、构造函数的使用。
2.实验内容
1)定义一个表示学生信息的类Student,要求如下:
① 类Student的成员变量:
sNO 表示学号;
sName 表示姓名;
sSex 表示性别;
sJava 表示Java课程成绩;
② 类Student的方法成员:
getNo():获得学号;
getName():获得姓名;
getSex():获得性别;
getAge()获得年龄;
getJava():获得Java 课程成绩
2)按(1)中学生类Student的定义,创建两个该类的对象,存储并输出两个学生的信息计算机并输出这两个学生Java语言成绩的平均值。
3)创建第 (1)题的Student类的5个对象,求他们Java语言成绩的最大值和最小值。
4)根据下面的要求实现圆类Circle。
① 圆类Circle的成员变量:
radius表示圆的半径。
② 圆类Circle的方法成员:
Circle():构造方法,将半径置0
Circle(double r):构造方法,创建Circle对象时将半径初始化为r
double getRadius():获得圆的半径值
double getPerimeter():获得圆的周长
void disp():将圆的半径、圆的周长和圆的面积输出到屏幕
3.实验代码
package seconddemo;
public class SecondDemo {
public static class Student {//学生类
//成员变量
private String sNo;
private String sName;
private String sSex;
private int sAge;
private double sJava;
public void setStudent(String no, String name, String sex, int age, int java) {
sNo = no;
sName = name;
sSex = sex;
sAge = age;
sJava = java;
}
//成员方法
public void getNO() {//获取相关成员变量的值
System.out.print(sNo+"\t");
}
public void getName() {
System.out.print(sName+"\t");
}
public void getSex() {
System.out.print(sSex+"\t");
}
public void getAge() {
System.out.print(sAge+"岁\t");
}
public void getJava() {
System.out.print(sJava+"分");
}
}
public static class Circle{
private double radius;
public Circle(){
radius = 0;
}
public Circle(double r) {
radius = r;
}
public double getRadius() {
return radius;
}
public double getPerimeter() {
return 2 * 3.14 * radius;
}
public void disp() {
System.out.println("圆的半径为:" + radius);
System.out.println("圆的周长为:" + (2 * 3.14 * radius));
System.out.println("圆的面积为:" + (3.14 * radius * radius));
}
}
public static void main(String[] args) {//主类
//这是第二问
System.out.println("第二问:");
Student studentA = new Student();
Student studentB = new Student();
System.out.println("studentA和studentB的信息如下:");
studentA.setStudent("gl3162052051432", "Yu Dong", " 男", 20, 98);
studentB.setStudent("gl3162052051431", "Xu chen", " 男", 20, 100);
studentA.getNO();
studentA.getName();
studentA.getSex();
studentA.getAge();
studentA.getJava();
System.out.println();
studentB.getNO();
studentB.getName();
studentB.getSex();
studentB.getAge();
studentB.getJava();
System.out.println();
System.out.println(studentA.sName+"同学和"+studentB.sName+"同学的Java课程的平均分为:"+((studentA.sJava+studentB.sJava)/2)+"分");
//这是第三问
double max = -1;
double min = 101;
Student[] student = new Student[5];//定义数组
for(int i = 0; i<student.length; i++) {//初始化对象
student[i] = new Student();
}
student[0].setStudent("gl3162052051432", "Yu Dong", " 男", 20, 98);
student[1].setStudent("gl3162052051431", "Xu chen", " 男", 20, 62);
student[2].setStudent("gl3162052051430", "Li hai", " 男", 20, 82);
student[3].setStudent("gl3162052051429", "li da", " 男", 20, 77);
student[4].setStudent("gl3162052051428", "Su wang", " 男", 20, 96);
for(int i = 0; i<student.length; i++) {
if(min > student[i].sJava)min = student[i].sJava;
if(max < student[i].sJava)max = student[i].sJava;
}
System.out.println("\n第三问:");
System.out.println("五名同学Java课程的最高成绩为:"+max);
System.out.println("五名同学Java课程的最底成绩为:"+min);
//这是第四问
System.out.println();
System.out.println("第四问:");
Circle cirNameA = new Circle();
Circle cirNameB = new Circle(6);
System.out.println("无参初始化:");
cirNameA.disp();
System.out.println("带参初始化:");
cirNameB.disp();
}
}
4.运行结果
5.注意事项
在主类内部,新建一个另一类的类,必须加上关键字 static,否则在主函数里调用非静态的类,出现错误,提示“无法从静态上下文中引用非静态变量this”,因为main方法执行时,内部非静态类还没加载,所以访问不到。在本例中在student类前加一个static,就可以直接在main中调用了,当然也可以将类放在外面。