实验五 类和对象程序设计

一、实验目的

1、掌握类的定义方法

2、掌握对象的创建和使用

3、掌握构造方法的使用

二、实验硬、软件环境

Windows计算机和Eclipse软件

三、实验内容及步骤

1.定义一个Circle类,包含一个double型的radius属性代表圆的半径,一个findArea()方法返回圆的面积。定义测试类,在测试类中使用Circle类的findArea()方法;

定义一个类PassObject,在类中定义一个方法printAreas(),该方法的定义如下:public void printAreas(Cirlcec,inttime)在printAreas方法中打印输出1到time之间的每个整数半径值,以及对应的面积。例如,times为6,则输出半径1,2,3,4,5,6,以及对应的圆面积;

定义一个测试类,在测试类的main方法中调用printAreas()方法,调用完毕后输出当前半径值。程序运行结果如图所示。

代码及运行结果:

package 实验五;//方法

public class Circle {

double radius;

public double findArea(){

        return Math.PI*radius*radius;}}

package 实验五;//方法

public class PassObject {

public void printArea(Circle c,double time) {

System.out.println("Radius"+"   :    "+"Area");

for(double i = 1;i <= time;i++) {

c.radius = i;

System.out.println(c.radius + "   :   "+c.findArea());}}}

package 实验五;//测试类

import java.util.Scanner;

public class Test1 {

public static void main(String[] args) {

// TODO Auto-generated method stub

Scanner sc = new Scanner(System.in);

double r = sc.nextDouble();

Circle circle = new Circle();

PassObject p = new PassObject();

p.printArea(circle,r);}}

2.写一个名为Account的类模拟账户。该类的属性和方法如下图所示。该类包括的属性:账号id,余额balance,年利率annualInterestRate;包含的方法:访问器方法(getter和setter方法),取款方法withdraw(),存款方法deposit()。

Account

Private int id

Private double balance

Private double annualInterestRate

Public Account(intid,doublebalance,double

annualInterestRate)

Public int getId()

Public double getBalance()

Public double getAnnualInterestRate()

Public void setId(intid)

Public void setBalance(doublebalance)

Public void setAnnualInterestRate(doubleannualInterestRate)

提示:在提款方法withdraw中,需要判断用户余额是否能够满足提款数额的

要求,如果不能,应给出提示。并进行测试使用。

代码及运行结果:

package 实验五;

public class Account {

 private int id;

 private double balance;

 private double annualInerestRate;

 public Account (int id, double balance, double annualInterestRate) {

 this.id = id;

 this.balance = balance;

 this.annualInerestRate = annualInerestRate; }

public int getId() {

return id;}

public void setId(int id) {

if(id>0) {

this.id = id;}

System.out.println("输入有错");}

public double getBalance() {

return balance;}

public void setBalance(double balance) {

this.balance = balance;}

public double getannualInerestRate() {

return annualInerestRate;}

public void setannualInerestRate(int annualInerestRate) {

this.annualInerestRate = annualInerestRate;}

public void withdraw(double amount) {

 if(amount > getBalance()) {

 System.out.println("余额不足,取款失败");

 }else {

 System.out.println("您的取款金额是:  "+amount);

 this.setBalance(this.getBalance()-amount);

 System.out.println("您的当前余额为:   "+getBalance());}}

public void deposit(double amount) {

System.out.println("您成功存入"+amount+"  元");

this.setBalance(this.getBalance()+amount);

System.out.println("您的当前余额为:   "+getBalance());}}

package 实验五;

import java.util.Scanner;

public class Test {

public static void main(String[] args) {

Account A1 = new Account(1,50000,0.35);

System.out.println("请选择的操作:  1:取钱 2:存钱");

Scanner sc = new Scanner(System.in);

int unm = sc.nextInt();

if(unm == 1) {

System.out.print("请输入取款机金额: ");

Scanner sc1 = new Scanner(System.in);

A1.withdraw(sc1.nextDouble());

}else if(unm == 2) {

System.out.print("请输入存款机金额: ");

Scanner sc1 = new Scanner(System.in);

A1.deposit(sc1.nextDouble());

}else {

System.out.println("输入有误终止操作");}}}

四、实验结果及分析

1.通过此次实验我掌握了类的定义方法,它拥有具体的语法格式,我们需要输入对应的属性和方法,在第一个实验中圆的面积用PI*radius*radius表示,PassObject方法需要用到for循环,在创建一个测试类,在测试类的main方法中调用printAreas()方法,调用完毕后输出当前半径值,运行后就可得到相应结果。

    2.构造方法的使用中,使用new运算符创建对象时JDK会自动调用无参的构造方法,Java中的每一个类都有其构造方法。如果没有定义构造方法,JDK就会自动创建无参数的构造方法。

3.第二个实验比较复杂,其中运用了private关键字来修饰成员变量id、balanceannualInerestRate,getXXX()、setXXX()分别用于获取和设置成员变量的值,方法用public来修饰,还要根据题意运用if循环来实现题目要求。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值