《java编程思想》P140-P160(第七章复部+第八章部分)
1.不用修饰符 修饰的方法或类,它们的修饰符是 默认修饰符,即 包访问权限(包内都可以用)(临时记的)
2.
final数据:
对于基本类型,final使数值恒定不变,而对于对象引用,final使引用恒定不变(java里数组也是对象引用)。一旦引用被初始化指向一个对象,就无法再把它指向另一个对象。然而,对象本身还是可以改变的!(只是不能再指向别的,但这个对象本身还是可以变化的)
Java允许生成”空白final”,所谓空白final是指被声明为final但是没有赋初值的域.无论什么情况,java编译器都保证空白final在使用前必须被初始化”. (必须在定义处或构造器里).
final方法:
为了防止继承类修改这个方法的定义(final方法无法被重写/覆盖)
类中所有的private方法都隐式的指定为final的.
覆盖只有在某个方法是基类的接口的一部分才出现,如果某个方法是private的,就不是接口的一部分,就不能被覆盖/重写,子类再写个一样的不能称为覆盖/重写,只是个子类的新方法(相同名称而已)。其实,子类不知道基类的某些方法(private),那么覆盖就无从谈起.
final类:final类无法被继承 .
3.初始化的顺序(得靠刷题)
- 父类--静态变量
- 父类--静态初始化块
- 子类--静态变量
- 子类--静态初始化块
- 父类--变量
- 父类--初始化块
- 父类--构造器
- 子类--变量
- 子类--初始化块
- 子类--构造器
4.多态的作用是消除类型之间的耦合关系
5.动态(也称动态绑定、后期绑定、运行时绑定)
6.java中除了static方法和final方法(private属于final方法)之外,其它方法都是后期绑定
7.java中的方法都是通过动态绑定实现的多态
8.构造器中发生了多态,如果子类覆盖了父类方法,且父类构造器中调用了该方法,会发生多态现象,最终调用子类的该方法.但是此时子类的初始化还没进行,可能导致意想不到的结果.所以尽量不要在构造器中调用其他方法,或者仅仅调用final以及private(private默认final)的方法;
如下代码输出BB
public class test {
class A{
public A()
{
print();
}
void print()
{
System.out.println("A");
}
}
public class B extends A{
public B()
{
print();
}
void print()
{
System.out.println("B");
}
}
public static void main(String[] args) {
test t = new test();
A a = t.new B();
}
}
《java编程思想》P140-P160(第七章复部+第八章部分)的更多相关文章
- 《Java编程思想》笔记 第七章 复用类
1.组合 将其他类的对象引用置于新的类中. 3.继承 extends 从已知的一个类中派生出新的一个类,叫子类.子类实现了父类所有 非私有化 非静态 的属性和方法,并能根据自己的实际需求扩展出新的行为 ...
- [Java编程思想-学习笔记]第3章 操作符
3.1 更简单的打印语句 学习编程语言的通许遇到的第一个程序无非打印"Hello, world"了,然而在Java中要写成 System.out.println("He ...
- 【学习笔记】《Java编程思想》 第1~7章
第一章 对象导论 对整书的概要. 略读. 第二章 一切都是对象 创建一个引用,指向一个对象. 安全的做法:创建一个引用的同时便进行初始化. 对象存储的地方:1)寄存器:这是最快的存储区,因为它位于不同 ...
- java编程思想第四版第九章总结
1. 策略设计模式 参考这篇文章:http://blog.csdn.net/chenjie19891104/article/details/6396458 讲的很清楚,策略设计模式.并且举了一个例子, ...
- Java编程思想学习(五)----第5章:初始化与清理
随着计算机革命的发展,“不安全”的编程方式已逐渐成为编程代价高昂的主因之一. C++引入了构造嚣(constructor)的概念,这是一个在创建对象时被自动调用的特殊方法.Java中也采用了构造器,并 ...
- [Java编程思想-学习笔记]第1章 对象导论
1.1 抽象过程 Java是一门面向对象的语言,它的一个优点在于只针对待解问题抽象,而不用为具体的计算机结构而烦心,这使得Java有完美的移植性,也即Java的口号"Write Once, ...
- 《Java编程思想》笔记 第二十一章 并发
1.定义任务 实现Runnable 接口的类就是任务类(任务类不一定是实现Runnable接口的类). 实现Runnable 接口,重写run()方法,run方法的返回值只能是 void 任务类就是表 ...
- java编程思想第四版第九章习题
第三题 package net.mindview.interfaces; abstract class Base{ public Base(){ print(); } abstract void pr ...
- [Java编程思想-学习笔记]第2章 一切都是对象
2.1 创建新的数据类型:类 通过第一章掌握了面向对象的理论后,我们知道每个对象必定属于一个类型,那么Java如何创建新的数据类型?如下程序所示: class Circle { // 属性 // 方 ...
随机推荐
- .Net基础篇_学习笔记_第四天_加加减减
using System.Linq; using System.Text; using System.Threading.Tasks; namespace 第四天_加加减减 { class Progr ...
- 【学习笔记】第四章 Python3核心技术与实践--列表与元组
前面的课程,我们了解了Python 语言的学习方法,并且带你了解了 Python 必知的常用工具——Jupyter.接下来我们正式学习 Python 的具体知识. 对于每一门编程语言来说,数据结构都是 ...
- Servlet控制台输出乱码问题
在如下图的配置页面: 在此行添加编码格式:
- 增删改查——DBUtils
利用QueryRunner类实现对数据库的增删改查操作,需要先导入jar包:commons-dbutils-1.6.利用QueryRunner类可以实现对数据步骤的简化. 1.添加 运用JDBC工具类 ...
- Unity子弹生成系统
子弹系统和粒子系统比较类似,为了创建和五花八门的子弹,例如追踪,连续继承,散弹等,需要一个拥有众多参数的子弹生成器,这里叫它Shooter好了. Shooter负责把玩各类子弹造型和参数,创建出子弹, ...
- Micrometer 快速入门
Micrometer为最流行的监控系统提供了一个简单的仪表客户端外观,允许仪表化JVM应用,而无需关心是哪个供应商提供的指标.它的作用和SLF4J类似,只不过它关注的不是Logging(日志),而是a ...
- uboot学习之uboot.bin的运行流程
上篇博客:http://www.cnblogs.com/yeqluofwupheng/p/7347925.html 讲到uboot-spl的工作流程,接下来简述一下uboot.bin的工作流程,这对应 ...
- 转:LinkedHashMap和HashMap的比较使用
import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashMap; import java.uti ...
- 机器学习之SVM调参实例
一.任务 这次我们将了解在机器学习中支持向量机的使用方法以及一些参数的调整.支持向量机的基本原理就是将低维不可分问题转换为高维可分问题,在前面的博客具体介绍过了,这里就不再介绍了. 首先导入相关标准库 ...
- jmeter 分布式疑难杂症 待完善
完善中....(可能不会完善了) 前景:在window调度机上配置好了jmeter相关的 jmx文件,因需搞分布式所以弄了几台linux. 但是jmx文件请求包含有bean shell脚本,需导入ja ...