• 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、方法:
        



    作者:赵瑞鑫。支持原创,从你我做起。
  • 相关阅读:
    silverlight的TranslateTransform 的使用
    720 JavaScript函数的this指向
    JavaScript数组
    JavaScriptDOM事件
    JavaScript流程控制语句
    CSS布局案例
    JavaScriptDOM基础
    JavaScriptDOM事件
    JavaScript基础语法
    JavaScript的String对象相关方法
  • 原文地址:https://www.cnblogs.com/Winer-Jiu/p/13419934.html
Copyright © 2020-2023  润新知