zoukankan      html  css  js  c++  java
  • 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、方法:
        



    作者:赵瑞鑫。支持原创,从你我做起。
  • 相关阅读:
    [置顶] windows player,wzplayerV2 for windows
    wzplayer 近期将会支持BlackBerry和WinPhone8
    wzplayerEx for android(真正硬解接口,支持加密的 player)
    ffmpeg for ios 交叉编译 (支持i686 armv7 armv7s) 包含lame支持
    ffmpeg for ios 交叉编译 (支持i686 armv7 armv7s) 包含lame支持
    编译cegcc 0.59.1
    wzplayer 近期将会支持BlackBerry和WinPhone8
    wzplayerEx for android(真正硬解接口,支持加密的 player)
    windows player,wzplayerV2 for windows(20140416)更新
    编译cegcc 0.59.1
  • 原文地址:https://www.cnblogs.com/Winer-Jiu/p/13419934.html
Copyright © 2011-2022 走看看