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

面向对象(三)
上篇博客讲诉的是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,是初始化块变为静态初始化块,系统将在类初始化阶段执行静态初始化块,因此,静态初始化块总是比普通初始化块先执行。
今天先学到这里吧。嘻嘻!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值