面向对象实现ATM功能

Java核心学习笔记区

2,属性
3,方法:具体函数实现
4,创建对象: 
类名 对象名=new类名();(只有构造函数,垃圾定期自动回收,亦可自动调用)
对象名.属性
对象名.方法
5,封装
属性私有化,提供公共的访问方法(setXxx/getXxx) //首字母大写规范。
一个属性对应两个方法。(自动生成)
6,构造方法:初始化对象
特点:无返回值, 方法名与类名一至,通过对象创建调用(一般带参数)
7,方法的重载(overload)
同一个类下,如果有两个方法名字相同,参数列表不同(参数个数,类型,位置)
8,继承:简化代码
特点:子类继承父类的方法和属性(利用setXxx/getXxx访问属性),单继承
(1),方法重写:子类的方法定义与父类的完全相同(函数名,个数,类型)
(2),在子类中调用父类的被重写的方法用super.函数名()
    super()调用父类的构造方法
9,祖先类:Object(是所有类的父类)
10,多态:一个事物的多种形态
使用格式:父类 对象名=new 子类()   (定义父类的对象,调用子类方法,语法属于父类)
必要条件:
(1),继承
(2),方法重写
(3),父类或者接口的引用指向子类或者实现类的实例
实现格式:父类+对象 new 子类();
实现格式:接口+变量对象=new 实现类();
11,抽象方法:一个方法只有定义,无方法体,存在于父类。
抽象方法声明:public abstract void + 方法名
12,抽象类:含有抽象方法的类
public interface +类名
13,接口:定义行为规则,实现类要重写接口的所有方法
作用:多个类找不到公共父类时用接口实现多态,利用实现类的公共关系建立,接口的引用指向实现类。
格式: 接口+变量对象=new 实现类();
14,集合:"长度动态数组",用Java提供的ArrayList类
数组:定长,类型固定,顺序存储。
集合:
15,异常处理:避免程序终止(try-cache-finally)

         try
         {
		 //可能发生的异常代码
		 System.out.println(10/0);
		 //try中出现异常之后的代码不执行
		 }
		 chtch(Exceptiom e)//只写Exception全保险
		 {
		   //处理异常的代码
		   System.out.println("提示除数不能为0")
		 }finally{//在catch 后面
		          //不管是否异常,最后都要执行这部分代码
		 } 

person.Java


```package ATM;
public class person {
  private int id,mypass;
  private double money ;
  private String name;
  public person(int id,String name,int mypass,double money)//构造方法
  {
	  this.id=id;        //
	  this.name=name;
	  this.mypass=mypass;
	  this.money=money;
  }
 // Scanner input =new Scanner(System.in);
  public void setName(String name)
  {
	  this.name=name;  
  }
  public String getName()
  {
 return name;
}
  public void setId(int id)
  {
	  this.id=id;
  }
  public int  getId()
  {
    return id;
		}
  public void setMypass(int mypass)
  {
	  this.mypass=mypass;
  }
  public int getMypass()
  {
     return mypass;
  }
  
  public void setMoney(double m)
  {
	  money=m;
  }
  public double getMoney()
  {
	  return money;
  }
  
}


ATM.Java


```package ATM;
import java.util.*;
public class ATM {
	person per;///记录当前登陆成功的用户
	Scanner input =new Scanner(System.in);
	private ArrayList ulist=new ArrayList();
	public ATM()
	{
		person p1=new person(1001,"张三",111111,10000);
		person p2=new person(1002,"张一",222222,10001);
		person p3=new person(1003,"张二",333333,10002);
		person p4=new person(1004,"张四",444444,10003);
		person p5=new person(1005,"张五",555555,10004);
	    ulist.add(p1);
	    ulist.add(p2);     //写在里面。
	    ulist.add(p3);
	    ulist.add(p4);
	    ulist.add(p5);
	}
	public void search()
	{
		System.out.println("***************");
		System.out.println("卡号:"+per.getId());
		System.out.println("姓名:"+per.getName());
		System.out.println("金额:"+per.getMoney());
		System.out.println("****************");
		//System.out.println("卡号:"+id +"\n"+"姓名:" +name +"\n" +"金额:" +money);
	}
	public void take()
	{
		System.out.println("取款");
		System.out.println("请输入您的取款金额");
		double qu=input.nextDouble();
		if(qu>per.getMoney())
		{
			System.out.println("金额不足");
		}
		else
		{
		   double a=per.getMoney()-qu;
		   per.setMoney(a);
			System.out.println("取款成功");
		}
	}
	public void cun()
	{
		System.out.println("存款");
		System.out.println("请输入您的存款金额");
		double cun=input.nextDouble();
		per.setMoney(cun+per.getMoney());
		System.out.println("存款成功");
	}
	public void quka()
	{
		System.out.println("谢谢使用");
	}
	public void zhuanzhang()
	{ 
		System.out.println("请输入您要转入的账号:");
		int inid = input.nextInt();
		for(int i=0;i<ulist.size();i++){
			person p= (person)ulist.get(i);
			if(p.getId() == inid) {
				System.out.println("请输入您要转账的金额:");
				System.out.println();
				int inMoney = input.nextInt();
				p.setMoney(p.getMoney() + inMoney);
				per.setMoney(per.getMoney() - inMoney);
				System.out.println("转账成功!");
				return;
			}
		}
		System.out.println("没有您要转入的卡号!");	
		
	}
	public boolean login()//判断登陆
	{
		System.out.println("请输入密码");
		int inpass=input.nextInt();
		for(int i=0;i<ulist.size();i++)
		{
			person p=(person)ulist.get(i);
			if(p.getMypass()==inpass)
			{
				per=p;                ////关键:替换成当前用户。
				return true;
			}
		}
		return false;	
	}
	public void begein()//进入
	{
		if(login())
		{
			System.out.println("*************************");
			System.out.println();
			System.out.println();
			System.out.println("欢迎来中国建设银行总行");
			System.out.println();
			System.out.println();
			System.out.println("*************************");
        int num=0;
        while(num!=5)
        {
        	System.out.println("请输入您要进行的操作:");
        	System.out.println("1,查询余额 ");
         	System.out.println("2,取款 ");
            System.out.println("3,存款");
            System.out.println("4,转账");
            System.out.println("5,退卡");
            num=input.nextInt();
        	switch (num) {
			case 1:
			      search();
				break;
			case 2:
				take();
				break;
			case 3:
				cun();
				break;
			case 4:
				zhuanzhang();
				break;
			case 5:
				System.out.print("谢谢您的使用,欢迎下次光临");
		default:
			break;
		}
	}
}
		else
     		{
			System.out.println("密码输入错误");
		    login();
			}
}
}
Test.Java
public class test {
	public static void main(String[] args) {
	// TODO Auto-generated method stub
   ATM a = new ATM();
   a.begein();
	}
}

猜你喜欢

转载自blog.csdn.net/dongjian2/article/details/93781190