欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java构造方法,封装类,this用法,面向对象思想的综合运用(代码附详细注解)

程序员文章站 2022-04-15 19:05:23
该篇文章纯属原创,有详细注解,适合学过Java se但对构造方法,封装类,和面向对象编程思想理解不够的同学。目前我也还算是新手,正在学数据库,哪里写的不对,还望大佬指出。第一次发表文章,如果觉得有用就点个赞呗。...

Java构造方法,封装类,this用法,面向对象思想的综合运用(代码附详细注解)

package javase;

import java.util.Scanner;

public class Day15 {
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		System.out.println("请输入姓名:");
		String name = s.next();
		System.out.printf("欢迎%s到我行办理业务\n",name);
		System.out.println("请输入六位数字密码:"  );
		long code = s.nextLong();
		
		//当密码不是123456时,循环输入
		while(code != 123456){
			System.out.println("密码错误,请重新输入");
			code = s.nextLong();
		}	
		System.out.println("密码正确");
		
		//调用Account类有参构造函数,创建账户对象,实例初始化
		//将实参数值传递给Account构造方法中的形参
		Account a = new Account("1000",2000,0.0123);
		
		//调用Customer类有参构造方法,创建客户对象,实例初始化,
		//其中实例act初始化为Account的新对象a的实例
		Customer c = new Customer(name,a);
		
		//输出当前账户信息
		System.out.println("您当前余额为" + a.getBalance());
		System.out.println("您当前年利率为" + a.getRate());
				
		while(true){
			System.out.println("请输入您所需要办理的业务(1存钱;2取钱;选择其他则退出登录):" );
			int choice = s.nextInt();
			if(choice == 1){
				System.out.println("请输入存钱金额:");
				
				//调用客户c的账号a的存钱方法,将输入金额值传递给存钱方法的形参money			
				c.getAct().deposit(s.nextFloat());				
			}
			else if(choice == 2){
				System.out.println("请输入取钱金额:");
				
				//调用客户c的账号a的取钱方法	
				c.getAct().withdraw(s.nextFloat());				
			}
			else break;
		}		
	}
}

//创建账户类
class Account{
	
	//属性私有化,实现封装
	private String id;
	private float balance;
	private double rate;
	
	//有参构造方法,使用this可实现在相同变量名的前提下,将局部变量的值赋予类变量
	public Account(String id, float balance, double rate){
		
		//我的(即类Account的)id等于形参id,我的balance等于形参balance...
		this.id = id;
		this.balance = balance;
		this.rate  = rate;
	}
	
	//使用set方法对封装类Account进行写入操作	
	public void setId(String id){
		this.id = id;
	}
	
	//使用get方法对封装类进行读取操作
	public String getId(){
		return id;
	}	
	public void setBalance(float balance){
		this.balance = balance;		
	}
	public float getBalance(){
		return balance;
	}
	public void setRate(double rate){
	this.rate = rate;	
	}
	public double getRate(){
		return rate;
	}
	
	//创建存钱方法
	public void deposit(float money){			
		this.balance += money;
		System.out.println("成功存入" + money);
		System.out.println("目前余额为:" + this.balance);
	}
	
	//取钱方法
	public void withdraw(float money){
		this.balance -= money;
		if(this.balance < 0){
			System.out.println("余额不足,取钱失败");
			
			//取钱失败时,返还所扣减的金额
			this.balance += money;
			System.out.println("目前余额为:" + this.balance);
		}
		else{
			System.out.println("成功取出:"+ money);
			System.out.println("目前余额为:" + this.balance);
		}
	}
}

//创建客户类
class Customer{
	private String name;
	private Account act;
	public Customer(){
		
	}
	
	//有参构造方法
	public Customer(String name, Account act){
		this.name = name;
		this.act = act;		
	}
	
	//使用set方法对封装类进行写入
	public void setName(String name){
		this.name = name ;		
	}
	
	//使用get方法对封装类进行读取
	public String getName(){
		return name;
	}
	public void setAct(Account act){
		this.act = act;		
	}
	public Account getAct(){
		return act;
	}
}



本文地址:https://blog.csdn.net/weixin_42523683/article/details/107892742