2、java.lang.Integer
publicstaticintparseInt(Stringstr);//把String转成int型
3、java.lang.Double
publicstaticdoubleparseDouble(Stringstr);//把String转成double型
4、java.lang.String
publicbooleanequals(Objecto);//比较字符串是否相等
publicstaticStringvalueOf(intvalue);//整形转字符串
十八、数组
1、一维数组
(1)三要素:
数组名;数组类型;长度。
(2)使用4步骤:
1)声明并创建;2)赋值;3)计算元素;4)输出元素
(3)声明创建:
数据类型[]数组名=new数据类型[长度];
(4)length属性:
数组名.length//数组长度
数组名[下标]//访问一个元素,下标从0开始
(5)元素初始化:
1)数据类型[]数组名=new数据类型[]{值1,值2};
//声明创建数组的同时赋值;动态初始化
2)数据类型[]数组名={值1,值2};
//声明数组的同时赋值;静态初始化
(6)使用场合:
存储一堆数据时,且类型相同用,使用循环。
2、二维数组
(1)四要素:
数组名;数组类型;行数;列数
(2)使用4步骤:
1)声明并创建;2)赋值;3)计算元素;4)输出元素
(3)声明创建:
数据类型[][]数组名=new数据类型[行数][列数];
(4)length属性:
数组名.length//二级数组的行数
数组名[行下标].length//二维数组某行的列数
数组名[行下标][列下标]//访问一个元素,下标从0开始
(5)元素初始化:
1)数据类型[][]数组名=new数据类型[][]{{3,4},{},{}};
//声明创建数组的同时赋值;动态初始化
2)数据类型[][]数组名={{3,4},{},{}};
//声明数组的同时赋值;静态初始化
(6)使用场合:
当需要把一堆数据存储在一起,而每个数据又由多个分量构成时且数据类型相同,使用循环解题。
十九、值传递和引用传递
1、引用传递
场合:
方法调用时,需要方法的实参发生改变。
语法:
用类的对象或声明数组做方法的形参。
2、值传递
场合:
方法调用时,要求实参不发生改变。
语法:
用8个基本类型变量做方法形参。
二十、类间共享属性
1、一个类A的方法用到另一个类B的变量属性
(1)为类B添加公有的getXXX()方法,该方法返回变量属性
(2)用类B的对象作为类A方法的参数
2、一个类A的方法用到另一个类B的数组,对象,集合属性
(1)为类B添加公有的getXXX()方法,该方法返回数组,对象,集合属性
(2)用类B的对象作为类A方法的参数(或者类B的对象做类A的属性)
3、在一个类中定义公有静态属性,其他类可以任意使用。
4、场合:
一个类需要使用另一个的属性
二十一、Object类
1、本质:
一切类的父类
2、场合:
用Object做方法的形参;用Object做方法的返回值提高方法的通用性;
3、对于一个设计良好的类来说,最好覆盖equals()和toString()方法。
Java继承、多态、接口、异常、静态、内部类知识点
二十二、继承
1、场合:
多态时使用继承,关键字extends
2、构造方法
构造方法不可以被子类继承;子类的构造方法在运行之前自动调用父类的构造方法。
场合:
为子类继承父类的属性赋值
3、方法覆盖:
场合:
父类方法的功能不能满足子类的要求
定义:
类继承体系中,要求方法名称,参数,返回值必须完全相同,只有功能不同;访问权限子类必须比父类宽松;不能抛出新异常。
调用:
看new后面是哪个类就调用哪个类的方法;
4、属性覆盖
调用时看前面,表面上是哪个类型的就调用哪个类的属性
5、向上转型
场合:
提高方法的通用性
语法:
(1)可以用子类的对象直接给父类声明的引用赋值;
(2)方法的形参是父类的,用子类的对象做实参;
(3)方法的返回值类型是父类的,真正返回子类的对象;
6、向下转型
场合:
已经发生过向上转型,需要调用子类新添加的方法时
语法:
(子类名)父类对象;
7、Java是单一继承
二十三、super
1、代表当前类的父类对象
2、子类调用父类的构造方法:
super(实参)
3、调用父类被覆盖的方法:
super.方法名(实参)
二十四、final
1、final修饰类时,表示该类不可以被继承
2、final修饰方法时,表示该方法不可以被覆盖
3、final修饰数据时,表示该变量是一个常量,只可以被赋值一次,用大写
二十五、多态
1、本质
一个方法调用,不同场合实现不同功能
2、场合
改变程序功能,添加程序功能
3、方法重载步骤
(1)同一个类中多个方法名相同,参数的个数或类型不同
(2)根据实参和形参的结合决定调用哪个版本
4、方法覆盖步骤
(1)自定义子类继承父类并覆盖父类同名方法;(同一功能不同实现方案在不同类中)
(2)向上转型;(三种)
(3)父类引用调用覆盖方法(根据实际对象)
二十六、abstract
1、抽象方法
场合:
(1)某父类的某个方法永远不执行,为构成方法覆盖
(2)限定子类必须具备哪些方法.
语法:
用abstract修饰,没有方法体。
2、抽象类
场合:
(1)某个类中包含抽象方法
(2)某个类不允许创建对象
特性:
抽象类不可以创建对象;抽象类的子类必须实现全部抽象方法;抽象类中可以没有抽象方法;抽象类可以定义构造方法。
语法:
用abstract修饰类
二十六、接口
1、本质
特殊的类;接口的属性是公有静态常量,方法是公有抽象方法。
2、场合
(1)当父类的全部方法都必须被子类覆盖时用接口;
(2)多个父接口要求一个子接口必须具备什么方法;
(3)接口使多个无关的类(不可能属于一个父类)实现多态;
(4)用接口定义行业规范。
3、特性
接口不能直接创建对象;一个类只能继承一个父类,但可以实现多个接口;实现类必须实现接口的全部抽象方法。
4、使用步骤
分为定义和实现两步;定义接口使用interface,子类实现接口使用implements。
二十七、面向接口编程
1、要实现某功能,找一个已经存在的接口,创建接口实现类对象实现具体功能;
2、用接口描述标准和规范,用实现类去实现,程序的一切功能都找接口实现;
以后方法的形参、返回值,引用的数据类型尽量用接口。
3、接口和多态组合使用方便修改和扩展程序的功能。
二十八、异常
1、本质:
运行时期的错误,发生异常程序崩溃;
2、功能:
出现异常时汇报错误的位置和原因
3、常见异常类
ArithmeticException//数学异常
ArrayIndexOutOfBoundsException//数组下标越界
NullPointerException//空指针异常
ClassCastException//类型转型异常
NumberFormatException//错误参数
ClassNotFoundException//无法找到想要创建对象的类class文件
RuntimeException//运行时异常父类
IOException//受检查异常父类
Exception//异常的父类
4、三种处理异常的方法
1)改代码//场合:
发生运行时异常
2)try-catch-finally//场合:
处理受检查异常
3)throws
场合:
处理受检查异常;语法:
throws异常类;位置:
方法体{}前面。
5、throw人为抛出异常
1)语法:
throw异常类对象
2)场合:
1>系统没有提供某条件引发的异常类,需要自定义异常类,并且人为抛出异常
2>被调方法向主调方法传递信息
6、使用异常的四种场合
(1)程序运行后崩溃了出现异常的报错信息;
(2)eclipse开发程序编译阶段就报告有异常的错误,不允许执行;
(3)方法中有throw语句;
(4)调用了其他类的方法,该方法用throws子句声明抛出受检查异常。
7、运行时异常和受检查异常
受检查异常:
(1)不处理该异常,程序无法通过编译;
(2)用try和throws来处理。
运行时异常:
(1)不处理该异常,程序可以正常运行
(2)通过修改代码的方式处理。
二十九、静态
1、使用场合
(1)本类多个对象共享一个属性
(2)不用创建对象,通过类名直接调用方法;
2、静态属性
(1)static修饰属性称静态属性
(2)应用场合:
当类的多个对象共享属性时
(3)赋值:
创建静态属性量直接赋值,不能用构造方法赋值
(4)调用语法:
本类使用直接用属性名调用;其它类调用使类名.属性名调用。
3、静态方法
(1)static修饰的方法称静态方法
(2)应用场合:
不用创建对象直接用类名.方法名调用类的方法时。
(3)定义静态方法:
在方法的返回值数据类型前加static就能定义静态方法了。
(4)调用静态方法:
本类调用直接用方法名()调用;其它类调用合用类名.方法名()调用。
4、静态代码块
(1)格式:
与属性或方法的位置相同,用static修饰,{}括多条语句。
(2)场合:
为静态属性(类属性)的初始化。
(3)特性:
静态代码块只被执行一次,静态代码块早于构造方法执行。
5、静态特性
(1)静态成员只在类中存储一次,对象中不存储静态成员;
(2)静态成员归类所有,被本类的所有对象共享;
(3)静态方法只能直接使用本类的静态成员;非静态方法可以直接使用静态成员
(4)静态方法不能直接使用本类的非静态成员,必须先创建对象。
6、单例模式
(1)本质:
一种设计思想
(2)场合:
保证一个类只能创建一个对象
(3)实现方式一(饿汉模式)
1)构造方法私有化;
2)添加私有、静态的、本类的对象属性,并直接调用私有构造方法为其赋值。
3)定义公有的静态方法,该方法功能是返回本类私有对象属性。
(4)实现方式二(饱汉模式)
1)构造方法私有化;
2)添加私有、静态的、本类的对象属性。
3)定义公有的静态方法,第一次调用时用new创建并返回该类对象。
三十、内部类
1、场合
内部类可以无条件使用外部类的所有成员,并且只有外部类需要创建内部类对象。
2、分类
成员内部类、方法内部类、匿名内部类
3、语法
(1)成员内部类:
class外部类名{
class内部类名{
内部类体
}
外部类其他成员
}
(2)方法内部类:
class外部类名{
返回值类型方法名(形参){
class内部类名{
内部类成员
}
方法体
}
外部类其他成员
}
(3)匿名内部类:
内部类、子类、没有类名
new接口名/父抽象类名(){
内部类成员
}
4、this使用
内部类想引用外部类的对象语法格式:
用“外部类名.this”的形式。
5、匿名内部类的两种使用形式
(1)用父类的引用指向匿名类对象后,调用匿名类的方法;
(2)作方法的实参
6、匿名内部类特性
(1)内部类:
内部类可以使用外部类所有成员。
(2)子类:
可以覆盖父类的方法。
(3)没有类名:
借助父类的名字,定义类体和创建对象一体化,代码简洁。
三十一、String类
1、String类内部实现
使用char类型数组
2、String类的相关方法
String(Strings)
//用字符串创建一个String对象
String(char[]value)
//用一个字符数组创建一个String对象
String(char[]value,intoffset,intcount)
//用一个字符数组从下标offset开始的count个字符序列创建一个String对象
publicintlength()
//返回字符串的长度
publiccharcharAt(intindex)
//返回字符串中下标为index的实际字符
publicbooleanequals(ObjectanObject)
//比较两个字符串内容是否相等
publicbooleanequalsIgnoreCase(Strings)
//比较两个字符串内容是否相等,不区分大小写
publicstaticStringvalueOf(boolean b)
//把boolean型转化成String类对象
publicstaticStringvalueOf(inti)
//把int型转化成String类对象
publicintindexOf(charc)
//返回字符串中出现字符c的第一个位置下标,如果母串中没有该字符则返回-1
publicintindexOf(Stringstr)“studueunt”“u”
//返回字符串中出现字符串str的第一个位置下标
publicintindexOf(Stringstr,intfromIndex)
//返回字符串中从fromIndex开始出现str的第一个位置
publicintlastIndexOf(Stringstr)
//返回字符串中最后出现str的位置下标
publicStringtrim()
//返回将该字符串去掉开头和结尾空格后的字符串
publicbooleanstartsWith(Stringprefix)
//判断字符串是否以prefix字符串开头
publicbooleanendsWith(Stringsuffix)
//判断字符串是否以suffix字符串结尾
publicStringtoUpperCase()
//返回一个字符串为该字符串的大写形式
publicStringtoLowerCase()
//返回一个字符串为该字符串的小写形式
publicStringsubstring(intbeginIndex)
//返回该字符串从beginIndex开始到结尾的子字符串,beginIndex是索引,包括b