1. 类: 类的基本概念:是用来封装一类对象的状态和方法,类是用来定义对象的模板。是由属性和方法组成;类的属性全部保存在对内存中,全部的方法保存在全局代码中。 抽象类: 包含一个抽象方法的类称为抽象类,抽象方法是只声明而未实现的方法,所有的抽象方法必须使用abstract关键字声明,所有的抽象类也需要使用abstract关键字声明,对于抽象类,不能直接进行实例化的操作,但是可以声明,如果要想使用抽象类,则必须依靠子类,抽象类是必须被子类继承的,而且被继承的子类需要实现抽象类中的全部抽象方法; 抽象类中允许有构造方法,但是构造方法是不能直接调用的,是交给子类去调用的,子类对象的实例化过程中永远是先调用父类中的构造方法---实际上来讲 抽象类就比普通类多了一个抽象方法而已 抽象类中的属性如果要想初始化,则肯定还是依赖于构造方法 内部类: 作用 1.内部类可以很好的实现隐藏,也就是封装性。一般的非内部类,是不允许有 private 与protected权限的,但内部类可以 2.内部类拥有外围类的所有元素的访问权限 3.可是实现多重继承 4.可以避免修改接口而实现同一个类中两种同名方法的调用 在一个类的内部还有另外一个类。内部类的缺点:是程序的结构混乱。内部类的唯一优点:在于可以方便访问外部类中的私有成员。如果要在外部类中直接使用内部类的实例化对象 外部类.内部类 内部类对象=外部类实例.new 内部类实例() 一个内部类如果使用static关键字声明的话,则此内部类就将成为外部类,可以直接通过外部类.内部类的形式访问 内部类可以在任意地方使用,如在方法中声明方法中定义的内部类可以直接访问外部类的各个成员,但是如果要访问方法中的参数,则参数中要使用final关键字; 普通代码块{ } 构造块:直接在类中定义的代码块( 构造块会重复调用多次;构造块会优先与构造方法执行) 静态块:用static关键字声明的代码块:主要目的是用来为静态属性初始化化。优先于主方法和构造块执行;而且只执行一次; 匿名类: 匿名内部类:在抽象类和接口的基础上发展起来的,在一般的开发中匿名内部类中使用较少,现在只有两种情况下可以经常看到匿名内部类的使用: Java图形界面 Spring开发框架 异常类:Exception 异常与错误: 1.异常是在一个程序执行过程中出现的一个事件,它中断了正常指令的执行 2.偏离了可接受代码的一个动作或实例就是错误 异常结构的分类: Throwable Error Exception 未检查异常(运行时) 已检查异常(编译时) 对异常处理方式-捕获: try{ <可能出现异常的代码块> }catch(Exception e){ <如果try中代码出现异常,则执行catch中的代码> } **注意:catch()代码块可以存在多个,但是catch中的异常类型应该由小到大 try{ <可能出现异常的代码块> }catch(Exception e){ <如果try中代码出现异常,则执行catch中的代码> }finally{ <无论有无异常都会被执行的代码块> } **注意:try{}finally{}可以搭配使用 对异常的处理-抛出:throws表明当前函数不处理出现的异常,将异常抛出,交给调用方去处理(处理的方式:捕获、继续抛出) throw关键字,表明被捕获的异常没有经过处理直接抛出 在继承关系中,子类覆盖父类的方法,抛出的异常类型不能比父类更宽泛 所谓异常处理,就是指程序在出现问题时依然可以正确的执行完 异常处理格式:try {可能出现的异常语句} Catch(异常类,异常对象){异常类,异常对象}{异常处理}..finaly{异常出口} 对于java来讲,当程序出现异常,实际上都是产生了一个类的实例化对象 异常类最大的父类:Throwable Error:一般表示JVM错误,与程序无关 Exception:一般指的是程序的错误,所以一般开发中如果想要进行程序的处理,基本上都是使用此类表示; Class类: 包装类:包装类用于基本数据类型的区别: 1.包装类是对基本数据类型的一种扩展,定义了很多类型之间的转换方法 2.针对一些集合类型,他们要求我们存入集合的是Object,那么基本数据类型不能满足要求,就只能放包装类的对象 数值型:Integer,Byte,Short ,Float,Double,Long都是Nummber的子类 其他类型:Character,Boolean---Object子类; 装箱操作:Integer i=new Integer(i); 拆箱操作:int j=i.intValue(); jDk 1.5之后增加了很多新特性如:foreach 可变参数,即自动装箱拆箱操作; Integet i=I; 自动装箱操作 int j=i; 自动拆箱操作 Object类: 如果一个类中没有明确指定继承那个父类,则默认情况下就是继承Object类;任何类的对象都可以使用object进行接收,不光可以接收类的引用,只要是引用数据类型都可以使用object类接收 对于一个完整的类来讲,应该覆写Object类中的以下三个方法: toString :对象打印时调用public String toString() equals():对象比较时调用,实际上String类就已经覆写好了此方法 public Boolean equals(object obj) hasCode() 暂时不看 Object可以接收任意的应用数据类型的引用 |