zoukankan      html  css  js  c++  java
  • java 笔记

    Ni 属性会被默认初始化  局部变量不会被初始化

     

    静态使用的注意事项:

     

    1.静态方法只能访问静态成员。(非静态既可以访问静态,又可以访问非静态)

    2.

    2.静态方法中不可以使用this或者super关键字。

     

    3.主函数是静态的

     

     

    静态什么时候用

    静态变量

    1,当分析对象中所具备的成员变量的值都是相同的,这时这个成员就可以用static修饰。

    2,只要数据在对象中都是不同的,就是对象的特有数据,必须存储在对象中,是非静态的。

    3,如果是相同的数据,对象不需要做修改,只需要使用即可,不需要存储在对象终不改,定义成静态的

    静态方法

    函数是否用静态修饰,就参考一点,函数内是否调用对象的特有数据;

    简单点说:从源代码看,该功能是否需要访问非静态的成员变量,如果需要,该功能就是非静态的,如果不需要,就可以将该功能定义成静态的。要看是否调用非静态的成员变量

     

     

     

     

     

     

    静态代码块

    随着类的加载而执行,且执行一次

     

    作用:给类进行初始化

    如  static{

    Num =10;

     

    }

     

    继承的特点

    1.提高了代码的复用性

     

    2.类与类之间产生了关系,给第三个特征多态提供了前提

     

    3.Java中只支持单继承不支持多继承,不支持多继承是应为多个父类中有相同的成员,调用会有不确定性

     

     

    继承中的成员函数

    当子父类中出现一模一样的函数,会运行子类的函数,这种现象成为覆盖操作。

     

    函数的两个特性:

     

    1,覆盖  

     

    2,重载  在一个类中

     

    覆盖注意事项:
    1,子类的方法覆盖父类的方法时,子类的方法权限大于等于父类的方法权限。

     

    2,静态只能覆盖静态,或被静态覆盖(这种情况很少见)

     

     

    什么时候使用覆盖操作

     

    当对一个类进行子类的扩展时,子类需要保留父类的功能声明,但是要定义子类中该功能的

     

    特有内容时,就使用覆盖操作完成。

     

    Final关键字

    1final 是一个修饰符,可以修饰类,方法,变量

     

    2final 修改的类不可以被继承

     

    3final 修饰的方法不可以被覆盖

     

    4final修饰的变量是一个常量,只能赋值一次

     

    抽象类的特点

    1,方法只有声明没有实现时,该方法就是抽象方法,需要被abstract修饰,抽象方法必须定义在抽象类中,该类必须也被abstract修饰。

     

    2,抽象类不可以被实例化,为什么应为调用抽象方法没意义。

     

    3,抽象类必须有其子类覆盖了所有的抽象方法,该子类才可以实例化。否则,这个子类还是抽象类

     

    1,抽象类中有构造函数吗?

     

    有,用于给子类对象进行初始化

     

    2,抽象类可以不定义抽象方法吗?

     

    可以的,但是很少见,目的就是不让该类创建对象,AWT的适配器对象就是这种类

     

    3,抽象关键字不可以和那些关键字共存?

     

    Private  static  final

     

    4,抽象类和一般类的异同点。

     

    相同点:

     

    抽象类和一般类都是用来描述事物的,都在内部定义了成员。

     

         不同:

     

    1,一般类有足够的信息描述事物。

    抽象类描述事物的信息有可能不足

     

           2,一般类中不能定义抽象方法,只能定非抽象方法。

               抽象类中可以定义抽象方法,同时也可以定义非抽象方法

     

    3,一般类可以被实例化,抽象类不可以被实例化。

     

      5,抽象类一定是个父类

     

     

    接口interface

    对于接口当中常见的成员,这些成员都有固定的修饰符

     

    1,全局常量。Public static final

     

    2, 抽象方法,public  abstract

     

    接口的权限都是公共权限  

     

    接口与接口之间是继承的关系,可以支持多继承

     

    抽象类和接口的异同点:

     

    相同点: 都是不断向上抽取而来的

     

    不同点:

     

    1,抽象类需要不被继承,而且只能单继承。

    接口需要被实现,而且可以多实现。

     

    2,抽象类中可以定义抽象方法和非抽象方法,子类继承后,可以直接使用非抽象方法。

    接口只能定义抽象方法,必须由子类去实现

     

    3,抽象类的继承,是 is a 关系,在定于该体系的基本共性内容

    接口的实现是 like a 关系,在定义体系额外功能

     

     

     

     

    多态

    1,成员变量

     

    编译时:参考引用类型变量所属的类中是否有调用的成员变量,有,编译通过,没

     

    有编译失败

     

    运行时: 参考引用类型变量所属的类中是否有调用的成员变量,并运行该所属类

     

    中的成员变量

     

    简单说:编译和运行都参考左边

     

         2, 成员函数(函数依赖于对象)

     

    编译时:参考引用类型变量所属的类中是否有调用的函数,有,编译通过,没

     

    有编译失败

     

    运行事: 参考的是对象所属的类中是否有调用的函数。

     

    简单说: 编译看左边,运行看右边

     

    3,静态函数

     

    编译时:参考引用类型变量所属的类中是否有调用的静态方法

     

    编译时:参考引用类型变量所属的类中是否有调用的静态方法

     

    简单说:编译和运行都参考左边

     

    其实对于静态的方法,是不需要对象的。直接用雷明调用即可

     

     

    内部类

    1,内部类可以直接访问外部类中的成员。

     

    2,外部类要访问内部类,必须建立内部类的对象。

     

     

    异常

    异常:是在运行时期发生的不正常情况。

     

    java中用类的形式对不正常情况进行了描述和封装对象、

     

    描述不正常的情况的类,就被成异常类

     

    异常分为两大类

     

    Throwable : 无论是error,还是异常,问题,问题发生就应该可以抛出,让调用者知道并处理

    该体系的特点就在于throwable及其所有的子类都具有可抛性

     

    可抛性 

    Throws,throw,凡是可以被这两个关键字所操作的类和对象都具有可抛性

     

    1. 一般不可处理的 error

     

    2. 可以处理的 exception

     

    Exception 的分类:

     

    1,编译时被检测异常:只要是exception 和其子类都是,除了特殊子类runtimeexception 体系

     

    这种问题一旦出现,希望在编译时就进行检测,这种问题有对应的处理方式。

    这样的问题都可以针对性的处理。

     

    2,编译时不检测异常(运行时异常) 就是exception中的runtimewxception和子类体系

     

    这种问题的发生,无法让功能继续,运算无法进行,更多是因为调用者的

    原因导致的或者引发的内部状态的改变导致的,那么这种问题一般不处理

    直接编译通过,在运行时,让调用者调用时的程序强制停止,让调用者对代码进行修正

     

    自定义异常时,要么继承exception ,要么继承runtimeexception

     

    Throws 和 throw 的区别。

     

    1throws 使用在函数上,

    Throw使用在函数内

     

    2throws抛出的异常类,可以抛出多个,用逗号隔开。

    Throw抛出的是异常对象

     

    异常处理的捕捉形式:

    这是可以对异常进行针对性处理的方式。

     

    具体格式是:

     

    Try{

    //需要被检测异常的代码

    }

    Catch(异常类 变量)  该变量用于接收发生的异常对象

    //处理异常的代码

    Finally

    {

    //一定会被执行的代码

    }

     

     

     

     

     

  • 相关阅读:
    iOS8及以后 地图定位当前城市
    UITextView换行问题解决办法
    使用七牛上传图片代码,导入文件常遇问题解决方法
    CocoaPods安装和使用
    Xcode7真机测试
    Label 添加表情图片
    TTTAttributedLabel使用介绍(转)
    带有中文的url和NSString中文的转换
    正则表达式的使用 选取有用数据
    导航网格配置笔记
  • 原文地址:https://www.cnblogs.com/lihaolihao/p/3606830.html
Copyright © 2011-2022 走看看