可变参数
JDK中具有可变参数的类Arrays.asList()方法。
分别传多个参、传数组,传数组又传参的情况。
注意:传入基本数据类型数组的问题。
从JDK 5开始, Java 允许为方法定义长度可变的参数。
语法:数据类型…变量名。
可变长参数是Object[] 数组。(可变参数里存的是对象数组)
JDK中的典型应用:
Arrays.asList(T…a)是jdk中的典型应用。
需求:对若干个整数进行求和
可变参数的细节
1、声明:
在一个方法中,最多只能有一个可变参数。可变参数只能放在参数列表的最后面。
2、调用:
当使用可变参数时,可以传0或多个参数。当使用可变参数时,也可以传一个数组进去,就表示多个参数。
3、使用:
在方法内部使用时,就是在使用一个数组。当调用时没有传参数时(传了0个),这时在方法内部的参数数组是有值的(不为null),但长度为0.
四、对象包装器与自动打包
对象包装器和自动装箱
有时,需要将int这样的类型转化为对象。所有的基本类型都有一个与之对应的类。例如,Integer类对应基本类型int。通常,这些类称为包装器(wrapper)。这些对象包装器拥有很明显的名字:Integer、Long、Float、Double、Short、Byte、Character、Void和Boolean(前6个类派生于公共的超类Number)。对象包装器类是不可变的,即一旦构造了包装器,就不允许更改包装在其中的值。同时,对象包装器还是final,因此不能定义它们的子类。
五、枚举类
一些方法在运行时,它需要的数据不能是任意的,而必须是一定范围内的值,此类问题在JDK5以前采用自定义带有枚举功能的类解决,Java5以后可以直接使用枚举予以解决。
JDK 5新增的 enum 关键字用于定义一个枚举类。
每一个枚举值都是枚举类的具体实例对象.只不过是静态常量.
枚举类具有如下特性:
1、枚举类也是一种特殊形式的Java类。
2、枚举类中声明的每一个枚举值代表枚举类的一个实例对象。
3、与java中的普通类一样,在声明枚举类时,也可以声明属性、方法和构造函数.
枚举类也可以实现接口(序列化)、或继承抽象类。
JDK5中扩展了swith语句,它除了可以接收int, byte, char, short外,还可以接收一个枚举类型(enum)。
继承
1:描述一个学生类:姓名年龄学号属性,学习的方法
2:描述一个工人类:姓名年龄工号属性,工作的方法
3:描述一个人类:姓名年龄属性,说话的方法。
4:发现学生类和人类天生有着联系,学生和工人都是人。所以人有的属性和行为学生和工人都会有。出现类代码重复故使用继承减少代码重复率。
继承特点
1:描述类和类之间的关系
2:降低类和类之间的重复代码
3:降低对象和对象之间的代码重复使用静态变量
4:降低类和类之间的代码重复使用就继承
extends关键字
继承细节;
1:类名的设定,被继承的类称之为父类(基类),继承的类称之为子类
2:子类并不能继承父类中所有的成员
3:父类定义完整的成员 静态成员,非静态,构造方法。静态变量和静态方
法都可以通过子类名.父类静态成员的形式调用成功。
4:所有的私有成员不能继承,private修饰的成员。
5:构造函数不能被继承
super关键字
作用:
1:主要存在于子类方法中,用于指向子类对象中父类对象。
2:访问父类的属性
3:访问父类的函数
4:访问父类的构造函数