可变形参
1.可变形参的本质是数组
2.一个方法中只能有一个可变形参
3.可变形参的参数必须放在最末一位
封装的定义
封装给对象提供了隐藏内部特性和行为的能力,对象提供一些能这被其它对象访问的方法来改变它内部的数据。JAVA当中有3种修饰符,public,private和protected。每一种修饰符给其他的位于同一个包或者不同包下面赋予了不同的访问权限。
泛型
泛型是程序设计语言的一种特性。允许程序员在强类型程序设计语言中编写代码时定义一些可变部分,那些部分在使用前必须作出指明。
将类型参数化以达到代码复用提高软件开发工作效率的一种数据类型。
泛型类是引用类型,是堆对象,主要是引入了类型参数这个概念。
泛型?的用法,边界(? extends X,? super X ),方法泛型
总结:
1.泛型可以声明在类上面,也可以声明在方法上面
2.一个类可以有多个泛型,一个方法也可以有多个泛型
3.类在实例化之前必须指明泛型的具体类型
4.使用extends表示子类,super表示父类,?表示通配符
5.通配符的用法
5.1 ?表示任何类型,只能接收,禁止修改
List<?> list = new ArrayList<Integer>();//可以接收,但禁止修改
因为任意类型都是?类型,此例当中只能放Integer所以,禁止修改
5.2 ? extends T 上界
List<? extends Number> list = new ArrayList<Integer>();//可以接收,但禁止修改
因为Integer,Double,Float,Byte...类型都是Number的子类型,此例当中只能放Integer所以,禁止修改
5.3 ? super T 下界
List<? super Integer> list = new ArrayList<Number>();//可以接收,可以修改,但只能向里面添加Integer以及Integer的子类型
意味着上界是无限的,无法保证它一定是Number.但是放入Integer可以保证.
示例:
1.价格,数字类型均可
2.商品分类
3.购买者,人以及人的子类
4.所在货架,单层货架,以及单层货架的父类
5.促销活动
6.根据给入的仓库计算数量