总结(二)2018-08-12

1.final关键字

final:是一个关键字,表示最终的意思。可以用来修饰类,修饰变量,修饰方法。

  • 修饰类:表明该类是最终类,不能被继承
  • 修饰变量:表明该变量是常量,不能再次被赋值
  • 修饰方法:表明该方法是最终方法,不能被重写

2.static关键字

static:是一个关键字,静态的意思。可以用来修饰成员变量和成员方法。

static修饰成员的特点:
    A:被类的所有对象共享。
        其实也是判断一个成员是否应该用static修饰的条件。
    B:可以通过类名直接访问
    C:优先于对象存在
    D:随着类的加载而加载
static方法的访问特点及注意事项
非静态的成员方法:
    能访问静态的成员变量
    能访问非静态的成员变量
    能访问静态的成员方法
    能访问非静态的成员方法 
静态的成员方法:
    能访问静态的成员变量
    能访问静态的成员方法
注意事项:
    静态成员方法中不能出现this,super这样的关键字。
    原因是:静态是随着类的加载而加载,this,super这样的关键字是随着对象的创建而存在。
            先进内存的,不能访问后进内存的。

3.抽象类

抽象类的特点:
    A:抽象类和抽象方法必须使用abstract关键字修饰
    B:抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类
    C:抽象类不能实例化
        抽象类如何实例化呢?
        参照多态的方式,通过子类对象实例化。
    D:抽象类的子类
        要么重写抽象类中的所有抽象方法
        要么是抽象类
抽象类的成员特点:
    成员变量:
        有成员变量,成员变量可以是变量,也可以是常量。
    构造方法:
        有构造方法。
        抽象类中构造方法的作用?
            用于子类访问父类数据的初始化。
    成员方法:
        有成员方法,成员方法可以是抽象的,也可以是非抽象的。
        抽象方法:限定子类必须完成某些动作
        非抽象方法:提高代码的复用性

4.接口

接口的特点:
    A:定义接口使用的是interface关键字
    B:类和接口之间是实现关系,用implements关键字表示
    C:接口不能实例化
        接口有没有其他的方式实例化呢?
        参照多态的形式使用实现类来实例化。
    D:接口的实现类
        要么重写接口中的所有的抽象方法
        要么是一个抽象类
接口的成员特点:
    成员变量:
        有成员变量,而且变量只能是常量。
        默认修饰符:public static final
    构造方法:
        没有构造方法。
    成员方法:
        有成员方法,而且都是抽象的。
        默认修饰符:public abstract

     Object:是类层次结构的根类,所有的类都直接的或者间接的继承自该类。

5.类与类,类与接口,接口与接口的关系

类与类:
    继承关系,只能单继承,可以多层继承。
类与接口:
    实现关系,可以单实现,也可以多实现。
    还可以在继承一个类的同时实现多个接口。
接口与接口:
    继承关系,可以单继承,也可以多继承。
总结(二)2018-08-12_第1张图片
1.png

6.四种权限修饰符的概述和访问特点

总结(二)2018-08-12_第2张图片
2.png
归纳一下:在日常开发过程中,编写的类、方法、成员变量的访问
    A:要想仅能在本类中访问使用private修饰
    B:要想本包中的类都可以访问除了private修饰符,其它都可以
    C:要想本包中的类与其他包中的子类可以访问使用protected修饰
    D:要想所有包中的所有类都可以访问使用public修饰。

API

1.String类

String:代表字符串类。
    由多个字符组成的一串数据。
    字符串的本质就是一个字符数组。
创建字符串对象两种方式的区别
    String类创建对象的特点:
            A:通过构造方法创建对象
            B:通过直接赋值的方式创建对象
    这两种方式的创建是有区别的。
            通过构造方法创建的字符串对象是在堆内存。
            通过直接赋值的方式创建的字符串对象是在方法区的常量池。
总结(二)2018-08-12_第3张图片
3.png
遍历字符串

public char charAt(int index):返回指定索引处的值
public int length():返回字符串中的字符个数,字符串的长度

2.StringBuilder类

StringBuilder类概述
    StringBuilder:是一个可变的字符串。字符串缓冲区类。  
String和StringBuilder的区别:
    String的内容是固定的
    StringBuilder的内容是可变的
+=拼接字符串耗费内存原因:
    每次拼接都会产生新的字符串对象,而利用StringBuilder来拼接字符串自始至终用的都是同一个StringBuilder容器
总结(二)2018-08-12_第4张图片
4.png
StringBuilder类的常用方法
    A:构造方法:
            public StringBuilder()
            public StringBuilder(String str)
    B:成员方法:
            public String toString():返回此序列中数据的字符串表示形式。
            public StringBuilder append(任意类型):添加数据,并返回对象本身。
            public StringBuilder reverse():字符串本身进行反转

3.冒泡排序

冒泡排序:就是相邻的两个元素进行两两比较,把元素值大的元素依次向后排.


总结(二)2018-08-12_第5张图片
5.png

总结(二)2018-08-12_第6张图片
6.png

4.Arrays工具类

Arrays:提供了对数组操作的各种方法。

  • public static String toString(int[] a):把数组转成字符串
  • public static void sort(int[] a):对数组进行升序排序


    总结(二)2018-08-12_第7张图片
    6.png

5.包装类

基本数据类型包装类最常见的用法就是用于和字符串之间进行相互转换。
2.2Integer类的概述和构造方法
Integer:Integer类在对象中包装了一个基本类型 int 的值。

构造方法:
    Integer(int value) 
    Integer(String s) 
        注意:这个字符串必须由数字字符组成
int类型和String类型的相互转换
    int --  String
            String类中:public static String valueOf(int i)

    String  --  int
            Integer类中:public static int parseInt(String s)

public String[] split(String regex)

根据给定正则表达式的匹配拆分此字符串。

总结(二)2018-08-12_第8张图片
7.png

JDK5的新特性自动装箱和拆箱
总结(二)2018-08-12_第9张图片
微信图片_20180812092538.png

6.Date类

    Date:Date表示特定的瞬间,精确到毫秒。
构造方法:
    Date():根据当前时间创建的日期对象
    Date(long date):根据给定的毫秒值创建对象,从1970 年 1 月 1 日 00:00:00
成员方法:
    public long getTime():获取的是毫秒值。从1970年1月1日 00:00:00开始的。
    public void setTime(long time):设置时间,给的是毫秒值。
    
    从Date得到一个毫秒值:
    getTime()
    
     从一个毫秒值得到一个Date对象
    构造方法
    setTime(long time)

7.SimpleDateFormat类的概述和使用

SimpleDateFormat:是一个以与语言环境有关的方式来格式化和解析日期的具体类。
它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)

格式化(日期 -> 文本): Date -- String
    public final String format(Date date)
解析(文本 -> 日期): String -- Date
    public Date parse(String source)
Date的练习之日期工具类的定义和使用
package com.itheima;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/*
 * 工具类
 * 
 * 构造方法私有
 * 成员方法静态
 */
public class DateUtil {
    private DateUtil() {}
    
    /*
     * 把日期转换为指定格式的字符串
     * 两个明确:
     *      返回值类型:String
     *      参数列表:Date date, String format
     */
    public static String dateToString(Date date, String format) {
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        String s = sdf.format(date);
        return s;
    }
    
    /*
     * 把指定格式的字符串解析为日期
     * 两个明确:
     *      返回值类型:Date
     *      参数列表:String s, String format
     */
    public static Date stringToDate(String s,String format) throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        Date d= sdf.parse(s);
        return d;
    }
}

测试类

package com.itheima;

import java.text.ParseException;
import java.util.Date;

public class DateUtilTest {
    public static void main(String[] args) throws ParseException {
        Date d = new Date();
        
        String s = DateUtil.dateToString(d, "yyyy年MM月dd日 HH:mm:ss");
        System.out.println(s);
        
        String s2 = DateUtil.dateToString(d, "yyyy年MM月dd日");
        System.out.println(s2);
        
        String s3 = DateUtil.dateToString(d, "HH:mm:ss");
        System.out.println(s3);
        
        String str = "2080-08-08 12:23:34";
        Date dd = DateUtil.stringToDate(str, "yyyy-MM-dd HH:mm:ss");
        System.out.println(dd);
    }
}

你可能感兴趣的:(总结(二)2018-08-12)