周总结
这一周学习的内容比较多,主要有第八章类的高级概念,第九章多态和抽象,第十章接口,第十一章异常处理以及第十二章常用类的部分内容。主要内容如下:
在第八章的学习过程中,主要讲解了java中类的一些高级概念,包括访问修饰符、封装、静态成员、初始化块等等。在访问修饰符中,我们知道四种修饰符的访问级别从大到小是public,protected,default和private,而要想封装的话就必须使类中的成员变量都是private,并且提供public方法访问这些成员变量的技术,当成员变量被声明为private,就相当于隐藏了类中的成员变量,因此,封装也叫做数据隐藏。而静态成员或方法是用关键字static修饰的,并且这些成员变量和方法是全局的,所以在调用时不需要实例化一个对象,任何其它类可以直接访问静态成员变量或调用静态方法。当然,static还有一种用法是,java类可以包含一个静态初始化块,静态初始化块是一组当类被JVM的类加载器加载时执行的语句。
在第九章的学习中,主要是多态和抽象,他们是从继承中引出的两个概念,多态允许对象以多种形式存在,而抽象则允许创建抽象类。在java中。使用动态绑定和重写机制来实现多态,主要有向上转型技术,instanceof关键字,动态绑定技术。向上转型是当低精度数据类型向高精度数据类型装换时实行自动转换,而向下转型是当高精度数据类型向低精度数据类型转换时,使用强制类型转换符进行的。在多态的主要应用中,多态参数是当方法的某个形式参数是一个引用的时候,与该引用兼容的任何对象都可以传递给方法,从而允许方法接受不同数据类型的形式参数。还有异构集合是创建一个不是同一类型,但是有共同父类的数据集合,不同对象的集合称为异构集合。而抽象类是通过关键字abstract来声明的,该关键字可以出现在类声明时class关键字前的任何地方,如果将一个方法声明为一个抽象方法有两个结果:第一,类也必须声明为抽象类;第二,任何子类必须重写抽象方法,除非子类本身也是抽象的。
在第十章的学习中主要学习了接口,接口与类有以下相似处:接口可以有任意数量的方法,接口名要与文件名匹配,接口不能被实例化,接口不包含任何构造器,接口中所有方法都是抽象的,接口中不能包含实例成员变量,若要出现成员变量,则必须将成员变量同时声明为static和final,一个接口不能被一个类继承,只能被一个类来实现。在java中,通过interface来声明接口,通过implements来实现接口,接口也可以用来暴露类的行为,允许类的用户通过接口的实现类来使用接口中的方法,并且接口也可以用于强制一个类具有某些行为。
在第十一章的学习中主要是异常处理和捕获异常,在java中,通常在一个方法中使用try和catch关键字来捕获异常,try里面是被保护的代码,而catch语句包含我们想要捕获的异常的类型声明。当try块中被保护的代码产生了多个异常时,则就需要在try后面跟随多个catch块,但是catch块不能随意列出,必须按照由小到大的顺序。如果一个方法没有处理检查异常,则就要使用throws关键字来声明异常。我们也可以使用throw关键字来抛出异常,但是throw语句将导致当前代码立即停止执行,而且异常将被抛给调用栈中的前一个方法。Finally用于在try块后创建一个代码块,finally代码块总会执行,不管异常是否发生。
在第十二章的学习中,初步学习了System类中的一些常用方法,还有String类的一些方法,比较了StringBuffer和StringBuilder的运行差异。
以上就是本周学习内容的总结。