A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 卞建彬 中级黑马   /  2018-9-20 15:39  /  703 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

刁乐乐:


9天    继承;   面向对象的三大特征:封装,继承,多态
           (类于类产生了关系)继承是多态的前提,没有继承就没多态
继承主要解决的问题就是:共性抽取。
继承的格式: 关键字 extends    public class zi extends fu{}
父类格式就是个普通类; public class 父类名称{}
子类格式 public class 子类名 extends 父类类名{}
-----------------------------------------------------------------
在父子类中,如果成员变量重名,有两种方式:
    直接通过子类对象访问成员变量; 等号左边是谁,就优先用谁,没有则上找
    间接通过成员方法找成员变量;方法属于谁就优先用谁,没有就往上找
                               本类中的局部变量  直接.
this: 当前类对象的引用         本类中的成员变量  this.
super:当前类对象的父类引用     父类中的成员变量  super.
------------------------------------------------------------------
继承中 成员方法的访问特点;创建的对象是谁,就优先用谁,没有上找
--------------------------------------------------------------------
继承中方法的覆盖重写;概念和特点 重写(英文 override)
1.必须父子类之间方法名称一样,参数列表也一样。
2.子类方法返回值必须小于父类方法返回值范围
3.子类方法的权限必须大于等于父类的权限范围;public>protacted>default>pribate
@override   注释检测有没有覆盖重写。
----------------------------------------------------------------------
覆盖重写应用场景;子类有新东西
继承关系中,父子构造方法访问特点;
1.子类构造方法中有一个默认隐含的“super()”。一定是先调用父类构造,后子类构造
2.子类构造中,可以通过super
----------------------------------------------------------------------
super关键字三种用法;
1.在子类的成员方法中,访问父类的成员方法。super.
2.在子类的成员方法中,访问父类的成员变量。super.
3.在子类构造方法中,访问父类的构造方法。   super();

this; 也是三种用法;
1.在本类成员中,访问本类的成员变量。
2.在本类的成员方法中,访问本类的另一个成员方法。
3.在变量的构造方法中,访问本类的另一个构造方法。
---------------------------------------------------------------------
抽象方法;没有方法体的方法。格式 修饰符 abstract 返回值类型 方法名();结束
抽象类;修饰符 abstrct class 类名{}。有抽象方法必须得是抽象类
使用方法;不能直接new抽象类对象; 必须用子类继承父类
子类必须覆盖重写抽象父类中所有的抽象方法,
-----------------------------------------------------------------------------------------
注意事项;1.抽象类不能创建对象,只能创建其非抽象子类的对象; 因为是抽象没法具体定义,没方法体
2.抽象类中可以有构造方法,是供子类创建对象的时候,初始化父类成员使用的


/////////////////////////////////////////////////////////////////////////////
10day;接口 常量 const
       多态  polymorphism

        // 成员方法
        String?toString() :返回该对象的字符串表示
        boolean?equals(Object?obj) :指示其他某个对象是否与此对象"相等"

java.util.Objects类: JDK7 添加. 操作对象的工具类, 提供了空指针安全的方法
        // 静态方法
        static boolean equals(Object a, Object b): 比较两个对象是否相等
                如果2个参数都是null, 返回true
                如果其中一个为null, 返回false
                如果2个参数都不为null, 则使用第1个参数对象的equals()方法来比较
               
java.util.Date类: 日期, 表示特定的瞬间, 精确到"毫秒"
        // 构造方法
        Date(): 创建Date对象, 表示当前系统时间
        Date(long date): 创建Date对象, 使用指定的毫秒值作为时间
        // 常用成员方法
        long getTime(): 获取Date对象中保存的时间毫秒值
        void setTime(long time): 修改Date对象的时间
       
java.text.DateFormat抽象类: 用于格式化和解析时间. 提供了方便的方法
        // 常用成员方法 (抽象类不能创建对象, 但可以有非抽象的方法供子类使用)
        String format(Date date): 格式化, 从Date对象转换为String对象
        Date parse(String source): 解析, 从String对象转换为Date对象
       
java.text.SimpleDateFormat类
        // 构造方法
        SimpleDateFormat(String pattern): 用给定的模式和默认语言环境的日期格式符号创建对象
                // 常用模式: 可在SimpleDateFormat类中查看
                y: 年
                M: 月
                d: 日
                H: 时 (24小时制)
                m: 分
                s: 秒
               
                E: 星期
                D: 年中的天
                K: 小时(12小时制)
                S: 毫秒
               
java.util.Calendar抽象类: 代表日历, 提供了不同国家的历法, 封装了很多时间属性
        // 静态方法
        static Calendar getInstance(): 根据当前系统设置获取合适的Calendar对象, 表示当前系统时间
        // 静态成员变量
        static int YEAR         :年份
        static int MONTH        :月份. 注意月份数值是 0-11
        static int DAY_OF_MONTH :日期
        static int HOUR         :小时(12小时制)
        static int HOUR_OF_DAY  :小时(24小时制)
        static int MINITE       :分钟
        static int SECOND       :秒
        // 非静态成员方法
        int get(int field): 获取指定日历字段的值
        void set(int field, int value): 修改指定日历字段为指定的值
        void set(int year, int month, int date): 快速设置年月日
        void add(int field, int amount): 调整指定日历字段的值. 正数增加, 负数减少
        Date getTime(): Calendar转Date
        void setTime(Date d): Date转Calendar

java.lang.System类: 系统相关功能
        // 静态方法
        static long currentTimeMillis(): 返回当前系统时间的毫秒值
        static void arrayCopy(Object src, int srcPos, Object dest, int destPos, int length): 复制源数组中指定长度个元素到一个新数组中
        * Object src: 源数组 (被复制的数组)
        * int srcPos: 源数组索引 (从源数组的哪个索引开始复制)
        * Object dest: 目标数组 (要复制到哪个数组)
        * int destPos: 目标数组索引 (指定目标数组接收元素的索引位置)
        * int length: 长度 (要复制的元素个数)

java.lang.StringBuilder类: 可变字符序列, 可以高效拼接字符串. 底层使用数组保存
        // 构造方法
        StringBuilder(): 构造一个空的StringBuilder容器
        StringBuilder(String?str): String转StringBuilder
        // 常用方法
        StringBuilder?append(任意类型): 添加任意类型数据的字符串形式, 并返回当前对象
        String?toString(): 将当前StringBuilder对象转换为String对象
       
基本类型转为String:
        1. 拼接空字符串:
                String s = "" + 34
        2. 每个包装类中的静态方法 static String toString(参数):
                String s = Integer.toString(10);
        3. String类中的静态方法 static String valueOf(参数):
                String s = String.valueOf(10);

String转基本类型: 利用包装类的静态方法
    static?byte?parseByte(String?s): 将字符串参数转换为对应的byte基本类型
    static?short?parseShort(String?s): 将字符串参数转换为对应的short基本类型
    static?int?parseInt(String?s): 将字符串参数转换为对应的int基本类型
    static?long?parseLong(String?s): 将字符串参数转换为对应的long基本类型
    static?float?parseFloat(String?s): 将字符串参数转换为对应的float基本类型
    static?double?parseDouble(String?s): 将字符串参数转换为对应的double基本类型
    static?boolean?parseBoolean(String?s): 将字符串参数转换为对应的boolean基本类型
    注意: 没有转char的!!

//////////////////////////////////////////////////////////////////////////////////////////
Day1;
常见的API : Object -------日期相关类
Object类: toString方法
public String toString()返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。
Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:

getClass().getName() + '@' + Integer.toHexString(hashCode())
返回:该对象的字符串表示形式。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
object.valueof                  继承重写      string.valueOf
object.equals 按照地址值比较     继承重写      string.equals按照内容比较;我们自定义的类需要比较内容的话也需要重写;这里涉及到向下强转请注意
--------------------------------------------------------------------------------------------------------------------------------------------
objects类;静态工具类含有大量静态方法。
equals方法,重写后可以防止null;
日期时间相关的类
long、date、string、
需要知道的知识点;1.时间原点-0:从0时区 1970-01-01 00:00:00
                 2.获取当前系统时间的毫秒值 System.currentTimeMillis()
Date类;API文档-类 Date 表示特定的瞬间,精确到毫秒。
毫秒值的作用:可以对时间和日期进行计算。如两个字符串计算2099-01-03到2088-01-01中间共多少天
        步骤:日期转化为毫秒计算,计算完毕再把毫秒转化为日期

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


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马