java编程思想-复用类(2)
如果java的基类拥有某个已被多次重载的方法名称,那么在导出类中重新定义该方法名称并不会屏蔽其在基类中的任何版本(这一点与C++不同)
class Homer
{
char doh(char c)
{
System.out.println("char");
return c;
}
float doh(float f)
{
System.out.println("float");
return f;
}
} class Milhouse{} class Bart extends Homer
{
void doh(Milhouse m)
{
System.out.println("Milhouse");
}
} public class test
{
public static void main(String[] args)
{
Bart b = new Bart();
b.doh(1);
b.doh('x');
b.doh(1.0f);
b.doh(new Milhouse());
}
}
/*
float
char
float
Milhouse
*/
关键字protect:就类用户而言,这是private的,但对于任何继承于此类的导出类或其他任何位于同一个包内的类来说,它却是可以访问的
final数据:1)一个永不改变的编译时常量 2)一个在运行时被初始化的值,而你不希望它被改变
对于基本类型,final使数值恒定不变,而用于对象引用,final使引用恒定不变。一旦引用被初始化指向一个对象,就无法再把它改为指向另一个对象,但是,对象自身却是可以被修改的。
空白final指被声明为final但又未给定初值的域,无论什么情况, 编译器都确保空白final在使用前必须被初始化,且初始化后就不再改变。
java允许在参数列表中以声明的方式将参数指明为final,这意味着你无法在方法中更改参数引用所指向的对象。
class test
{
void cal(final String s)
{
s = new String();//出错
}
}
使用final方法的原因:想要确保在继承中使方法行为保持不变,不会被覆盖。
当将某个类定义为final时(通过将final置于它的定义之前),该类不允许被继承。
首先初始化基类的static变量,然后初始化派生类的static变量。在基类构造器完成之后,实例变量按其次序被初始化,最后,构造器的其余部分被执行。
class insect
{
private int i = 9;
protected int j;
insect()
{
System.out.println("i = " + i + ",j = " + j);
j = 39;
}
private static int x1 = printInit("insect.x1");
static int printInit(String s)
{
System.out.println(s);
return 47;
}
} public class test extends insect
{
private int k = printInit("test.k");
public test()
{
System.out.println("k = " + k);
System.out.println("j = " + j);
}
private static int x2 = printInit("test.x2");
public static void main(String[] args)
{
System.out.println("test constructed");
test t = new test();
}
}
/*
insect.x1
test.x2
test constructed
i = 9,j = 0
test.k
k = 47
j = 39
*/
java编程思想-复用类(2)的更多相关文章
- java编程思想-复用类总结
		今天继续读<java 编程思想>,读到了复用类一章,看到总结写的很好,现贴上来,给大家分享. 继承和组合都能从现有类型生成新类型.组合一般是将现有类型作为新类型底层实现的一部分来加以复用, ... 
- java编程思想-复用类
		/* 一个文件中只能有一个public类 并且此public类必须与文件名相同 */ class WaterSource { private String s; WaterSource() { Sys ... 
- Java编程思想(四) —— 复用类
		看了老罗罗升阳的专訪,不由自主地佩服,非常年轻,我之前以为和罗永浩一个级别的年龄.也是见过的不是初高中编程的一位大牛之中的一个,专訪之后.发现老罗也是一步一个脚印的人. 别说什么难做,做不了.你根本就 ... 
- 33.JAVA编程思想——JAVA IO File类
		33.JAVA编程思想--JAVA IO File类 RandomAccessFile用于包括了已知长度记录的文件.以便我们能用 seek()从一条记录移至还有一条:然后读取或改动那些记录. 各记录的 ... 
- Java编程思想 (1~10)
		[注:此博客旨在从<Java编程思想>这本书的目录结构上来检验自己的Java基础知识,只为笔记之用] 第一章 对象导论 1.万物皆对象2.程序就是对象的集合3.每个对象都是由其它对象所构成 ... 
- Java编程思想总结笔记The first chapter
		总觉得书中太啰嗦,看完总结后方便日后回忆,本想偷懒网上找别人的总结,无奈找不到好的,只好自食其力,尽量总结得最好. 第一章 对象导论 看到对象导论觉得这本书 目录: 1.1 抽象过程1.2 每个对象 ... 
- Java编程思想读书笔记(一)【对象导论】
		2018年1月7日15:45:58 前言 作为学习Java语言的经典之作<Java编程思想>,常常被人提起.虽然这本书出版十年有余,但是内容还是很给力的.很多人说这本书不是很适合初学者,我 ... 
- Java编程思想(前十章)
		Java编程思想 有C++编程基础的条件下, 前10章可以快速过一下,都是基本语法,不需要花太多时间. 着重中后段的一些章节,类型信息.泛型.容器.IO.并发等. 中文翻译版 阅读地址 对于一个架构师 ... 
- 《Java编程思想第四版完整中文高清版.pdf》-笔记
		D.2.1 安插自己的测试代码 插入下述“显式”计时代码,对程序进行评测: long start = System.currentTimeMillis(); // 要计时的运算代码放在这儿 long ... 
随机推荐
- [Windows Server 2008] IIS配置伪静态方法(Web.config模式的IIS rewrite)
			★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频.★ 本节我们将带领大家:安装伪静态(w ... 
- 学习嵌入式开发板的Android平台体系结构和源码结构
			本文转自迅为论坛资料:http://www.topeetboard.com 推荐学习嵌入式开发板平台:iTOP-4412开发板 下面这张图出自Google官方,展示了Android系统的主要组成部分. ... 
- java正则表达式进阶运用20181023
			直接上代码. package org.jimmy.autotranslate20181022.test; import java.util.regex.Matcher; import java.uti ... 
- PHP 下基于 php-amqp 扩展的 RabbitMQ 简单用例 (四) -- Push API 和 Pull API
			RabbitMQ 中针对消息的分发提供了 Push API (订阅模式) 和 Pull API (主动获取) 两种模式. 在 PHP 中, 这两种模式分别通过 AMQPQueue 类中的 consum ... 
- 【VScode】使用VScode 来写markdown时序图
			准备工作 在VScode中下载插件Markdown Preview Enhanced插件 创建一个.md文件 在VScode中打开文件,界面内点击右键可以看到Open preview to the s ... 
- “完美”解决微信小程序购物车抛物动画,在连续点击时出现计算错误问题,定时器停不下来。
			最近做,微信点餐小程序,遇到添加商品时出现抛物动画,参考借鉴了这位大神的方法 https://www.cnblogs.com/greengage/p/7815842.html 但出现了一个问题,连续点 ... 
- java IO流 内容整理
			在java中,对数据的输入和输出操作以流的方式进行.(注:对文件的操作用io.File类,但不能对文件中的内容进行操作) 一.IO流的分类: 按数据流的方向不同,可以分为输入流和输出流: 按处理数据的 ... 
- Python 函数递归-三元表达式-列表生成式-字典生成式-匿名函数-内置函数
			上节课复习: 1. 无参装饰器 def 装饰器名字(func): def wrapper(*args,**kwargs): res = func(*args,**kwargs) return res ... 
- [Python3网络爬虫开发实战] 1.2.1-Requests的安装
			由于Requests属于第三方库,也就是Python默认不会自带这个库,所以需要我们手动安装.下面我们首先看一下它的安装过程. 1. 相关链接 GitHub:https://github.com/re ... 
- JS实现标签页切换效果
			本文实例为大家分享了JS标签页切换的具体代码,供大家参考,具体内容如下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ... 
