1. abstract抽象
    1. 方法
      1. 抽象方法:abstract修饰的方法,只有声明 而没有方法的实现(连{}都没有)。
      2. 语法:修饰符 返回值类型 方法名(形参列表);
      3. 注意:抽象方法 必须定义在 抽象类中。
      1. 抽象类:被abstract修饰的类,不能 实例化(创建对象)。
      2. 语法: 修饰符 class 类名 [继承关系]{}
      3. 注意:
        1. 抽象类 不以创建对象;但是 可以声明引用(强制多态)。
        2. 子类可以继承抽象类,但是 必须实现抽象类中的所有抽象方法; 除非 该子类又是抽象类。
        3. 抽象类中 可以有抽象方法 也可以有非抽象的方法。

        抽象类的好处:强制 使用多态。

  2. static 静态、
    1. 属性/实例变量
      1. 语法:类以内,方法以外  static 数据类型 变量名;
      2. 概念:类变量/静态变量,是指被static修饰的属性/实例变量,被该类的 所有对象共享(与对象无关)。
      3. 使用: 类名.属性名
    2. 方法/实例方法
      1. 语法:访问修饰符 static 返回值类型 方法名(形参列表){

        // 方法的实现部分

        }

      2. 概念:类方法/静态方法,是指被static修饰的方法,被该类的 所有对象共享(与对象无关)。
      3. 使用:类名.方法名(实参); // 建议
      4. 注意:
        1. static修饰的方法中不允许使用this和super;
      5. static修饰的方法可以被继承;只能被static的方法覆盖;但没有多态(详见下条);
      6. 通过引用调用static方法时,执行的是 引用类型自身的;
      7. 在static方法中 只能直接调用static的方法;而不能直接调用非static的方法。
    3. 静态代码块
      1. 初始代码块:在类以内,方法以外 定义的代码块。
      2. 用于 在创建对象时,和 属性初始化 按定义的先后顺序 依次进行初始化工作。
      3. 静态代码块:用static修饰的 类以内方法以外的代码块, 只执行1次(在类加载时)。
  3. final 最终
    1. 变量(实例变量+局部变量+static变量)
      1. final修饰的变量 为最终变量,只能被赋值1次 不允许修改(常量)。 
      2. 注意:
        1. final修饰的实例变量,将不再分配默认值;
        2. 可以在 声明/初始代码块/构造方法 赋初值;
        3. 如果使用构造方法 给final的属性赋初值,必须保证 所有的构造中都赋初值。
        4. final修饰的类变量,将不再分配默认值;可以在声明/静态代码块 赋初值。
        5. final修改引用类型 的变量时,代表 引用自身的值不允许修改(地址值不允许改)。
    1. 方法
      1. final修饰的方法 为最终方法,不能被 覆盖。
      1. final修饰的类 为最终类,不能被 继承。
      2. 如果一个类是final的,则该类中的所有方法都是final的。
  4. 拓展与提升:
    1. static,final、abstract都不能修饰构造方法
    2. 类加载
      1. 概念:在JVM第1次使用某个类时,先从classpath下找到对应的.class文件,读取该文件中的所有内容(属性/方法/类名/包结构/构造/静态....),并保存起来的过程,称为类加载。
      2. 类加载 在同一个JVM中 只进行1次。
      3. 类加载的时机:第1次使用某个类时
        1. 创建该类的对象
        2. 使用该类的静态成员(静态变量/静态方法)
        3. 创建子类对象 或 使用子类的静态成员
          1. 递归对父类 类加载1次
          2. 对子类 类加载1次
          3. 分配空间 所有实例变量 赋默认值
          4. 递归的创建父类对象
          5. 初始化本类属性 和 初始代码块 按定义的先后执行
          6. 调用本类构造方法

Java基础笔记(7)----三个修饰符的更多相关文章

  1. Java学习笔记10---访问权限修饰符如何控制成员变量、成员方法及类的访问范围

    1.Java有三种访问权限修饰符,分别为public.protected.private,还有一种为缺省权限修饰符的情况,记为default.其中,可以由public和default来修饰类:这四种修 ...

  2. Java基础知识回顾之二 ----- 修饰符和String

    前言 在上一篇中,回顾了Java的基本数据类型 ,这篇就来回顾下Java中的一些修饰符以及String. 修饰符介绍 Java修饰符主要分为两类: 访问修饰符 非访问修饰符 其中访问修饰符主要包括 p ...

  3. java基础笔记(三)——main方法

    1.解析public static void main(String[] args)方法 JVM在运行程序时,会首先查找main()方法作为入口,main是JVM识别的特殊方法名. public是权限 ...

  4. Java基础第一天--继承、修饰符

    继承 继承的概述: 继承是面向对象三大特征之一.可以使得子类具有父类的属性和方法,还可以在子类中重新定义,追加属性和方法. //创建父类 public class Fu{ public void sh ...

  5. Vue.js学习笔记(三) - 修饰符

    本篇将简单介绍常用的修饰符. 在上一篇中,介绍了 v-model 和 v-on 简单用法.除了常规用法,这些指令也支持特殊方式绑定方法,以修饰符的方式实现.通常都是在指令后面用小数点“.”连接修饰符名 ...

  6. 【java学习笔记2】访问控制修饰符 public、protected、默认、private

    先写了一个User()类: package chapter01; public class User { // 私有的 private int id; // 受保护的 protected int ag ...

  7. Java基础笔记 – Annotation注解的介绍和使用 自定义注解

    Java基础笔记 – Annotation注解的介绍和使用 自定义注解 本文由arthinking发表于5年前 | Java基础 | 评论数 7 |  被围观 25,969 views+ 1.Anno ...

  8. Java虚拟机笔记(三):垃圾收集算法

    一.标记-清除(Mark-Sweep)算法 标记清除算法是最基础的收集算法,其他收集算法都是基于这种思想. 标记清除算法分为“标记”和“清除”两个阶段:首先标记出需要回收的对象,标记完成之后统一清除对 ...

  9. 【转】Java基础笔记 – 枚举类型的使用介绍和静态导入--不错

    原文网址:http://www.itzhai.com/java-based-notes-introduction-and-use-of-an-enumeration-type-static-impor ...

  10. Java语言中有4种访问修饰符

    转载:http://wuhaidong.iteye.com/blog/851754 Java语言中有4种访问修饰符 在Java语言中有4中访问修饰符:package(默认).private.publi ...

随机推荐

  1. 打开CSDN论坛出现403

    打开CSDN论坛出现403 在查找资料的过程中,出现"403-禁止访问"

  2. monkeyrunner_控件坐标获取

    1.Pointer location获取坐标 通过模拟器中的设置-开发者选项,找到"指针位置"的选项,勾选上.如下图所示. 勾选后,模拟器的最顶部则显示坐标,比如点击模拟器上的任一 ...

  3. 关于webpack,打包时遇到的错误

    最近在研究webpack这玩意,然后遇到一个问题,执行npm run build的时候,出现下面这个问题,各种搜索后,各种尝试,都没解决 运行时报错ERROR in ./src/app.vue Mod ...

  4. C#密封类和密封方法--C#基础

    1.密封类 1)不是所有的类都可以继承,不能别继承的类叫做密封类.如果一个类不希望被继承.被派生可以采用关键字sealed,下面Class2不能继承Class1 Class1.cs: namespac ...

  5. I2C总线协议的软件模拟实现方法

    I2C总线协议的软件模拟实现方法 在上一篇博客中已经讲过I2C总线通信协议,本文讲述I2C总线协议的软件模拟实现方法. 1. 简述 所谓的I2C总线协议的软件模拟实现方法,就是用软件控制GPIO的输入 ...

  6. 如何将VMware虚拟机迁移到AWS

    在工作中,我们一直在努力将我们的一些VMware工作负载转移到AWS,并且我的任务是将几个VMware虚拟机迁移到AWS,作为暂时的概念验证. 在本文中,我将展示如何设置AWS连接器并使用AWS服务器 ...

  7. 【Spring源码分析】.properties文件读取及占位符${...}替换源码解析

    前言 我们在开发中常遇到一种场景,Bean里面有一些参数是比较固定的,这种时候通常会采用配置的方式,将这些参数配置在.properties文件中,然后在Bean实例化的时候通过Spring将这些.pr ...

  8. scrapy 爬虫基础

    Scrapy是Python开发的一个快速.高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据.Scrapy用途广泛,可以用于数据挖掘.监测和自动化测试. 安装Scrapy的 ...

  9. 20.1章JSON语法

    1,语法 JSON有三种类型的值 简单值:使用与JavaScript相同的语法,可以在JSON中表示字符串,数值,布尔值,null.但是JSON不支持JavaScript中特殊的值undefined. ...

  10. MinGW安装和使用

    P.S.安装MinGW主要是code blocks 编译出现了这个问题: ERROR: You need to specify a debugger program in the debuggers' ...