用Java基础知识做一个简单的ATM机,用JoptionPane做,从界面上来看,就比C语言做的好看很多,Java注重的是面向对象。

面向对象,首先我们要考虑,ATM的属性和方法,和用户的属性和行为。用到了在javaoo前五章的知识点。就是在其中用到了转换类型Integer.prassInt来转换成整型的,还有在存钱可以是浮点型的。在写代码的时候就要把浮点型转换成整型。

我们运用了在javaoo中学到新知识点,在定义用户名和密码用到访问修饰符私有的(pritave),还运用了设置常量和变量,用final设置常量,常量机是把一个属性的值初值化了它的值是不可改变的。设置私有的属性和共有的属性,私有的修饰符是在本类可以调用,其中,共有的属性和方法可以在任何子类地方调用。如果要调用私有方法,声明了私有属性用get和set方法来让外部调用,这种方法还适用于共有属性和方法。进行了代码的独立便于在用到的时候可以复用。就在返回就用到了将它独立进行了复用,和重复利用。

为了将数据保存就用到了资源文件Properties,我们可以将数据存储的资源文件进行存储,还可以将资源文件里面的数据进行读取。在我们用到的资源文件时,就得建立静态代码块,使用静态代码块完成对文件数据的读取或初始化,static的特点是用static修饰的属性表示全局共享,一个更改全类更改;可以用类名直接访问;用静态修饰的属性或方法,会最先加载到内存中;静态方法不能访问非静态方法的类名和属性,只能访问静态变量,反之则可以。那是它最先被加载到内存中,所以我们注册的账号和密码等等保存到了资源文件里面,当要登陆就在里面进行读取文件。

我们要考虑到用户的输入当用户进行取钱的时候以免输入不正规的数字或字符串,此时就要考虑到判断它是否要出现异常,关于异常:当产生异常后,如果没有程序进行相应的处理,则程序会中断,一旦产生一个异常之后,Java虚拟机会抛出一个异常类的实例化对象,如果此时使用了try语句进行捕获的话,则可以进行异常处理,如果没有的话,则交给JVM进行理,当try语句捕获到了异常之后,会与catch中的异常类型进行匹配,如果匹配成功,则使用此catch语句进行处理。如果在try块中抛出的异常没有能够捕获它的catch块,或者说,捕获这个异常但不想立即处理,则Java将立即退出这个方法,并将其返回到上一级处理,如此可以不断地递归向上直到最外一级。同时,在方法的声明中要指定方法中可能产生的异常,使这个方法的调用者准备好处理这种异常的代码,这样,这种类型的异常在此方法的调用者中得到了处理。调用者可能自己处理这种异常,也可能将这个异常放给它的调用者。异常就这样逐级上溯,直到找到处理它的代码为止。如果没有任何代码来捕获并处理这个异常,Java将结束这个程序的执行。所以,当不在方法中直接捕获被检查的异常时,必须用throw语句将异常抛给上层的调用者。也就是说,通过throw语句可以明确地抛出一个异常,同时在方法中用throws声明此方法将抛出某类型的异常。当不在方法中直接捕获被检查的异常时,必须指定它可以抛出的所有被检查的异常。抛出异常所做的两部分工作是:在它的声明中使用throws语句指定它可以抛出的异常,同时使用throw语句抛出异常。当然,这只是一个简单的ATM机的做法,所以没有用到异常的抛出,仅仅只是用了一些简单的try{}catch(){}语句。

Try中放可能引发异常的代码,catch(在括号里面是判断异常的类型)花后面括号中写出处理的代码,而且,在Try的内部里也可以再加上try{}catch{}。在

catch的后面可以跟Finally,Finally中的代码是无论try中代码是否发生异常,都会执行,所以可以在里面放上那些无论如何都有执行的代码。在try-catch中可以不要catch,但是必须要有Finally,反之不要finally就必须要有catch。还有就是,在有Finally后,就算前面的catch理由return

也要先执行了Finally内的代码后才会return。

还有一些扩展的知识,将基本数据类型转换成字符串类型,最简单的方法是在变量后加一个引号;result.trim().equals("")是判断输入的是否有空格。