Java基础笔记(十七)——继承(续)final
final 最终的
修饰类,此类不能被继承。final与访问修饰符public位置随意,在class前即可。public final class A{ }
修饰方法,此方法不能被子类重写,但可以被子类正常继承。 public final void eat(){ }
修饰方法内的局部变量,此局部变量不允许被修改。其中,只要在使用前赋值即可,一旦赋值就不可改变。final int a=10;
修饰类中成员属性,值也不可改变。值的赋值方式有三种:(1)定义直接初始化;(2)在构造代码块中对其赋值;(3)在构造方法中初始化(有多个构造方法,都要赋值)。如果这三种方式都没赋值,则编译出错。如果有多个构造方法,只在其中一个构造方法里赋值也是编译出错的,因为创建对象时不一定会用哪个构造方法,没有赋值的,final变量就无效未初始化了,即出错。
Java包括基本数据类型和引用数据类型。
基本数据类型:int、float、double... 直接赋值 int a=1;
引用数据类型:类、String、System、数组... 实例化方式构造对象,且对象里有很多属性值
final修饰引用数据类型,引用地址不可改,属性值可改。
final Animal animal = new Animal("hh",1);
animal = new Animal(); //编译出错
animal.age=2; //属性值都是可以改的
animal.name="aa";
修饰基本数据类型的变量——初识赋值之后不能更改
修饰引用类型的变量——初识化之后不能再指向另一个对象,但对象的内容是可变的。
final配合static使用
可以修饰方法和变量,其中变量作为全局变量,不允许被修改。可用作只需加载一次,又不需要修改的配置信息。
如:public static final String URL="www.xx.com"; //final和static位置可换,随意
final可提高性能,但会降低可扩展性。
注解
如:@Override 重写方法的注解
重写父类方法时可以用注解快捷方式,选择要重写的方法,快速添加。
注解相当于一个标记,告诉编译器和系统,还可以提示编程以防出错。例如,子类要重写父类的一个方法,加上@Override注解,然而父类忘记写此方法,会提示出错信息。
注解按照运行机制分:
源码注解——给编译器看,注解只在源码中存在,编译成.class文件就不存在了。如:@Override
编译时注解——注解在源码和class文件中都存在。
运行时注解——在运行阶段还起作用,甚至会影响运行逻辑的注解。如: Spring注解:@Autowired
按照来源分:
来自JDK的注解 如:@Override
来自第三方的注解 如:Spring注解:@Autowired
我们自己定义的注解
Java基础笔记(十七)——继承(续)final的更多相关文章
- Java基础笔记-抽象,继承,多态
抽象类: abstract修饰 抽象方法必须定义在抽象类中,抽象类不能创建对象. 在抽象方法中可以不定义抽象方法,作用是:让该类不能建立对象. 特点是: 1.定义在抽象类中 2.方法和类都用abstr ...
- 【转】Java基础笔记 – 枚举类型的使用介绍和静态导入--不错
原文网址:http://www.itzhai.com/java-based-notes-introduction-and-use-of-an-enumeration-type-static-impor ...
- Java基础笔记 – Annotation注解的介绍和使用 自定义注解
Java基础笔记 – Annotation注解的介绍和使用 自定义注解 本文由arthinking发表于5年前 | Java基础 | 评论数 7 | 被围观 25,969 views+ 1.Anno ...
- Java基础学习笔记七 Java基础语法之继承和抽象类
继承 继承的概念 在现实生活中,继承一般指的是子女继承父辈的财产.在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系. 例如公司中的研发部员工和维护部员工都属于员工, ...
- 黑马程序员----java基础笔记中(毕向东)
<p>------<a href="http://www.itheima.com" target="blank">Java培训.Andr ...
- 黑马程序员----java基础笔记上(毕向东)
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 笔记一共记录了毕向东的java基础的25天课程,分上.中.下 本片为上篇,涵盖前10天课程 1. ...
- Java基础笔记(一)
本文主要是我在看<疯狂Java讲义>时的读书笔记,阅读的比较仓促,就用 markdown 写了个概要. 第一章 Java概述 Java SE:(Java Platform, Standar ...
- JAVA基础笔记10-11-12-13-14
十.今日内容介绍 1.继承 2.抽象类 3.综合案例---员工类系列定义 01继承的概述 *A:继承的概念 *a:继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系 *b:在J ...
- 转!java基础笔记
原博文地址:http://blog.csdn.net/u012152619/article/details/48024345 Java标识符 Java所有的组成部分都需要名字.类名.变量名以及方法名都 ...
- Java基础教程(18)--继承
一.继承的概念 继承是面向对象中一个非常重要的概念,使用继承可以从逻辑和层次上更好地组织代码,大大提高代码的复用性.在Java中,继承可以使得子类具有父类的属性和方法或者重新定义.追加属性和方法. ...
随机推荐
- Solaris Tips: Repairing the Boot Archive (ZT)
http://www.seedsofgenius.net/solaris/solaris-tips-repairing-the-boot-archive 注意以下是系统盘非镜像情况下的操作,如果系统盘 ...
- CMake 使用方法 & CMakeList.txt<转>
CMake 使用方法 & CMakeList.txt cmake 简介 CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程).他能够输出各种各样的make ...
- 每天一道算法题(14)——N个降序数组,找到最大的K个数
题目: 假定有20个有序数组,每个数组有500个数字,降序排列,数字类型32位uint数值,现在需要取出这10000个数字中最大的500个. 思路 (1).建立大顶堆,维度为数组的个数,这里为20( ...
- String/StringBuilder 类 统计字符串中字符出现的次数
1.1. 训练描述:[方法.String类] 一.需求说明:定义如下字符串: String str = “javajfiewjavajfiowfjavagkljjava”; 二.请分别定义方法统计出: ...
- 利用脚本,一键设置java环境变量(默认安装路径)
Windows一键设置Java环境变量 右击以管理员方式运行,注意自行更改JAVA_HOME目录文件安装目录. JDKSetting.bat @echo off color 0a echo.----- ...
- STM32 C++编程 004 Adc (数模转换)类
使用 C++ 语言给 STM32 编写一个 Adc 类 我使用的STM32芯片:STM32F103ZET6 我们使用的STM32库版本:V3.5.0 注意: 想学习本套 STM32 C++编程 的专栏 ...
- 算法Sedgewick第四版-第1章基础-2.1Elementary Sortss-007归并排序(自下而上)
一. 1. 2. 3. 二.代码 package algorithms.mergesort22; import algorithms.util.StdIn; import algorithms.uti ...
- Java-马士兵设计模式学习笔记-策略模式-模拟 Comparator接口
续上一篇 <Java 模拟 Comparable接口> 一.Teacher类及Student类的比较大小方式是不固定的,比如老师除了比较职称外,还可比较工龄大小,年龄大小等.则定义Com ...
- 1、awk打开多个文件的方法
转载:http://www.cnblogs.com/Berryxiong/p/6209324.html 1.当awk读取的文件只有两个的时候,比较常用的有三种方法(1)awk 'NR==FNR{... ...
- Luogu 2939 [USACO09FEB]改造路Revamping Trails && Luogu 4568 [JLOI2011]飞行路线
双倍经验 写这两题之前被大佬剧透了呜呜呜. 分层图+最短路. 因为有$k$次机会能够把路径的费用变为$0$,我们可以建$k + 1$层图,对于每一层图我们把原来的边权和双向边连到上面去,而对于层与层之 ...