一:静态内部类:放在外部类的成员位置,可以访问所有静态成员,可以添加任意的访问修饰符,构造器在构造对象时调用
二:枚举类:把具体的对象一个一个例举出来的类,用于对象的固定化,防止乱创建对象,可以自定义枚举,也可以用enum(替代class)来实现枚举,如果使用无参构造器创建常量,则可以省略(),枚举对象那要放在枚举类行首;
枚举类不能继承任何类,因为有一个隐式继承类ENUM,enum仍然可以实现接口
三.1.override注解重写方法,只能修饰方法,不能修饰其他的。2.Deprecated用于表示某个程序元素已经过时,可以修饰类方法字段包参数等 3.SuppressWarning镇压警告,通常放在类上。
//编程思想:将具体的要求封装成方法,将构造器私有化可以防止创建对象,匿名内部类不需要实现方法和继承接口,只需要在类里面调用接口里的方法即可
四:异常:用try catch处理,即使出现了异常,程序也可以运行,若异常发生,则进入catch块中,若无异常,则顺序执行try,不会进入catch.运行类的异常编译器检测不出来,编译类异常必须处理(try或者throw二选一),运行时异常可以不做处理因为这类异常黑普遍。运行异常:数组越界,空指针,算数异常,类型转换异常。异常处理的方式:1.try-catch-finally程序员在代码中捕获的异常,即自处理;2.throws将发生的异常抛出,交给调用者(方法)处理,最顶级的处理者就是jvm,如果程序员没有显示的处理异常(即try-catch-finally)默认采用throws。Initeger.parseint(String )用于将整数形式的字符串转换为整数。子类重写父类方法时,对于抛出的异常要么是同一个异常,要么是父类抛出异常的子类型
在try-catch-finally终止前要先输出finally的内容,比如catch中最后一行是return,要等到finally的内容结束后再retrun。
五.wrapper包装类:
包装类型可以与基本数据类型相互转换。只要有基本数据类型,当在判断相等时,都是判断值是否相等。
String类:创建对象有两种方式:直接赋值(String s ="hspdu");调用构造器(String s2 = new String ("hspdu"))。两种方式的区别:第一种是在常量池中查找是否有hspdu常量,有的话则直接将栈中的s指向该常量的地址;第二种是在堆里面开辟空间指向常量池的该常量地址,栈里的s2指向堆空间里的所开辟出来的地址。字符串是不可变的,一旦一个字符串对象被分配,其内容是不可变的,字符串是常量对象,s2是去引用这个对象.