Java基础笔记(7)----三个修饰符
- abstract抽象
- 方法
- 抽象方法:abstract修饰的方法,只有声明 而没有方法的实现(连{}都没有)。
- 语法:修饰符 返回值类型 方法名(形参列表);
- 注意:抽象方法 必须定义在 抽象类中。
- 类
- 抽象类:被abstract修饰的类,不能 实例化(创建对象)。
- 语法: 修饰符 class 类名 [继承关系]{}
- 注意:
- 抽象类 不以创建对象;但是 可以声明引用(强制多态)。
- 子类可以继承抽象类,但是 必须实现抽象类中的所有抽象方法; 除非 该子类又是抽象类。
- 抽象类中 可以有抽象方法 也可以有非抽象的方法。
抽象类的好处:强制 使用多态。
- static 静态、
- 属性/实例变量
- 语法:类以内,方法以外 static 数据类型 变量名;
- 概念:类变量/静态变量,是指被static修饰的属性/实例变量,被该类的 所有对象共享(与对象无关)。
- 使用: 类名.属性名
- 方法/实例方法
- 语法:访问修饰符 static 返回值类型 方法名(形参列表){
// 方法的实现部分
}
- 概念:类方法/静态方法,是指被static修饰的方法,被该类的 所有对象共享(与对象无关)。
- 使用:类名.方法名(实参); // 建议
- 注意:
- static修饰的方法中不允许使用this和super;
- static修饰的方法可以被继承;只能被static的方法覆盖;但没有多态(详见下条);
- 通过引用调用static方法时,执行的是 引用类型自身的;
- 在static方法中 只能直接调用static的方法;而不能直接调用非static的方法。
- 静态代码块
- 初始代码块:在类以内,方法以外 定义的代码块。
- 用于 在创建对象时,和 属性初始化 按定义的先后顺序 依次进行初始化工作。
- 静态代码块:用static修饰的 类以内方法以外的代码块, 只执行1次(在类加载时)。
- final 最终
- 变量(实例变量+局部变量+static变量)
- final修饰的变量 为最终变量,只能被赋值1次 不允许修改(常量)。
- 注意:
- final修饰的实例变量,将不再分配默认值;
- 可以在 声明/初始代码块/构造方法 赋初值;
- 如果使用构造方法 给final的属性赋初值,必须保证 所有的构造中都赋初值。
- final修饰的类变量,将不再分配默认值;可以在声明/静态代码块 赋初值。
- final修改引用类型 的变量时,代表 引用自身的值不允许修改(地址值不允许改)。
- 方法
- final修饰的方法 为最终方法,不能被 覆盖。
- 类
- final修饰的类 为最终类,不能被 继承。
- 如果一个类是final的,则该类中的所有方法都是final的。
- 拓展与提升:
- static,final、abstract都不能修饰构造方法
- 类加载
- 概念:在JVM第1次使用某个类时,先从classpath下找到对应的.class文件,读取该文件中的所有内容(属性/方法/类名/包结构/构造/静态....),并保存起来的过程,称为类加载。
- 类加载 在同一个JVM中 只进行1次。
- 类加载的时机:第1次使用某个类时
- 创建该类的对象
- 使用该类的静态成员(静态变量/静态方法)
- 创建子类对象 或 使用子类的静态成员
- 递归对父类 类加载1次
- 对子类 类加载1次
- 分配空间 所有实例变量 赋默认值
- 递归的创建父类对象
- 初始化本类属性 和 初始代码块 按定义的先后执行
- 调用本类构造方法
Java基础笔记(7)----三个修饰符的更多相关文章
- Java学习笔记10---访问权限修饰符如何控制成员变量、成员方法及类的访问范围
1.Java有三种访问权限修饰符,分别为public.protected.private,还有一种为缺省权限修饰符的情况,记为default.其中,可以由public和default来修饰类:这四种修 ...
- Java基础知识回顾之二 ----- 修饰符和String
前言 在上一篇中,回顾了Java的基本数据类型 ,这篇就来回顾下Java中的一些修饰符以及String. 修饰符介绍 Java修饰符主要分为两类: 访问修饰符 非访问修饰符 其中访问修饰符主要包括 p ...
- java基础笔记(三)——main方法
1.解析public static void main(String[] args)方法 JVM在运行程序时,会首先查找main()方法作为入口,main是JVM识别的特殊方法名. public是权限 ...
- Java基础第一天--继承、修饰符
继承 继承的概述: 继承是面向对象三大特征之一.可以使得子类具有父类的属性和方法,还可以在子类中重新定义,追加属性和方法. //创建父类 public class Fu{ public void sh ...
- Vue.js学习笔记(三) - 修饰符
本篇将简单介绍常用的修饰符. 在上一篇中,介绍了 v-model 和 v-on 简单用法.除了常规用法,这些指令也支持特殊方式绑定方法,以修饰符的方式实现.通常都是在指令后面用小数点“.”连接修饰符名 ...
- 【java学习笔记2】访问控制修饰符 public、protected、默认、private
先写了一个User()类: package chapter01; public class User { // 私有的 private int id; // 受保护的 protected int ag ...
- Java基础笔记 – Annotation注解的介绍和使用 自定义注解
Java基础笔记 – Annotation注解的介绍和使用 自定义注解 本文由arthinking发表于5年前 | Java基础 | 评论数 7 | 被围观 25,969 views+ 1.Anno ...
- Java虚拟机笔记(三):垃圾收集算法
一.标记-清除(Mark-Sweep)算法 标记清除算法是最基础的收集算法,其他收集算法都是基于这种思想. 标记清除算法分为“标记”和“清除”两个阶段:首先标记出需要回收的对象,标记完成之后统一清除对 ...
- 【转】Java基础笔记 – 枚举类型的使用介绍和静态导入--不错
原文网址:http://www.itzhai.com/java-based-notes-introduction-and-use-of-an-enumeration-type-static-impor ...
- Java语言中有4种访问修饰符
转载:http://wuhaidong.iteye.com/blog/851754 Java语言中有4种访问修饰符 在Java语言中有4中访问修饰符:package(默认).private.publi ...
随机推荐
- 微信公众号开发系列-Http请求封装基类
HttpHelper请求封装基类,支持get请求和POS请求,方便微信开发接口交互,为后面接口交互做准备. 1.HttpHelper帮助基类 [csharp] view plaincopy using ...
- River Hopscotch POJ - 3258
Every year the cows hold an event featuring a peculiar version of hopscotch that involves carefully ...
- chrono--高精度计时
在C++中使用chrono标准库进行高精度计时.示例如下: #include<iostream> #include<ctime> #include<ratio> # ...
- Java 8 Date-Time API 详解
从Java版本1.0开始就支持日期和时间,主要通过java.util.Date类. 但是,Date类设计不佳. 例如,Date中的月份从1开始,但从日期却从0开始.在JDK 1.1中使用它的许多方法已 ...
- Web 小案例 -- 网上书城(三)
内容有点乱,有兴趣的同伙可依照后面的案例结构结合文章进行阅读 和网上购买东西一样,你可以在不登录的状态下去浏览商品,但是当你想把自己中意的东西加入购物车或是收藏起来就需要你拥有自己的账号然后登录后才可 ...
- 神级程序员:让你的爬虫就像人类的用户行为! 你敢封我IP吗?
1 前言 近期,有些朋友问我一些关于如何应对反爬虫的问题.由于好多朋友都在问,因此决定写一篇此类的博客.把我知道的一些方法,分享给大家.博主属于小菜级别,玩爬虫也完全是处于兴趣爱好,如有不足之处,还望 ...
- 谈谈MySQL的事务隔离级别
这篇文章能够阐述清楚跟数据库相关的四个概念:事务.数据库读现象.隔离级别.锁机制 一.事务 先来看下百度百科对数据库事务的定义: 作为单个逻辑单元执行一系列操作,要么完全执行,要么完全不执行.事务处理 ...
- [BZOJ1085] [SCOI2005] 骑士精神 (A*)
Description 在一个5×5的棋盘上有12个白色的骑士和12个黑色的骑士, 且有一个空位.在任何时候一个骑士都能按照骑士的走法(它可以走到和它横坐标相差为1,纵坐标相差为2或者横坐标相差为2, ...
- [BZOJ1606] [Usaco2008 Dec] Hay For Sale 购买干草 (dp)
Description 约翰遭受了重大的损失:蟑螂吃掉了他所有的干草,留下一群饥饿的牛.他乘着容量为C(1≤C≤50000)个单位的马车,去顿因家买一些干草. 顿因有H(1≤H≤5000)包干草,每 ...
- 微信小程序之换肤的功能
pc或者移动端实现换肤功能还是比较简单的,大致就是需要换肤的css,还有正常的css:把当前皮肤类型存入本地:然后通过js读取并判断当前应该加载哪套css. 由于微信小程序没有操作wxss的api,所 ...