您的位置:首页 > 移动开发 > Android开发

关于android开发中涉及到的java知识:面向对象(三)

2014-10-19 11:13 375 查看
面向对象(三)

上篇博客讲诉的是java中面向对象的三大特征:封装,多态,继承。由于上篇博客对多态讲的不是很详细,所以在这里进行补充,另外对java中自带的包中的内容进行罗列,外加学习继承与组合。

多态:变量强制转换:(type)variable.

注:1.基本类型间的转换只能在数值类型(整数型.字符型.浮点型)间进行转换,数值类型与布尔型无法相互转换。

2.引用类型间的转换只能在具有继承关系的两个类型间进行,如果将两个没有继承关系的引用类型进行转换则会在编译时就出错,如果试图把一个父类实例转换为子类类型,则这个对象不许是子类实例才行,否则将在运行时引发ClassCastException异常。

那么如何避免出现ClassCastException异常呢?先用instanceof运算符进行判断是否可以成功转换即可。

if(objPri instanceof String)

{

String str = (String)objPri;

}

instanceof:它的前一个操作数通常是一个引用类型的变量,后一个操作数通常是一个类(也可为接口),它用于判断前面的对象是否为后面的类,或其子类.实现类的实例。如果是,返回true,否则返回false。

例:hello instanceof String

java常用包:

java.lang:包含java核心类,如String,Math,System,Thread类,使用时无需使用import语句导入。

java.util:包含大量工具类/接口和集成框架类/接口,如Arrays,List,Set等。

java.net:包含网络编程相关的接口/类。

java.io:包含java输入输出编程相关的类/接口。

java.text:包含java格式化相关的类。

java.sql:包含java进行JDBC数据库编程相关的类/接口。

java.swt:包含抽象窗口工具集的相关类/接口,主要用于构造图形用户界面(GUI)程序。

java.swing:包含swing图形用户界面编程的相关类/接口,用于构建平台无关的GUI程序。

下面将进如继承与组合的内容:

继承是实现类重用的重要手段,但它会破坏封装;组合也是实现类重用的重要方式,但它能提供更好的封装性。

子类扩展父类时,子类可从父类继承得到Field和方法,如果访问权限允许,子类可以直接访问父类的Field和方法,十分方便,但是问题也十分明显,父类的封装性被严重破坏了,所以在设计父类时要遵守:

1.尽量隐藏父类的内部信息,即把父类的所有Field设置为private访问类型,不让子类直接访问父类的Field.

2.让子类无法对父类中仅为辅助功能的其他方法进行改动,全部设置为private访问类型,若想父类中的方法被外界调用而不想被外界修改,可用final修饰;若想父类中的某个方法被子类重写而不希望被其他类自由访问,可用protect来修饰。

3.尽量不要在父类构造器中调用将要被子类重写的方法。

组合就是把一个类当做另一个类的组成成分。

初始化块:下面补充初始化块的学习:初始化块是java类中可出现的第4种成员,初始化块的修饰符只能是static。

它的表达形式为:

[修饰符]{

//初始化块的可执行代码

......

}

当程序运行时,先执行初始化代码块中的内容,在执行构造器中的内容。

在初始化块前加static,是初始化块变为静态初始化块,系统将在类初始化阶段执行静态初始化块,因此,静态初始化块总是比普通初始化块先执行。

今天先学到这里吧。嘻嘻!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: