(7)2017.8.7-面向对象(2)

下面就举简单的几个例子用来回顾面向对象的封装以及构造方法的重载。

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);
	}
}

运行结果为:


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
实验内容: 一、定义一个名为Circle圆类,位于shape包中。要求如下: (1) 该类需要描述在二维坐标系中的位置,心的横、纵坐标值均取整数;描述半径,取双精度类型。 (2) 无参构造方法将心坐标设为坐标点,半径设为1.0;有参构造方法需要根据参数值设置心坐标和半径值。 (3) 提供一个计算面积的方法double getArea()。 (4) 提供一个判断当前对象与参数对象是否相交的方法(相交方式见下图): boolean isIntersected(Circle another) (5) 提供一个判断当前对象是否包含参数对象的方法(包含方式见下图): boolean contains(Circle another) (6) 提供一个判断当前对象与参数对象的大小关系的方法(判断依据是半径半径之差的绝对值小于0.0001认为相等;返回负数表示当前对象小,0表示相等,正数表示当前对象) int compareTo(Circle another) (7) 提供返回当前的字符串的方法,格式为:[Circle(x,y)-raduis] String toString() 二、定义一个包含main方法的类TestCircle,位于shape包中。要求如下: (1) main方法中调用以下方法。 (2) 编写静态方法createArray,生成位置和大小均随机的10个对象,置于数组中。 (3) 编写静态方法sort对这10个对象进行升序排序,并输出。 (4) 编写静态方法computeArea计算这10个中互不相交和包含的的面积之和。 提交要求:打包为可以执行的JAR文档,其中要包含源程序文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张小五丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值