final关键字类似const:

 import java.util.*;

 public class FinalData {
static Random rand = new Random(47);
final int valueOne = 9;
final int i4 = rand.nextInt(20);
static final int INT_5 = rand.nextInt(20);
public static void main(String[] args) {
FinalData f = new FinalData();
//f.valueOne = 7;
//f.i4 = 7;
System.out.println(f); FinalData f1 = new FinalData();
System.out.println(f1);
}
public String toString() {
return
"valueOne = " + valueOne
+ " " + "i4 = " + i4
+ " " + "INT_5 = " + INT_5;
}
}

注意到:i4和INT_5的差别:类的不同对象中INT_5只在地一个对象创建的时候初始化一次,而i4则在每个对象创建的时候初始化一次。

关于名字屏蔽和C++的原则是不同的

C++中子类的重载函数会屏蔽掉基类中的其他函数:

 #include <iostream>

 class Homer {
public:
char doh(char c) {
std::cout << "doh(char)" << std::endl;
return 'd';
} float doh(float f) {
std::cout << "doh(float)" << std::endl;
return 1.0f;
}
}; class Milhouse {}; class Bart : Homer {
public:
void doh(Milhouse& m) {
std::cout << "doh(Milhouse)" << std::endl;
}
}; int main() {
Bart b;
//b.doh(1);
b.doh('x');
//b.doh(1.0f);
Milhouse m;
b.doh(m);
return ;
}

而java不会

 class Homer {
char doh(char c) {
System.out.println("doh(char)");
return 'd';
} float doh(float f) {
System.out.println("doh(float)");
return 1.0f;
}
} class Milhouse {} class Bart extends Homer {
void doh(Milhouse m) {
System.out.println("doh(Milhouse)");
} @Override char doh(char c) {
System.out.println("Bart:doh(char)");
return 'c';
}
} public class Hide {
public static void main(String[] args) {
Bart b = new Bart();
b.doh(1);
b.doh('x');
b.doh(1.0f);
b.doh(new Milhouse());
}
}

还有就是要注意初始化顺序

 class Insect {
Insect() {
System.out.println("Insect::Insect()");
} static int i = printInit("static Insect::i"); static int printInit(String s) {
System.out.println(s);
return 5;
} int j = printInit("Insect::j");
} public class Beetle extends Insect {
Beetle() {
System.out.println("Beetle::Beetle()");
} public static void main(String[] args) {
System.out.println("Beetle::main()");
new Beetle();
} int k = printInit("Beetle::k");
static int l = printInit("static Beetle::l");
}

Java编程思想读书笔记_第7章的更多相关文章

  1. Java编程思想读书笔记_第6章

    如何创建一个包: 比如创建一个包名为com.huawei 则在一个目录下如(d:\java)创建目录com/huawei 然后在huawei目录下创建一个文件Assist.java package c ...

  2. Java编程思想读书笔记_第三章

    本章提到的关于==的部分,一个完整的实验如下: class Test { public static void main(String[] args) { Integer i = new Intege ...

  3. Java编程思想读书笔记_第8章

    覆盖私有方法 class Father { private void f() { System.out.println("Father::f()"); } public stati ...

  4. Java编程思想读书笔记_第6章(访问权限)

    四种访问权限: public private 包访问权限 protected 如果没有明确指定package,则属于默认包 package access.dessert; public class C ...

  5. Java编程思想读书笔记_第二章

    java对于将一个较大作用域的变量“隐藏”的场景会有保护:编译告警.比如: int x = 5; { int x = 6; } 但是对于类中方法的局部变量和类成员变量确是可以重名的,比如 class ...

  6. java编程思想读书笔记 第十二章 通过异常处理错误(下)

    1.异常的限制 当覆盖方法的时候,仅仅能抛出在基类方法的异常说明里列出的那些异常. 这意味着,当基类使用的代码应用到其派生类对象的时候,一样能够工资,异常也不例外. 以下的样例是在编译时施加在异常上面 ...

  7. JAVA编程思想读书笔记(五)--多线程

    接上篇JAVA编程思想读书笔记(四)--对象的克隆 No1: daemon Thread(守护线程) 参考http://blog.csdn.net/pony_maggie/article/detail ...

  8. JAVA编程思想读书笔记(四)--对象的克隆

    接上篇JAVA编程思想读书笔记(三)--RTTI No1: 类的克隆 public class MyObject implements Cloneable { int i; public MyObje ...

  9. JAVA编程思想读书笔记(三)--RTTI

    接上篇JAVA编程思想读书笔记(二) 第十一章 运行期类型判定 No1: 对于作为程序一部分的每个类,它们都有一个Class对象.换言之,每次写一个新类时,同时也会创建一个Class对象(更恰当的说, ...

随机推荐

  1. MongoDB小结16 - find【查询条件$in】

    $in可以查询一个键的多个值 举例,每个人有爱好,假定为一个,数据太多,咱们用第二个参数来过滤一下 db.user.find({},{"_id":0}) { "hobby ...

  2. 原想着mysql里放些文件什么的,查完资料还是算了

    三种东西永远不要放到数据库里 1.图片,文件,二进制数据,文件还是放入文件服务器吧或者分布式文件系统 2.短生命期数据 3.日志文件 mysql中一张表的数据是全部在一个数据文件中的.如果大字段的数据 ...

  3. 【CV论文阅读】生成式对抗网络GAN

    生成式对抗网络GAN 1.  基本GAN 在论文<Generative Adversarial Nets>提出的GAN是最原始的框架,可以看成极大极小博弈的过程,因此称为“对抗网络”.一般 ...

  4. Akka并发编程——第五节:Actor模型(四)

    本节主要内容: 1. 停止Actor 1. 停止Actor (1)通过ActorSystem.shutdown方法停止全部 Actor的执行 /* *停止Actor:ActorSystem.shutd ...

  5. .Net 与 Javascript 混合编程系列

    之前的文章有提到 edge 和 nodejs 交互,通过node的模块为C# 提供一些扩展,这个还是比較方便. 这里说下为什么要使用js. 1.SharpKit是一个用于在编译时将C#语言转换为Jav ...

  6. 开源 免费 java CMS - FreeCMS2.1 会员3.9我的收藏

    项目地址:http://www.freeteam.cn/ 我的收藏 从左側管理菜单点击我的收藏进入.在这里能够查看当前登录会员的全部收藏记录. 查看收藏 点击标题能够查看收藏内容. 删除收藏 选择收藏 ...

  7. Photoshop制作的ico图标方法

    photoshop是打不开ico的.只是能够通过安装插件实现. 插件点击这里能够下载. 用法,解压后的插件文件 粘贴到:  (英文版路径) /program files/adobe/photoshop ...

  8. J2SE基础:11.异常处理

    1:异常的概念: 异常是程序在执行时发生的事件(异常发生在执行期间). 程序出现错误.打断原本的运行流程. 2:Java中处理异常. 在Java中.异常被封装成一个对象.(属性和方法) 3:异常产生 ...

  9. CF#315 C

    #include <cstdio> #include <iostream> #include <algorithm> #include <queue> ...

  10. HDU 1023 Catalan数+高精度

    链接:HDU 1023 /**************************************** * author : Grant Yuan * time : 2014/10/19 15:5 ...