本篇是针对对JAVA类和对象的有关习题。
1.编写一个圆类 Circle,该类拥有:一个成员变量 Radius(私有,浮点型,存放圆的半径);两个构造方法(Circle( ),将半径设为 0;Circle(double r ),创建 Circle 对象时将半径初始化为 r);三个成员方法(double getArea( ),获取圆的面积;double getPerimeter( ),获取圆的周长;void show( ),将圆的半径、周长、面积输出到屏幕)。
编写一个圆柱体类 Cylinder,它继承于上面的 Circle 类。还拥有一个成员变量(double hight(私有,浮点型,存放圆柱体的高);一个构造方法(Cylinder (double r, double h ),创建 Circle 对象时将半径初始化为 r;成员方法(double getVolume( ),获取圆柱体的体积;void showVolume( ) ,将圆柱体的体积输出到屏幕)。
编写应用程序,在 main()方法中创建类的对象,分别设置圆的半径、圆柱体的高,计算并分别显示圆半径、圆面积、圆周长,圆柱体的体积。
/*Circle类
编写一个圆类 Circle,
该类拥有:
一个成员变量 Radius(私有,浮点型,存放圆的半径);
两个构造方法
(Circle( ),将半径设为 0;
Circle(double r ),创建 Circle 对象时将半径初始化为 r);
三个成员方法(double getArea( ),获取圆的面积;
double getPerimeter( ),获取圆的周长;void show( ),将圆的半径、周长、面积输出到屏幕)。*/
package xiti2_1;
public class Circle {
private double Radius;
//一个成员变量 Radius(私有,浮点型,存放圆的半径)
public double getRadius() {
return Radius;
}
public void setRadius(double radius) {
Radius=radius;
}//私有变量公有化
public Circle() {
}
//构造方法 Circle( ),将半径设为 0;
public Circle(double r)
{
this.Radius=r;
}
//构造方法:Circle(double r ),创建 Circle 对象时将半径初始化为 r
public double getArea(double Radius) {
return Radius*Radius*Math.PI;
}
//成员方法:double getArea( ),获取圆的面积
public double getPerimeter(double Radius) {
return 2*Math.PI*Radius;
}
//成员方法:double getPerimeter( ),获取圆的周长
public void show() {
System.out.println("圆的半径为:"+Radius);
System.out.println("圆的面积为:"+this.getArea(Radius));
System.out.println("圆的周长为:"+this.getPerimeter(Radius));
}
//成员方法:void show( ),将圆的半径、周长、面积输出到屏幕
}
/*Cylinder类
编写一个圆柱体类 Cylinder,它继承于上面的 Circle 类。
还拥有一个成员变量(double hight(私有,浮点型,存放圆柱体的高);
一个构造方法(Cylinder (double r, double h ),创建 Circle 对象时将半径初始化为 r;
成员方法(double getVolume( ),获取圆柱体的体积;void showVolume( ) ,将圆柱体的体积输出到屏幕)。*/
package xiti2_1;
//import xiti2_1.Circle;
//圆柱体类 Cylinder,它继承于上面的 Circle 类
public class Cylinder extends Circle{
private double hight;
//一个成员变量(double hight(私有,浮点型,存放圆柱体的高)
public Cylinder() {
}
public Cylinder(double r,double h) {
super(r);
this.hight=h;
}
//一个构造方法(Cylinder (double r, double h ),创建 Circle 对象时将半径初始化为 r
public double getVolume() {
return Math.PI*this.getRadius()*this.getRadius()*hight;
}
//成员方法(double getVolume( ),获取圆柱体的体积
public void show() {
System.out.println("圆的体积为:"+this.getVolume());
}
//void showVolume( ) ,将圆柱体的体积输出到屏幕
}
/*
应用程序,在 main()方法中创建类的对象,分别设置圆的半径、圆柱体的高,计算并分别显示圆半径、圆面积、圆周长,圆柱体的体积。
*/
package xiti2_1;
import xiti2_1.Circle;
import xiti2_1.Cylinder;
public class xiti2_1 {
public static void main(String[] args) {
Circle circle=new Circle(2);
circle.show();
Cylinder cylinder=new Cylinder(2,1);
cylinder.show();
}
}
2.定义一个表示学生信息类 Student,要求如下:
(1)类 Student 的成员变量:sNO 表示学号;sName 表示姓名;sSex 表示性别;sAge 表示年龄;sJava:表示 Java 课程成绩。
(2)类 Student 带参数的构造方法: 在构造方法中通过形参完成对成员变量的赋值操作。
(3)类 Student 的方法成员:getNo():获得学号;getName():获得姓名; getSex():获得性别;getAge()获得年龄;getJava():获得 Java 课程成绩
(4)根据类 Student 的定义,创建五个该类的对象,输出每个学生的信息,计算并输出这五个学生 Java 语言成绩的平均值,以及计算并输出他们 Java 语言成绩的最大值和最小值。
package xiti2_2;
public class student {
/*
成员变量:sNO 表示学号;sName 表示姓名;sSex 表示性别;sAge 表示年龄;sJava:表示 Java 课程成绩。
*/
public int sNo;
public String sName;
public String sSex;
public int sAge;
public int sJava;
/*
构造方法: 在构造方法中通过形参完成对成员变量的赋值操作。
*/
public student(int n,String a,String b,int c,int d) {
//super();
sNo=n;
sName=a;
sSex=b;
sAge=c;
sJava=d;
}
/*
方法成员:getNo():获得学号;getName():获得姓名; getSex():获得性别;getAge()获得年龄;getJava():获得 Java 课程成绩
*/
public int getAge() {
return sAge;
}
public String getSex() {
return sSex;
}
public String getName() {
return sName;
}
public int getNo() {
return sNo;
}
public int getJava() {
return sJava;
}
public static void main(String[] args) {
int min=100,max=0,sum=0;
student sd[] = new student[5];
sd[0] = new student(170210101,"张二","女",17,85);
sd[1] = new student(170210102,"张三","男",18,86);
sd[2] = new student(170210103,"王二","女",19,87);
sd[3] = new student(170210104,"王三","男",20,88);
sd[4] = new student(170210105,"小王","女",19,89);
for(int i=0;i<sd.length;i++){
System.out.println("学号:"+sd[i].sNo+"年龄:"+sd[i].sAge+sd[i].sName+sd[i].sSex+sd[i].sJava);
if(sd[i].sJava<min){
min = sd[i].sJava;
}
if(sd[i].sJava>max){
max = sd[i].sJava;
}
sum = sum+sd[i].sJava;
}
System.out.println("最小值:"+min+"最大值:"+max+"平均值:"+sum/sd.length);
}
}
3.编写程序,模拟银行账户功能。编写银行类 Account,该类具备以下属性和方法:
属性:账号、储户姓名、存款余额、最小余额。
方法:存款、取款、查询。
根据用户操作显示储户相关信息。如:存款操作后,显示储户原有余额、今日存款数额及最终存款余额;取款时,若最后余额小于最小余额,拒绝取款,并显示“至少保留余额:XXX元”
提示:(1)可把最小余额定义成静态变量。
(2)要有 Account 类的构造方法。
package xiti2_3;
import java.util.Scanner;
import javax.security.auth.login.AccountException;
public class Account {
public String id;
public String name;
public int savemoney;
public int minmoney;
public Account(String sid,String sname,int ssavemoney,int sminmoney) {
id=sid;
name=sname;
savemoney=ssavemoney;
minmoney=sminmoney;
}
//构造方法
public void display() {
System.out.println("账号为:"+id);
System.out.println("账户姓名为:"+name);
System.out.println("存款余额为:"+savemoney);
}
//成员方法
//存款
public void save(int today_save) {
System.out.println("原有余额为:"+savemoney);
savemoney=savemoney+today_save;
System.out.println("今日存款数为:"+today_save);
System.out.println("最终存款余额为:"+savemoney);
}
//取款
public void take() {
Scanner sc1=new Scanner(System.in);
int takemoney=sc1.nextInt();
if((savemoney-takemoney)>=minmoney)
{
savemoney=savemoney-takemoney;
System.out.println("允许取款");
System.out.println("今日取款数为:"+takemoney);
System.out.println("最终余额数为:"+savemoney);
}
else {
System.out.println("拒绝取款");
System.out.println("最少保留余额"+minmoney+"元");
}
}
public static void main(String[] args) {
Account account=new Account("123456","张三",10000,100);
while(true) {
System.out.println("---欢迎进入银行账户操作系统---");
System.out.println("---------1银行账户信息--------");
System.out.println("---------2取款操作------------");
System.out.println("---------3存款操作------------");
System.out.println("---------4退出系统------------");
System.out.println("------------------------------");
Scanner sc2=new Scanner(System.in);
int choice=sc2.nextInt();
switch(choice)
{
case 1:{
System.out.println("---------1银行账户信息--------");
account.display();
break;
}
case 2:{
System.out.println("---------2取款操作------------");
account.take();
break;
}
case 3:{
System.out.println("---------3存款操作------------");
account.save(200);
break;
}
case 4:{
System.out.println("---------4退出系统------------");
System.out.println("欢迎再次使用本系统!");
break;
}
default:
System.out.println("输入有误!");
}
}
}
}
4.创建银行账户类 SavingAccount,用静态变量存储年利率,用私有实例变量存储存款额。提供计算年利息方法(即余额乘以年利率)和计算月利息方法(即年利息/12)。
编写一个测试程序测试该类,建立 SavingAccount 的对象 saver,存款额是 3000,设置年利率是 3%,计算并显示 saver 的存款额、年利息和月利息。
要求:
(1)SavingAccount 类要有构造方法,用于对存款额赋初值。
(2)SavingAccount 类要有显示存款额的方法。
package xiti2_4;
public class Savingaccount {
public static double year_rate;
private double savemoney;
/*public double getsavemoney() {
return savemoney;
}
public void setsavemoney(double m) {
this.savemoney=m;
}*/
public void cyear() {
double cyear;
cyear=savemoney*year_rate;
System.out.println("年利息为:"+cyear);
}//年利息
public void cmonth() {
double cmonth;
cmonth=(year_rate/12)*savemoney;
System.out.println("月利息为:"+cmonth);
}//月利息
public void show() {
System.out.println("存款额为:"+savemoney);
}
public Savingaccount(double Year_rate,double Savemoney) {
year_rate=Year_rate;
savemoney=Savemoney;
}//构造方法
public static void main(String[] args) {
Savingaccount saver=new Savingaccount(0.03, 3000);
saver.show();
saver.cyear();
saver.cmonth();
}
}