Java之路---Day13
2019-10-28-22:40:14
目录
1.Instanceof关键字
2.Final关键字
2.1Final关键字修饰类
2.2Final关键字修饰成员方法
2.3Final关键字修饰局部变量
2.4Final关键字修饰成员变量
3.权限修饰符
Instanceof关键字
作用:判断一个父类引用的对象是什么子类
格式:
对象名 instanceof 类名称
package demosummary.instanceoftest;
public class Test {
public static void main(String[] args) {
//创建一个Dog对象
Animal animal = new Dog();
//如果希望调用子类特有方法,需要向下转型
//判断一下父类引用animal本来是不是Dog
if (animal instanceof Dog){
animal.setName("来福");
Dog dog = (Dog)animal;
dog.skill();
}
}
}
Final关键字
意义:final关键字代表最终,不可改变的
常见四种用法:
1.可以用来修饰一个类
2.可以用来修饰一个方法,
3.还可以用来修饰一个局部变量
4.还可以用来修饰一个成员变量
Final关键字修饰类
格式:
public final class 类名称{
语句体;
}
含义:当前这个类不能有任何子类,而且成员方法都无法进行覆盖重写(因为没有子类)
public final c1ass MyClass /*extends object*/ {
public void method() {
System.out.print1n( "方法执行!");
}
}
Final关键字修饰成员方法
当final关键宇用来修饰一个方法的时候,这个方法就是最终方法,也就是不能被覆盖重写。
格式:
修饰符 final 返回值类型 方法名称(参数列表) {
// 方法体
}
注意事项:1、对于类、方法来说,abstract关键字和final关键字不能同时使用,因为矛盾。
public abstract class Fu {
public final void method() {
System.out.printIn("父类方法执行!");
}
public abstract /*final*/ void methodAbs() ;
}
Final关键字修饰局部变量
作用:一旦使用final来修饰局部变量,那么这个变量就不能进行修改(一次赋值,终生不变)
注意事项:
1.对于基本类型来说,不可变说的是变量当中的数据不可改变
2.对于引用类型来说,不可变说的是变量当中的地址值不可改变
Final关键字修饰成员变量
作用:对于成员变量来说,如果使用final关键字修饰,那么这个变量也照样是不可变。
1.由于成员变量具有默认值,所以用了final之后必须手动赋值,不会再给默认值了。
2.对于final的成员变量,要么使用直接赋值,要么通过构造方法赋值。二者选其一。
3.必须保证类当中所有重载的构造方法,都最终会对final的成员变量进行赋值。
权限修饰符
Java中有四种权限修饰符:
public > protected > ( default) > private
同一个类(我自己) YES YES YES YES
同一个包(我邻居) YES YES YES NO
不同包子类(我儿子) YES YES NO NO
不同包非子类(陌生人 YES NO NO NO
注意事项: (default)并不是关键字“defoult",而是根本不写。
Java之路---Day13的更多相关文章
- Java之路——名词解释(一)
一.开篇 许多人在初接触Java的时候,都会被各种Java的英文缩写名词给弄得头晕脑胀.看一个技术,内容里又会有一堆其他的技术名词,看了半天不知所云.尝试去查一下这些名词的解释,除了非常学术性的解释之 ...
- Java之路——敬JAVA初学者(作者:MoMo)
作为一名大四的毕业生,大学三年过,有得有失.作为一个喜欢编程,喜欢JAVA的人,自学其实是一件美事,很有意思的事.要是能再找个女朋友一起学.嘿嘿,就不枉在大学走了一遭啊! 要离开学校了,还是想留 ...
- Java之路——环境配置与编译运行
本文大纲 一.开篇 二.JDK下载 三.JDK安装 四.环境配置 五.初识Java编译 六.Java与Javac 七.第一个Java程序 八.总结 九.参考资料 一.开篇 通过对之前Java之路的了解 ...
- Java之路 ——初识Eclipse
零.大纲 一.前言 二.获取Eclipse 三.运行Eclipse 四.创建及运行第一个Java Project 五.界面介绍 六.如何调试 七.获取插件 八.Eclipse 快捷键 九.总结 一.前 ...
- 转行自学 Java 之路的纪念册
前言: 最近在重读<小狗钱钱>,我对其中的"成功日记"概念特别深刻,偶尔也会记一记“成功日记”. 想了想人生走找到今天,阶段性“成功日记”有没有呢? 有的!几年前的一篇 ...
- 是什么让我走上Java之路?
选择方向,很多人都为根据自己的兴趣爱好和自己的能力所长而作出选择.那么是什么让我走上Java之路? 整个高三我有两门课程没有听过课,一门是数学,一门是物理.当时候物理没有听课的原因很简单,我有一本&l ...
- 我的Java之路
前言: 之前在学习python,刚开始的时候跟多数小白一样学习一些基础的知识,比如数据类型,用法,基本的语言结构,学了一段时间实在是学习不下去了,真是太TMD的无聊了,很多方法都记不住,也不知道学了这 ...
- Java之路——初识Eclipse
零.大纲 一.前言 二.获取Eclipse 三.运行Eclipse 四.创建及运行第一个Java Project 五.界面介绍 六.如何调试 七.获取插件 八.Eclipse 快捷键 九.总结 一.前 ...
- Python自学之路---Day13
目录 Python自学之路---Day13 常用的三个方法 匹配单个字符 边界匹配 数量匹配 逻辑与分组 编译正则表达式 其他方法 Python自学之路---Day13 常用的三个方法 1.re.ma ...
随机推荐
- 简单理解EM算法Expectation Maximization
1.EM算法概念 EM 算法,全称 Expectation Maximization Algorithm.期望最大算法是一种迭代算法,用于含有隐变量(Hidden Variable)的概率参数模型的最 ...
- Hello,DTOS!(上)
主引导程序是软件还是固件?如果是软件,那么由谁开发?如何开发?主引导程序是软件.因为它不是固化于硬件当中的,并不是在出厂之前已经烧到硬件里面去了.因此它必然是软件.既然是软件,那是谁来开发它呢?就目前 ...
- flask实战-个人博客-数据库-生成虚拟数据 --
3.生成虚拟数据 为了方便编写程序前台和后台功能,我们在创建数据库模型后就编写生成虚拟数据的函数. 1)管理员 用于生成虚拟管理员信息的fake_admin()函数如下所示: personalBlog ...
- requests-html
目录 一 介绍 二 安装 三 如何使用requests-html 四 支持JavaScript 五 自定义User-Agent 六 模拟表单提交 七 支持异步请求 一 介绍 Python上有一个非常著 ...
- Python语言基础考察点:python语言基础常见考题(一)
一.python是静态还是动态类型?是强类型还是弱类型? 1.动态强类型语言(不少人误以为是弱类型) 不要傻傻分不清 2.动态还是静态指的是编译期还是运行期确定类型 3.强类型指的是不会发生隐式类型转 ...
- 熟悉 rsync 的功能及其特点
提要 熟悉 rsync 的功能及其特点 掌握 rsync 语法及常用选项的功能 掌握 rsync 命令的三种基本使用方法 掌握如何筛选 rsync 的传输目标 掌握使用 rsync 进行镜像和增量备份 ...
- Unix/Linux小计
1. centos查看cpu信息 cat /proc/cpuinfo processor有几个就是有几个cpu,每一列是每个cpu的信息 每个processor中的cores是当前cpu中有几个核心. ...
- jQuery前端生成二维码
引用: <script src="assets/js/jquery.qrcode.min.js" charset="UTF-8"></scri ...
- top命令输出解释以及load average 详解及排查思路
原地址: https://blog.csdn.net/zhangchenglikecc/article/details/52103737 1.top输出以及load average 详解 昨天nagi ...
- ASP.NET Core使用Docker-Compose实现多容器应用部署
一.需求背景 人生苦短,我用.NET Core!前面的<ASP.NET Core使用Docker进行容器化托管和部署>基础课程我们学习了如何使用Docker来部署搭建ASP.NET Cor ...