JavaSE第九天

复习:
1.lambda表达式:简化匿名类实现接口中的方法
2.函数式接口:接口中只能有一个抽象方法
3.检查函数式接口的注解:@FunctionalInterface
4.格式:()->{}
5.简化:
     省略方法的参数列表的数据类型
     如果一个参数,()可以省略
     {}如果只有一条语句,可以省略,return也可以省略
6.引用已实现的方法:
     如果实现的方法的参数列表,返回类型和接口相同
     方法归属者::方法名
7.引用构造方法:
      类名::new
-------------------------------------------------
垃圾回收:
垃圾回收机制:低级线程负责堆内存对象的回收,没有变量引用,
              引用变量赋值 null,标识对象可以回收,但是不马上回收
              

内存溢出:创建对象时,内存不够用
内存泄漏:对象使用完成,没有及时回收
------------------------------------------------------

模拟使用银行卡缴费

定义类:UnionCard
成员变量:
        private String id;//卡号
    private double balance;//余额
    private int pw;//密码
方法:
       1.public UnionCard(String id, double balance, int pw)
       功能:初始化成员变量
       2.setXX/getXX方法
       3.public void saveMoney(int money)
       存钱的方法
       4.public boolean takeMoney(int money)
       取钱的方法,如果余额为<0,返回false,否则返回true
       5.public boolean checkPw(int pw)
       验证密码是否相同,相同返回true,否则返回false

定义类:BOC
       1.public BOC(String id, double balance, int pw)
       构造方法传值

定义接口:PayTelInter
    boolean payTel(int money)
       1.定义抽象方法,开通交电话费的功能

定义类:ATM
成员变量:
       1.private UnionCard card;
方法:
       1.public void insertCard(UnionCard card)
       模拟插卡的功能,不同卡片显示不同的menu
       2.public void showBocMenu()
         //如果密码正确,显示显示中国银行的菜单,否则显示密码错误,退出系统
        1 查看余额  2存钱  3取钱 4 交话费 5退出

      3.private void showBalance();
        显示余额
        输入1时,调用此方法,显示余额;控制台,显示输入0 返回
      4.private void saveBalance();
        完成存钱的功能,并输出成功
       输入2时,调用此方法;控制台,显示输入0 返回
      5.private void takeBalance()
        完成取钱的功能,如果满足取钱的条件,显示成功,否则显示失败!!!,余额不足
        输入3时,调用此方法;控制台,显示输入0 返回
      6.private void payMethod()
         完成交话费的功能,使用lambda表达式完成,如果满足交话费的条件,显示缴费成功!!!
         否则显示失败!!!,余额不足
         输入4时,调用此方法;控制台,显示输入0 返回
      7.输入5是,退出

定义入口类:MainClass
      main方法:


同理:定义ICBC类和交有线电视费的接口payTV
--------------------------------------------------------
1.常用的工具包
java.lang:String,System,Thread,Math,Object等,自动导入
java.io:输入输出流
java.net:网络编程
java.util:工具类,集合,时间日期类等

2.Object类
clone方法:克隆
 * 1.自定义的类,使用clone 方法,当前类必须要实现Cloneable接口
 *   如果不实现此接口,那么会抛出异常java.lang.CloneNotSupportedException
 * 2.因为object类的clone是protected修饰的,要重写此方法
 *   才能在不同包中访问,把访问修饰符定义为public
 * 3.Cloneable接口中没有方法,是一个标识性的接口,
 *   针对Object类的clone方法的实现
 * 4.浅拷贝:引用变量拷贝的是地址,所有克隆的对象改变了对象的属性,
 *         原对象的属性也发生改变
 * 5.深拷贝:引用变量拷贝一份对象,克隆对象的属性改变,原对象的属性不发生变化

toString方法
 返回对象的字符串表示形式
     包名.类名@hashCode(内存地址)
 当打印对象时,默认调用
 如果不想使用object类toString方法,可以重写此方法  

equals方法
  equals方法比较对象是否相同  ==  比较的是两个对象的内存地址
  如果想表示对象的内容相同,返回true,则重写此方法

hashCode方法
 返回一个hash code码,Integer,内存地址有关的hash算法
 如果equals返回true,hashCode相同,重写hashCode

------------------------------------------------------------

3.String类
   String,StringBuilder,StringBuffer区别
   String是不可变的
   StringBuilder,StringBuffer是可变的字符串
   StringBuilder是线程不安全的
   StringBuffer是线程安全的

4、方法:
    



posted on 2020-08-02 18:03  Winer_Jiu  阅读(129)  评论(0编辑  收藏  举报

导航