本周学习知识点:
1.面向对象编程的三大特征:封装,继承和多态
2.面向对象编程进阶:静态初始化块,final修饰符,抽象类与接口,内部类与匿名类
常用的java类:object类,String StringBuffer StringBuilder类,包装类,math类
本周学习收获:
1.初始化块:(1)创建对象时,系统总是先调用该类定义的初始化块;(2)普通初始化块先定义先执行;(3)初始化块不能通过类,对象调用(4)在构造方法前执行
2.静态初始化块:(1)系统在类初始化阶段执行静态初始化块,比普通初始化块先执行(2)
3.final修饰符:(1)类变量和实例变量(一旦获得了初始值之后就不可被改变)(2)final修饰局部变量(可先指定默认值以后不能再赋值,若没有指定默认值可在后面对final赋初始值但只能一次)
(3)final修饰的基本类型变量值不能改变,但是引用类型的地址不会改变,但是这个对象的值是可以改变的
4.final修饰的方法不可被重写;
5.抽象方法:没方法体的方法;返回值类型前有关键字abstract;是单行语句,以分号结束;不能有static修饰符
6.抽象类:只含抽象方法的类,继承抽象父类,但没完全实现父类包含的抽象方法。
抽象类的作用:子类可以重用抽象父类中的属性和非抽象方法;
7.接口和类:相同:都有成员变量和成员方法;也可形成继承关系;不同:接口的属性都是常量;接口的方法都是抽象方法;
定义后不能直接创建对象,必须由类实现接口后创建对象;
8.内部类:是外部类的成员,内部类对象不能单独存在,必须依赖一个外部类对象
9.匿名类:不能是抽象类,不能有构造方法,不能定义任何静态成员、方法、类,不能有public、protected、private、static
10.object类:
equals(Object obj):比较两个对象是否相等。仅当被比较的两个引用变量指向同一对象时,equals()方法才返回true
hashCode():返回对象的哈希码。HashTable和HashMap会根据对象的哈希码来决定它的存放位置。
toString():返回当前对象的字符串表示,格式为“类名@对象的十六进制哈希码” 。
finalize():对于一个已经不被任何引用变量引用的
11.String类:
String():创建一个内容为空的字符串“”。
String(String value):字符串参数指定字符串的内容。
String(char[] value):字符数组参数指定字符串的内容。
String(byte[] bytes):根据本地平台默认的字符编码,由字节数组构造一个字符串。
String(byte[] bytes,String charsetName):根据参数charsetName指定的字符编码,由字节数组构造一个字符串。
String类有以下常用方法:
length():返回字符串的字符个数。
char charAt(int index):返回字符串中index位置上的字符,其中index的取值范围是0~字符串长度-1。
getChars(int srcBegin,int srcEnd,char dst[],int dstbegin):从当前字符串中拷贝若干字符到参数指定的字符数组dst[]中。从srcBegin位置开始取字符,到srcEnd-1位置结束,dsbegin为提取的字符存放到字符数组中的起始位置。
见备注
12.StringBuffer类:
String类和StringBuffer类有以下相同点:
String类和StringBuffer类都用来处理字符串。
String类和StringBuffer类都提供了length()、toString()、charAt()和substring()方法,它们的用法在两个类中相同。
对于String 类和StringBuffer类,字符在字符串中的索引位置都从0开始。
两个类中的substring(int beginIndex,int endIndex)方法都用来截取子字符串,而且截取的范围都从beginIndex开始,一直到endIndex-1为止,截取的字符个数为endIndex-beginIndex
String类和StringBuffer类有以下不同点:
String类是不可变类,而StringBuffer类是可变类。
String类覆盖了Object类的equals()方法,而StringBuffer类没有覆盖Object类的equals()方法
两个类都覆盖了Object类的toString()方法,但各自的实现方式不一样。
String类对象可以用操作符“+”进行连接,而StringBuffer类对象之间不能通过操作符“+”进行连接。
13.包装类:包装类都覆盖了Object类的toString()方法,以字符串的形式返回包装对象所表示的基本类型数据
14封装类:自动封装/拆封是指在基本数据类型值和其对应的包装类对象之间完成自动转换的过程。
15Math类:
abs():返回绝对值。
ceil():返回大于或等于参数的最小整数。
floor():返回小于或等于参数的最大整数。
max():返回两个参数的较大值。
min():返回两个参数的较小值。
random():返回0.0和1.0之间的double类型的随即数,包括0.0,但不包括1.0。
round():返回四舍五入的整数值。
sqrt():平方根函数。
pow():幂运算。
StirngBuilde与StringBuffer的比较
java.lang.StringBuilde
java.lang.StringBuilder 一个可变的字符序列是5.0新增的。此类提供一个与 StringBuffer 兼容的 API,但不保证同步。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快。两者的方法基本相同。