zoukankan      html  css  js  c++  java
  • java 基础归纳总结(三)

    Java 阶段性学习总结

    一、面向对象

       面向对象的三大特征:
      1、封装:将类的属性私有化 并对外提供公共的 getset方法
      2、继承:用新类继承已有类 可以直接使用 已有类的公共的方法和属性
      3、多态:同一个实例的多种形态
          方法的重载、 方法的重写、父类的引用指向子类的实体(继承、实现)
     

       关键字

      this:1、指代当前对象

          2、指代当前类

                 3、指代构造方法 只能放在首行

      super:1、指代父类对象

                           2、指代构造方法 只能放在首行

      final:1、被final修饰类 不能被继承

          2、被fianl修饰的变量 成为一个常量
               3、被fianl修饰的方法 不能被重写

      static:1、static先出生 非static后出生

          2、可以直接通过类名点出

      instanceof: 判断对象是哪个类的实例

    二、抽象类

    定义抽象类时使用 abstract 关键字

    语法格式
    abstract 类名{ }
    public abstract class Animal {
    }

    抽象方法
    抽象方法没有具体的实现


    语法格式
    访问修饰符 abstract 返回值类型 方法名

    public abstract class Animal {
    protected abstract void eat();
    }


    抽象类和抽象方法的关系
    1、 抽象类中可以没有抽象方法
    2、有抽象方法的类必然是抽象类
    3、用static或final修饰的方法不能声明为抽象方法


    一个抽象类中没有抽象方法,是为了限制其不能被实例化而只能被继承


    抽象类的成员
     成员变量
     可以是变量,也可以是常量
     成员方法
     可以是抽象方法,也可以是普通方法


    抽象类的构造方法
     抽象类有构造方法但不能被实例化
     由子类继承该抽象类,实例化子类
     抽象类的子类要么实现父类的抽象方法,要么该子类继续抽象

    三、接口

    接口定义
     使用 interface 关键字定义接口
     语法
    public interface Flyable {
    }
    interface 接口名{ }

     


    接口使用
     使用 implements 关键字实现接口
     语法
    public class Parrot implements Flyable{
    }


    class 类名 implements 接口名{ }

     


    1、接口不能实例化,使用接口时需要子类实现接口
    2、 接口的实现
     一个实现接口的类,必须实现接口内所有的方法,否则该类就必须声明为抽象类


     成员变量
     接口中的成员变量只能是常量,默认的修
    饰符 public static final
     任何类都可以直接访问到接口中的常量


    成员方法
     接口中的方法只能是抽象方法,默认修饰
    符 public abstract


    成员特点
     接口没有构造方法
     接口主要目的是扩展功能,没有具体存在


    接口的多实现
     一个类可以实现多个接口

    class 类名 implements 接口名1,接口名2,…{ }


    关系

    类和类 继承关系,只能单继承,可以多层继承

    类和接口 实现关系,类实现接口,可以多实现

    接口和接口 继承,可以单继承,也可以多继承

     


    区别

    抽象类
    成员变量 -----变量/常量
    成员方法------ 抽象/非抽象方法
    构造方法------ 有
    关系------------ 继承


    接口
    成员变量 ------ 常量
    成员方法 -------抽象方法
    构造方法 -------没有
    关系 ----------- 实现

    四、String类介绍 

     String是引用数据类型
     但是String实际上java给我们提供的是一个类
     
     注意:String 全类被fianl所修饰 所以 String 又叫 字符串常量
    String 的值 一旦定义 不可以改变

     String 的创建方式
     1、直接赋值
     String str = "coco";
     2、通过new关键字
     String str1 = new String("fdsfs");
     

     String的比较方式:
     1、equals() : 比较两个String的值 是否一样
     2、 == : 比较两个String 的地址

    String的常用方法:

    equals(): 判断两个String的值 是否相等

    equalsIgnoreCase(): 判断两个String的值 是否相等 并且忽略大小写

    startsWith():以什么开始
    endsWith():以什么结束

    isEmpty():判断字符串的长度是否为0

    length():计算字符串的长度
    getBytes():

    str.substring():字符串的截取
    split():以某种规则进行拆分
    replace():替换


    toCharArray():转成char型数组
    charAt(): 根据下标取单一的字符

    contains():是否包含
    indexOf():返回下标

    toLowerCase(): 转小写
    toUpperCase(): 转大写

    valueOf():将满足条件的参数 转换成 String类型

    五、工具类

    一:Object类

    1、在Java中,Object类是所有其它类的父类,位于java.lang包 

    2、所有类都直接或间接的继承Object类,所以省略了extends Object 

    3、Object中提供了多个方法,方便子类重写或直接调用

     

    Object的toString方法:子类可以重写toString(),自定义对象的字符串输出格式

      getClass方法:可以通过Class类中的getName方法,获取对象的真实类的全名称

       hashCode方法:同一个对象的hashCode()值肯定相同

    equals( )方法:

    二、System类

    1、System类提供了系统级的很多属性和控制方法,位于java.lang包

    2、System类是final类不能被实例化,所有方法和属性都是静态的


    当前时间:
    SimpleDateFormat sd = new SimpleDateFormat( "yyyy-MM-dd");

    Date date = new Date( );
    String time = sd.format( date);
    system.out.println(time);

     

    三、Random类

    1、Random类用于生成伪随机数,位于java.util包 

    2、Random对象的生成


    四、Math类

    1、Math类提供了执行基本数学运算的方法,位于java.lang包

    2、Math类是final类不能被实例化,所有方法和属性都是静态的

     

    五、Arrays类

    Arrays类提供了一系列操作数组的方法,位于java.util包中


    六、包装类

    Java语言是面向对象语言,但Java中的基本数据类型却不是面向对象的, 这在实际使用时存在很多的不便

      为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类

        八个基本数据类型对应的类统称为包装类(Wrapper Class)

    六、异常

    (Throwable类)

    1、 Error 错误--无法挽救

    2、Exception 异常 --程序中的小bug,可以修复


    a)受检异常--在程序中定义代码的时候直接有红线提示。

    b)运行时异常--语法格式正确,运行时发生异常;

    捕获 (现场发现 现场处理)
    try{
    //可能发生异常的代码
    }catch(异常的类型 异常对象){
    //打印异常信息
    //其他处理
    }
    注意:同一句代码 可能出现多个异常 添加多个对应的catch块

    try……catch执行顺序
    注意:在定义多个catch块的时候 需要注意他们的顺序 (父类异常 只能定义在子类异常的下面
    多个catch块不能定义相同的异常
    1、如果try中的代码 没有出现异常 那么会直接跳过catch块
    2、如果try中的代码发生了异常 那么会根据出现的异常依次向下匹配对应的异常 打印输出
    try……catch……finally

     
    抛出异常
    (一般来说不会直接在main方法抛出异常
    抛出了异常 一定要处理掉 )
    公式:方法头(方法的定义)throws 异常类型
    public static void getReuslt() throw ArithmeticException
    使用抛出的方式 并不是在处理异常 只是提示调用者 这个地方会出现异常

    捕获和抛出:
    1、捕获是在处理异常
    抛出是提示异常
    2、捕获:try catch
    抛出:throws
    3、捕获是针对的可能出异常的代码 直接处理
    抛出:是定义在方法头上

     


    throw和throws的区别:

    throw:定义在方法体中

    throws:定义在方法头

  • 相关阅读:
    《Java技术》第一次作业
    链队列基本操作
    行编辑器,数制转换,杨辉三角
    顺序队列基本操作
    链栈基本操作
    顺序栈基本操作
    PTA链表
    PTA顺序表
    《Java技术》第三次作业
    《Java技术》第二次作业
  • 原文地址:https://www.cnblogs.com/dhm520/p/8466906.html
Copyright © 2011-2022 走看看