• Java中的其他修饰符


    abstract - 抽象的

      1、修饰类 - 抽象类,如果一个类是抽象的,那么这个类不能被实例化,只能被继承,所以抽象类一般都是父类;

      2、修饰方法 - 抽象方法,如果一个方法是抽象的,那么这个方法不能有实现,含有抽象方法的类一定是抽象类, 但抽象类不一定包含抽象方法;

        - 如果一个非抽象类继承了一个抽象类,则这个非抽象的子类必须实现父类中定义的所有抽象方法,除非这个子类也是抽象的;

        - 如果一个类中有一个抽象方法,那么这个类一定为一个抽象类。 反之,如果一个类为抽象类,那么其中可能有非抽象的方法。

     
        - 如果让一个非抽象类继承一个含抽象方法的抽象类,则编译时会发生错误。因为当一个非抽象类继承一个抽象方法的时候,本着只有一个类中有一个抽象方法,那么这个类必须为抽象类的原则。这个类必须为抽象类,这与此类为非抽象冲突,所以报错。  


        所以子类的方法必须覆盖父类的抽象方法。方法才能够起作用。
        只有将理论被熟练运用在实际的程序设计的过程中之后,才能说理论被完全掌握!


        为了实现多态,那么父类必须有定义。而父类并不实现,留给子类去实现。此时可将父类定义成abstract类。如果没有定义抽象的父类,那么编译会出现错误。  
        Abstract和static不能放在一起,否则便会出现错误。(这是因为static不可被覆盖,而abstract为了生效必须被覆盖。)

    static - 静态

      1、修饰属性 - 静态属性,可以用类名引用,而不必用对象来引用,所以静态属性是归类所有的,而不属于某一个具体的对象, 实际上,它是被该类的所有对象所共享;

       - 静态属性又叫做类属性 ,非静态属性又叫做对象属性;

      - 一般情况下,我们都是用类名来引用静态属性,而不用对象来引用;

     

      2、修饰方法 - 静态方法,可以用类名直接调用,不需要用对象,一般称之为类方法;

      - 静态方法中不能引用类中的非静态成员;

        思考:main方法为什么必须是静态方法?

      3、静态块 - 静态块中的代码是在类型信息加载到方法区后立即被执行的,作用是给静态属性进行初始化的;

      - 静态块中不能引用非静态成员;

        问题 - 单例模式(至多只能被实例化一次) - > 用静态来解决的一个经典问题; com.FirstJava.singleton

          1、如何阻止用户用new关键字任意生成该类的对象 -> 私有的构造方法;

          2、如何让用户得到对象 -> 给用户提供一个方法,用这个方法给用户返回该类对象;

          3、如何保证对象的唯一性 -> 使用静态属性;

    final - 最终的

      1、修饰类 - 最终的类,该类不能被继承(目的是这个类不能被扩展,也就是不能被改变);

      2、修饰方法 - 最终的方法,该方法不能被子类重写;

      3、修饰属性 - 称之为常量,常量的命名要求所有字母均大写,其值不能被改变,必须有初始化;

      4、修饰局部变量 - final的局部变量只能被赋值一次;

        内部类 - 在一个类中定义另一个类

          1、内部类是外部类的一个成员,所以所有能够修饰成员的关键字都能够修饰内部类,甚至可以是静态的;

          2、内部类对象可以访问其外部类中的所有成员,包括私有的;

                   问题 - 迭代器模式 - 集合类

  • 相关阅读:
    数据库chapter 4 数据库安全性
    数据库 chapter 2 关系数据库
    数据库 chapter 1 概论
    操作系统 chapter 11 I/O系统
    操作系统 chapter 12 死锁
    操作系统 chapter 7 8 存储模型
    聊一聊移动调试那些事儿
    获取当前日期和农历的js代码
    使用 CSS 媒体查询创建响应式网站
    大前端工具集
  • 原文地址:https://www.cnblogs.com/coffeerun/p/5729955.html
Copyright © 2020-2023  润新知