javaSE-oop 方法与构造方法

【练习题】01.类的成员变量:

设计一个立方体类Box,定义三个属性,分别是长,宽,高。定义二个方法,分别计算并输出立方体的体积和表面积

package oop_shiYanEr;

class Box{

int length;

int weight;

int height;

public int getVolume(int length,int weight,int height) {

return length*weight*height;

}

public int getArea(int length,int weight,int height){

return 2*(length*weight+height*weight+weight*length);

}

}

public class _1 {

public static void main(String[] args) {

// TODO Auto-generated method stub

        Box box = new Box();

        int area = box.getArea(2, 4, 6);

        int volume = box.getVolume(3, 4, 7);

        System.out.println("面积是:"+area);

        System.out.println("体积是:"+volume);

        

}

}

 

 

【练习题】02.类的成员变量:

请定义一个交通工具(Vehicle)的类,其中有:

属性:速度(speed),距离(distance)等等

方法:移动(move(int s)),设置速度(setSpeed(int speed)),加速speedUp(),减速speedDown()等等.

最后在测试类Vehicle中的main()中实例化一个交通工具对象,并通过方法给它初始化speed, distance的值,并且通过打印出来。另外,调用加速,减速的方法对速度进行改变。调用 move方法改变distance,并输出已经移动的距离

package oop_shiYanEr;

class Vechicle{

int speed;

int distance;

public int move(int s) {

System.out.println("汽车行驶了"+s);

return s;

}

public int setSpeed(int speed) {

return speed;

}

public int speedUp() {

int up = 10;

return up;

}

public int speedDown() {

int down = 10;

return down;

}

}

public class _2 {

public static void main(String[] args) {

// TODO Auto-generated method stub

Vechicle v = new Vechicle();

v.distance = 1000;

int a = v.move(200);

int s =  v.distance-a;

System.out.println("距离目的地还有:"+s);

v.speed = v.setSpeed(50);

        System.out.println("当前汽车的速度是:"+v.speed);

        v.speedUp();

        System.out.println("汽车进行一次加速,速度增加:"+v.speedUp());

        v.speed = v.speed + v.speedUp();

        System.out.println("汽车进行一次加速,速度变为:"+v.speed);

        v.speedDown();

        System.out.println("汽车进行一次减速,速度减少:"+v.speedUp());

        v.speed = v.speed - v.speedDown();

        System.out.println("汽车进行一次减速,速度变为:"+v.speed);

        

}

}

【练习题】03.类的成员变量与方法

    定义一个Hero类

   属性有  power,name,分别代表体力值和英雄的名子,体力值默认为100;

   方法有 

   1.void go(); //行走的方法,如果体力值为0,则输出不能行走,此英雄已死亡的信息

2.void eat(int n); //吃的方法,参数是补充的血量,将 n的值加到属性power中,power的值最大为100,

   3.void hurt();//每受到一次伤害,体力值-10,体力值最小不能小于0

编写测试类,来测试以上代码

package oop_shiYanEr;

class Hero{

int power;

String name;

public void go() {

if(power == 0) {

System.out.println("不能行走,此英雄已经死亡。");

}

}

public void eat(int n) {

if(power <= 100){

power+=n;

if(power >= 100) {

power = 100;

}

}

}

public void hurt() {

if(power == 0)

System.out.println("此英雄已经死亡。");

else

power-=10;

}

}

public class _3 {

public static void main(String[] args) {

// TODO Auto-generated method stub

        Hero h = new Hero();

        h.name = "狄仁杰";

        h.power = 99;

        System.out.println("此时英雄的体力值是:"+h.power);

        h.eat(10);

        System.out.println("经过一次加血之后,英雄的体力值变为:"+h.power);

        for(int i = 0;i < 10;i++) {

         h.hurt();

             System.out.println("英雄受到一次攻击后,英雄的体力值变为:"+h.power);

             if(h.power == 0) {

             System.out.println("此英雄已经死亡,需要等待复活。"); 

             }

        }

}

}

【练习题】04.方法的参数及返回值

定义一个计算器;它的功能有

      加,减,乘,除,累加,阶乘

      求平方,求次方,判断一个数是否为素数;boolean(int),并写测试类来测试这个方法

package oop_shiYanEr;

import java.util.Scanner;
import java.util.*;

import org.omg.PortableServer.POA;

class Calculator{
    Scanner reader = new Scanner(System.in);
    int a,b;
    
    //加法
    public int Add(int a,int b) {
        this.a = a;
        this.b = b;
        System.out.println(a+"+"+b+"="+(a+b));
        return a+b;
    }
    
    //减法
    public int Sub(int a,int b) {
        this.a = a;
        this.b = b;
        System.out.println(a+"-"+b+"="+(a-b));
        return a-b;
    }
    
    //乘法
    public int Mul(int a,int b) {
        this.a = a;
        this.b = b;
        System.out.println(a+"*"+b+"="+(a*b));
        return a*b;
    }
    
    //除法
    public double Div(int a,int b) {
        this.a = a;
        this.b = b;
        System.out.println(a+"/"+b+"="+(a/b));
        return a/b;
    }
    
    //累加
    public int leiJia(int c) {
        int sum = 0;
        for(int i = 0;i <=c;i++) {
            sum+=i;
        }
        System.out.println(c+"的累加之和是:"+sum);
        return sum;
    }
    
    //阶乘
    public int jieCheng(int d) {
        int sum1 = 1;
        for(int i = 1;i <= d;i++) {
            sum1 = sum1*i;
        }
        System.out.println(d+"阶乘的是:"+sum1);
        return sum1;
    }
    
    //判断素数
    public boolean is_prime(int a) {
        for(int i = 2;i < a;i++) {
            if(a%i == 0) {
                return false;
            }
        }
        return true;
    }
    
    //数组求和
    public int ShuzuQiuHe(int []a,int n) {
        int sum = 0;
        int [] a1 = new int[n];
        System.out.println("输入数组:");
        for(int i = 0;i < n;i++) {
            a1[i] = reader.nextInt();
            sum = sum +a1[i];
        }
        System.out.println("数组的和是:"+sum);
        return sum;
    }
    
    //幂的求解
    public int Mi(int a,int n) {
        int sum = 0;
        sum = pow(a,n);
        return sum;
        
    }
    
    //幂的实现
    private int pow(int a2, int n) {
        // TODO Auto-generated method stub
        int sum = 1;
        for(int i = 1;i <= n;i++) {
            sum = sum*a2;
        }
        System.out.println("幂是:"+sum);
        return sum;
    }
    
    //数的平方
    public double square(int a) {
        this.a = a;
        System.out.println(a+"的平方是:"+(a*a));
        return a*a;
    }
    
    //素数是个数
    public int primeNum(int a){
        int sum = 0;
        int flag = 0;
        for(int i = 2;i < a;i++) {
        if(is_prime(i))    
            sum++;    
        }
        System.out.println(a+"以内的素数个数为:"+sum);
        return sum;
    }

    //绝对值
    public int value(int n) {
        if(n >= 0) {
            System.out.println(n+"的绝对值是:"+n);
            return n;
        }else
            System.out.println(n+"的绝对值是:"+((-1)*n));    
        return n*(-1);
    }
   
}    

public class _4 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Calculator cal = new Calculator();
        cal.Add(4, 5);
        cal.Sub(12, 4);
        cal.Mul(4, 6);
        cal.Div(45, 9);
        cal.leiJia(100);
        cal.jieCheng(4);
        cal.square(3);
        int [] a = new int[5];
        cal.Mi(3,5);
        int num = cal.primeNum(100);
        System.out.println("分别是:");
        System.out.println("判断100以内的数是否是素数");
        int sum = 0;
        for(int  i = 2;i <= 100;i++) {
            if(cal.is_prime(i)) {    
                sum = sum + i;
                System.out.println(i+":"+cal.is_prime(i));
            }
        }
        System.out.println("素数之和是:"+sum);
        cal.value(1);
        cal.ShuzuQiuHe(a, 5);
    }

}
 

【练习题】05.构造方法:

编写Java程序,用于显示人的姓名和年龄。

定义一个人类(Person),该类中应该有两个私有属性,姓名(name)和年龄(age)。定义构造方法,用来初始化数据成员。再定义显示(display)方法,将姓名和年龄打印出来。

在main方法中创建人类的实例,然后将信息显示。

package oop_shiYanEr;

class Person{

private String name;

private int age;

Person(String name,int age){

this.name = name;

this.age = age;

}

public void display() {

System.out.println("姓名:"+name+","+"年龄:"+age);

}

}

public class _5 {

public static void main(String[] args) {

// TODO Auto-generated method stub

        Person p = new Person("张飞",35);

        p.display();

}

}

【练习题】06.get方法和set方法

定义一个类,该类有一个成员变量,通过构造方法将其进行赋初值,并提供该成员的getXXX()和setXXX()方法

提示:假设有String name;则有

public void setName(String name){

this.name = name;

}

public String getName(){

return this.name;

}

 

package oop_shiYanEr;

class Default{

String name;

String school;

int id;

String dept;

int age;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getSchool() {

return school;

}

public void setSchool(String school) {

this.school = school;

}

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getDept() {

return dept;

}

public void setDept(String dept) {

this.dept = dept;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

}

public class _6 {

public static void main(String[] args) {

// TODO Auto-generated method stub

        Default d = new Default();

//        d.name = "狄仁杰";

//        d.school = "东北林业大学";

//        d.dept = "信息学院";

//        d.id = 101;

//        d.age = 24;

        d.setName("狄仁杰");

        //d.getName();

        d.setSchool("东北林业大学");

        //d.getSchool();

        d.setDept("信息学院");

        //d.getDept();

        d.setId(101);

        //d.getName();

        d.setAge(24);

        //d.getAge();

        System.out.println("姓名是:"+d.getName());

        System.out.println("学校是:"+d.getSchool());

        System.out.println("学院是:"+d.getDept());

        System.out.println("学号是:"+d.getId());

        System.out.println("年龄是:"+d.getAge());

}

}

【练习题】07.构造方法与重载

为“无名的粉”写一个类:class WuMingFen 要求:

1.有三个属性:面码:String theMa 粉的份量(两):int quantity

是否带汤:boolean likeSoup

2.写一个构造方法,以便于简化初始化过程,如:

WuMingFen f1 = new WuMingFen("牛肉",3,true);

3.重载构造方法,使得初始化过程可以多样化:

WuMingFen f2 = new WuMingFen("牛肉",2);

4.如何使得下列语句构造出来的粉对象是酸辣面码、2两、带汤的?

WuMingFen f3 = new WuMingFen();

5.写一个普通方法:check(),用于查看粉是否符合要求。即:将对象的三个属性打印在控制台上。

 

package oop_shiYanEr;

class WuMingFen{

String kind;

int quantity;

boolean likeSoup;

WuMingFen(String kind,int quantity,boolean likeSoup){

this.kind = kind;

this.quantity = quantity;

this.likeSoup = likeSoup;

}

WuMingFen(String kind,int quantity){

this.kind = kind;

this.quantity = quantity;

}

WuMingFen(){

String kind = "酸辣面";

int quantity = 2;

boolean likeSoup = true;

}

public void check() {

System.out.println("面的种类是:"+kind+","+"面量:"+quantity+","+"是否有汤:"+likeSoup);

}

}

public class _7 {

public static void main(String[] args) {

// TODO Auto-generated method stub

        WuMingFen w = new WuMingFen("牛肉",3,true);

        w.check();

        WuMingFen w1 = new WuMingFen("牛肉",2);

        w1.check();

        WuMingFen w2 = new WuMingFen();

        w2.kind = "酸辣面";

        w2.quantity = 2;

        w2.likeSoup = true;

        w2.check();

}

}

【练习题】08.构造方法的重载:

在程序中,经常要对时间进行操作,但是并没有时间类型的数据。那么,我们可以自己实现一个时间类,来满足程序中的需要。

定义名为MyTime的类,其中应有三个整型成员:时(hour),分(minute),秒(second), 为MyTime类定义构造方法,以方便创建对象时初始化成员变量。

再定义diaplay方法,用于将时间信息打印出来。

为MyTime类添加以下方法:

addSecond(int sec)

addMinute(int min)

addHour(int hou)

subSecond(int sec)

subMinute(int min)

subHour(int hou)

分别对时、分、秒进行加减运算。

package oop_shiYanEr;

class MyTime {

int hour;

int minute;

int second;

MyTime(int hour, int minute, int second) {

this.hour = hour;

this.minute = minute;

this.second = second;

}

// 秒的相加

public void addSecond(int sec) {

second = second + sec;

if (second >= 60) {

minute++;

second = second - 60;

}

if (minute >= 60) {

hour++;

minute = minute - 60;

}

}

// 分的相加

    public void addMinute(int min) {

    minute = minute + min;

    if(minute >= 60) {

    hour++;

    minute = minute-60;

    }

    }

    

// 小时的相加

    public void addHour(int hou) {

    hour = hour + hou;

    }

    

// 秒的相减

    public void subSecond(int sec) {

    

    if(second < sec) {

    second=second+60-sec;

    minute--;

       if(minute == 0) {

    minute+=60;

    minute--;

    hour--;

       }

    }else

    second = second - sec;

    }

    

// 分的相减

    public void subMinute(int min) {

    

    if(minute < min) {

    minute = minute+60;

    minute = minute-min;

    hour--;

    }else

    minute = minute - min;

    }

    

// 小时的相减

    public void subHour(int hou) {

    hour = hour-hou;

    }

    

    //显示

public void display() {

System.out.println("经过变化后,时间变为:" + hour + ":" + minute + ":" + second);

}

}

public class _8 {

public static void main(String[] args) {

// TODO Auto-generated method stub

MyTime m = new MyTime(3, 45, 33);

m.addSecond(33);

m.display();

MyTime m1 = new MyTime(3, 45, 33);

m1.addMinute(15);

m1.display();

MyTime m2 = new MyTime(3, 45, 33);

m2.addHour(5);

m2.display();

MyTime m3 = new MyTime(3, 45, 33);

m3.subSecond(34);

m3.display();

m3.subMinute(54);

m3.display();

MyTime m4 = new MyTime(3,45,56);

m4.subHour(2);

m4.display();

}

}

 

【练习题】09.构造方法与重载

定义一个牛肉面的类(Noodle),它的属性有,

牛肉面宽度 width

尺寸:size  (大碗还是小碗) 大碗8元,小碗6元

是否加肉:beef   :加肉+4元

加蛋的数量:eggs  :每个1元;

定义构造方法来根据不同的条件创建不同的牛肉面

Noodle(){

  //不加肉,大碗,不加蛋,中宽;

}

Noodle(String width,int size)

Noodle(String width,int size,boolean beef);

Noodle(String width,int size,boolean beef,int eggs);

再定义一个方法,用来显示当前牛肉面的信息,并显示金额;

void  showNoodleInfo();

package oop_shiYanEr;

class Noddle{

String width;

String size;

boolean beef;

int egg;

Noddle(){

  boolean flag = false;

  String size = "大碗";

  int egg = 0;

  String width = "中宽"; 

}

Noddle(String width,String size){

this.width = width;

this.size = size;

}

Noddle(String width,String size,boolean beef){

this.width = width;

this.size = size;

this.beef = beef;

}

Noddle(String width,String size,boolean beef,int egg){

this.width = width;

this.size = size;

this.beef = beef;

this.egg = egg;

}

public void showNoddleInfo() {

int sum = 0;

if(this.size == "大碗") {

sum = sum + 8;

}else if(this.size == "小碗") {

sum = sum + 6;

}else

System.out.println("输出错误!");

if(this.beef == true) {

sum = sum + 4;

}

for(int i = 1;i <= egg;i++) {

sum++;

}

System.out.println("面条类型是:"+size+","+width+","+beef+","+egg);

System.out.println("面条的总价是:"+sum);

}

}

public class _9 {

public static void main(String[] args) {

// TODO Auto-generated method stub

        Noddle n = new Noddle();

        n.size = "大碗";

        n.width = "中宽";

        n.showNoddleInfo();

        Noddle n1 = new Noddle("中宽","大碗");

        n1.showNoddleInfo();

        Noddle n2 = new Noddle("中宽","小碗",true);

        n2.showNoddleInfo();

        Noddle n3 = new Noddle("中宽","小碗",true,4);

        n3.showNoddleInfo();

}

}

【练习题】10.构造方法与重载、包

编写Addition类,该类中应包含一组实现两数相加运算的重载方法。

实现加法运算的方法,应接受两个参数(即加数和被加数),方法将两个参数进行加法运算后,返回相加结果。考虑可能针对不同的数据类型进行计算,重载一组方法,包括整型、长整型、浮点型、双精度浮点型、还有字符串。 在main方法中创建Addition类的实例,分别调用重载方法测试其效果。 应将Addition类打入到包中,以自己名字的拼音为包命名。

package oop_shiYanEr;

class Addition{

Addition(int a,int b){

int sum = a+b;

System.out.println("这是调用int");

System.out.println(a+"+"+b+"="+sum);

}

Addition(long a,long b){

double sum = a+b;

System.out.println("这是调用long");

System.out.println(a+"+"+b+"="+sum);

}

Addition(float a,float b){

float sum = a + b;

System.out.println("这是调用float");

System.out.println(a+"+"+b+"="+sum);

}

Addition(double a,double b){

double sum = a + b;

System.out.println("这是调用double");

System.out.println(a+"+"+b+"="+sum);

}

}

public class _10 {

public static void main(String[] args) {

// TODO Auto-generated method stub

        Addition add = new Addition(5,6);

        Addition add1 = new Addition(3.4,4.5);

        

}

}

【练习题】11.构造方法与重载

定义一个网络用户类,要处理的信息有用户ID、用户密码、email地址。在建立类的实例时,把以上三个信息都作为构造函数的参数输入,其中用户ID和用户密码时必须的,缺省的email地址是用户ID加上字符串"@gameschool.com"

package oop_shiYanEr;

class User{

String id;

String passwd;

String email;

//构造器

public User(String id,String passwd,String email) {

this.id = id;

this.passwd = passwd;

this.email = email;

}

//显示信息

public void showInfo() {

System.out.println("用户名是:"+id+","+"密码是:"+passwd+","+"邮箱是:"+email+"@gameschool.com");

}

}

public class _11 {

public static void main(String[] args) {

// TODO Auto-generated method stub

        User u = new User("DDD","1234567","DDD");

        System.out.println("显示信息:");

        u.showInfo();

}

}

【练习题】12.构造方法与重载

建立一个汽车类,包括轮胎个数,汽车颜色,车身重量等属性。并通过不同的构造方法创建事例。

至少要求:汽车能够加速,减速,停车。

要求:命名规范,代码体现层次,有友好的操作提示。

package oop_shiYanEr;

class Auto{

  int num;

  String color;

  int weight;

  int speed;

   

  Auto(int num,String color){

  this.num = num;

  this.color = color;

  }

   

  Auto(int weight,int speed){

  this.weight = weight;

  this.speed = speed;

  }

   

  Auto(String color,int speed){

  this.color = color;

  this.speed = speed;

  }

   

  //加速

  public void speedUp(int n) {

  speed = speed + n;

  System.out.println("此时汽车正在加速,加速度为:"+n);

  System.out.println("加速过后,速度变为了:"+speed);

  }

   

  //减速 停车

  public void speedDown(int n) {

  speed = speed - n;

  System.out.println("此时汽车正在减速,减速度为:"+n);

  System.out.println("减速过会,速度变为了:"+speed);

  if(speed == 0) {

  System.out.println("汽车速度变为了0,停在了路边。");

  }

  }

   

  Auto(){

   

  }

   

}

class Bus extends Auto{

boolean Kongtiao;

boolean CD;

Bus(String color,int speed, boolean Kongtiao,boolean CD){

super(color,speed);

this.Kongtiao = Kongtiao;

this.CD = CD;

}

//开空调

public void openKongTiao() {

System.out.println("打开空调,现在变得凉快很多。");

}

//播放音乐

public void openPlayer() {

System.out.println("打开音乐播放器,播放音乐。");

}

//重写加速

public void speedUp(int n) {

while(speed <= 80) {

if(speed == 80) {

System.out.println("速度已经超过80,请注意安全。汽车加速系统关闭。");  

break;

}else {

speed = speed + n;

System.out.println("汽车正在加速,清注意速度,不能超速。"+"当前速度是:"+speed);

}

}

}

    //重写减速

    public void speedDown(int n) {

    

    while(speed > 0) {

       speed = speed - n;

       System.out.println("汽车开始减速。注意看后面。"+"当前的速度是:"+speed );

       if(speed == 0) {

    System.out.println("速度已经减为了0,汽车停在了路边。");

    break;

       }

        }

     }

    

}

public class _12 {

public static void main(String[] args) {

// TODO Auto-generated method stub

        Auto a = new Auto(4,"blue");

        a.speed = 50;

        a.speedUp(10);

        

        System.out.println("汽车正在开始减速:");

        while(a.speed != 0) {

        a.speedDown(10);

        }

        

        Bus bus = new Bus("bule",40,true,true);

        bus.openKongTiao();

        bus.openPlayer();

        bus.speedUp(10);

        bus.speedDown(10);

}

}

【练习题】13.构造方法与重载

创建一个类,为该类定义三个构造函数,分别执行下列操作:

1、传递两个整数值并输出其中较大的一个值

2、传递三个double值并计算出其乘积,将结果输出

3、传递两个字符串值并将它们连接到一起后输出

4、在main方法中测试构造函数的调用

package oop_shiYanEr;

class Lei{

int a,b;

double c,d,e;

String ch1,ch2;

public Lei(int a,int b) {

this.a = a;

this.b = b;

}

public Lei(double c,double d,double e) {

this.c = c;

this.d = d;

this.e = e;

}

public Lei(String ch1 ,String ch2) {

this.ch1 = ch1;

this.ch2 = ch2;

}

//max

public int getMax() {

int max = a;

if(max < b) {

max = b;

}

return max;

}

//乘积

public double getPrcduct() {

double product = 0;

product = c*d*e;

return product;

}

//字符串的连接

public void getConnect() {

System.out.println("两个字符串连接的结果是:"+ch1+ch2);

}

}

public class _13 {

public static void main(String[] args) {

// TODO Auto-generated method stub

        Lei l = new Lei(2,4);

        Lei l1 = new Lei(2.3,4.5,6.7);

        Lei l2 = new Lei("Hello","World");

        int max = l.getMax();

        System.out.println("两个数的最大值是:"+max);

        double product = l1.getPrcduct();

        System.out.println("三个数的乘积是:"+product);

        l2.getConnect();

        

}

}

【练习题】14.类的综合练习

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

Account

private int id

private double balance

private double annualInterestRate

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

public int getId()

public double getBalance()

public double getAnnualInterestRate()

public void setId( int id)

public void setBalance(double balance)

public void setAnnualInterestRate(double annualInterestRate)

public void withdraw (double amount)

public void deposit (double amount)

 

提示:在提款方法withdraw中,需要判断用户余额是否能够满足提款数额的要求,如果不能,应给出提示。

 

2. 创建Customer类。

Customer

private String firstName

private String lastName

private Account account

public Customer(String f,String l)

public String getFirstName()

public String getLastName()

public Account getAccount()

public void setAccount(Account account)

 

a. 声明三个私有对象属性:firstName、lastName和account。

b. 声明一个公有构造器,这个构造器带有两个代表对象属性的参数(f和l)

c. 声明两个公有存取器来访问该对象属性,方法getFirstName和getLastName返回相应的属性。

d. 声明setAccount 方法来对account属性赋值。

e. 声明getAccount 方法以获取account属性。

 

3.写一个测试程序。

  1. 创建一个Customer ,名字叫 Jane Smith, 他有一个账号为1000,余额为2000元,年利率为 1.23% 的账户。
  2. 对Jane Smith操作。

存入 100 元,再取出960元。再取出2000元。

打印出Jane Smith 的基本信息

 

成功存入 100.0

成功取出:960.0

余额不足,取款失败

Customer [Smith, Jane] has a account: id is 1000, annualInterestRate is 1.23, balance is 1140.0

 

 

 

package oop_shiYanEr;

import java.awt.Cursor;

class Account{

private int id;

private double balance;

private double annualintrestRate;

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public double getBalance() {

return balance;

}

public void setBalance(double balance) {

this.balance = balance;

}

public double getAnnualintrestRate() {

return annualintrestRate;

}

public void setAnnualintrestRate(double annualintrestRate) {

this.annualintrestRate = annualintrestRate;

}

//构造器

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

super();

this.id = id;

this.balance = balance;

this.annualintrestRate = annualintrestRate;

}

//取款

public void withdraw(double amount) {

if(amount > balance) {

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

}else {

balance = balance - amount;

System.out.println("成功取出:"+amount+","+"当前余额为:"+balance);

}

}

//存款

public void deposit(double amount) {

balance = balance + amount;

System.out.println("成功存入:"+amount+","+"当前余额为:"+balance);

}

}

class Customer{

private String firstName;

private String lastName;

private Account account;

//构造器

public Customer(String firstName, String lastName) {

super();

this.firstName = firstName;

this.lastName = lastName;

}

public String getFirstName() {

return firstName;

}

public String getLastName() {

return lastName;

}

public Account setAccount(Account account) {

return this.account = account;

}

public Account getAccount() {

return account;

}

//显示信息

public void showInfo() {

System.out.println("Customer ["+this.firstName+", "+this.lastName+"] has a account: id is "+account.getId()+", annualinterestRate is "+account.getAnnualintrestRate()*100+"%"+", balance is "+account.getBalance()+"\r\n");

}

    

}

public class _14 {

public static void main(String[] args) {

// TODO Auto-generated method stub

        Account a = new Account(1000,2000,0.0123);

        Customer c = new Customer("Smith","Jane");

        c.setAccount(a);

        a.deposit(100);

        a.withdraw(960);

        a.withdraw(2000);

        

c.showInfo();

}

}

猜你喜欢

转载自blog.csdn.net/djx520521/article/details/81270759