1.异常的限制 当覆盖方法的时候,仅仅能抛出在基类方法的异常说明里列出的那些异常. 这意味着,当基类使用的代码应用到其派生类对象的时候,一样能够工资,异常也不例外. 以下的样例是在编译时施加在异常上面的限制: public class BaseBallException extends Exception {} public class Foul extends BaseBallException{} public class Strike extends BaseBallException{}…
1.异常也是对象 标准异常类都有两个构造器,一个默认,一个接受字符串. 抛异常与方法返回类型不同,但有相似效果使当前方法退出并返回,抛异常可以看作是一种不同的返回机制.(异同点不必深究) Throwable类对象可被任意异常抛出,它是异常的根类. 异常对象中仅有的就是异常类型,其他内容一般没有. 一个方法内部或者内部调用其他方法抛出异常,这个方法就会在抛出异常过程中结束. 标识符id可能用不到但不能不写,catch要紧跟在try块之后,匹配到最合适的异常后进入catch之后的catch不再匹配,…
1.基本enum特征 所有创建的枚举类都继承自抽象类 java.lang.Enum; 一个枚举类,所有实例都要在第一句写出以 ,隔开. 如果只有实例最后可以不加 : 枚举类因为继承了Enum,所以再不能继承别的类,任何类也不能继承枚举类(构造器默认为private). public enum Color { RED, BLUE, YELLOW, PURPLE } 注意 :RED,BLUE 这些是由 enum Color类调用默认private构造器创建的实例对象,和普通class相比只不过enu…
1 数组 数组和容器比较,数组的优点也只剩访问效率高这一点了. 2 数组是第一级对象 数组也是一个对象,和其他普通对象一样在堆中创建, int[ ] arr  arr是数组的引用. 可以隐式创建数组对象,也可以new显式创建数组对象 int[] ints = {1 ,8 ,9}; //聚集初始化 /*动态聚集初始化,任意位置创建并初始化, * 有时候传一个数组类型参数时代码更简单*/ int[] iArr = new int[]{2 , 5 , -12 , 20}; int[] arr = ne…
1 泛型 “泛型”意思就是适用于许多类型. 使用泛型的目的之一: 指定容器持有什么类型,让编译器确保正确性,而不是在运行期发现错误. 这个容器可以看成是有其他类型对象作为成员的类,而不单单只是JDK中的容器类. 2 简单的泛型 2.1 元组: 元组是对象,是一个将多个对象打包存储于其中的单一对象.Java中没有元组这个类库,Python中有元组这一概念. 可以通过泛型构建自己的元组类库. class TwoTuple<A,B>{ public final A first; public fin…
1.RTTI:在运行时识别一个对象类型 JAVA在运行时 有时要 识别对象和类的信息这个机制叫RTTI.Java提供了两种机制去做这件事.传统的RTTI 和 反射. 传统的RTTI  假定编译时就已经知道了所有的类型. 反射   允许在运行时发现和使用类型信息 传统的RTTI 在编译期通过Class文件识别类型信息,反射在运行期通过Class文件识别类型信息. Java类型转换都发生在运行时期. 2.Class对象 Class对象是由Class这个类产生的,它包含了与某个类有关的信息. 每个类都…
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…
如何创建一个包: 比如创建一个包名为com.huawei 则在一个目录下如(d:\java)创建目录com/huawei 然后在huawei目录下创建一个文件Assist.java package com.huawei; public class Assist { public void show() { System.out.println("hello from Assist"); } } 注意:包名要为com.huawei 然后d:\java要在环境变量classpath中 cl…
本章提到的关于==的部分,一个完整的实验如下: class Test { public static void main(String[] args) { Integer i = new Integer(47); Integer j = new Integer(47); Integer i1 = 47; Integer j1 = 47; int i2 = new Integer(47); int j2 = new Integer(47); int i3 = 47; int j3 = 47; Sy…
覆盖私有方法 class Father { private void f() { System.out.println("Father::f()"); } public static void main(String[] args) { Father father = new Son(); father.f(); //输出:Father::f() } } class Son extends Father { public void f() { System.out.println(&q…