Java基础--泛型类

目录

一、泛型类的引入

二、泛型的定义

泛型的定义语法:

使用语法

 注意:

三、常见的泛型标记

四、举例抽奖器


一、泛型类的引入

        假定我们有这样一个需求:写一个栈,能够对整型数组、字符串数组甚至其他任何类型的数据进行出入栈,该如何实现?答案是可以使用 Java 泛型。

        使用 Java 泛型的概念,我们可以写一个泛型方法来对一个对象数组排序。然后,调用该泛型方法来对整型、浮点型、字符串等进行分别进行操作。

二、泛型的定义

        泛型就是添加了一个类型参数,你可以在用泛型类或者泛型方法的时候确定这个泛型为一个确定的类型。

泛型的定义语法:
class 类名称 <泛型标识、泛型标识,...> {
    private 泛型标识 变量名;
    ......
}
使用语法

(java 1.7以后,后边的<>中具体的数据类型可以省略不写)

类名<具体的数据类型> 对象名 = new 类名<具体的数据类型>();
 注意:

1、泛型类,如果没有指定具体的数据类型,此时,操作类型是Object

2、泛型的类型参数只能是类类型,不能是基本数据类型

3、泛型类型在逻辑上可以看成是多个不同的类型,但实际上是相同类型

三、常见的泛型标记

EElement (在集合中使用,因为集合中存放的是元素)
TType
KKey(键)
VValue(值)
NNumber(数值类型)
?表示不确定的 java 类型

四、举例抽奖器

抽奖器有实物奖品(字符串型)和奖金(数字)

public class productgetter<T> {
    private T product;
    ArrayList<T> arrayList = new ArrayList<>();

    public void addproduct(T t){
        arrayList.add(t);
    }

    Random random = new Random();

    public T getproduct(){
        product = arrayList.get(random.nextInt(arrayList.size()));
        return product;
    }
}
public class Test {
    public static void main(String[] args) {
        productgetter<String> stringproductgetter = new productgetter<>();
        String[] strpro = {"apple","pear","peach","banana"};
        //将实物奖品放入奖池
        for (int i = 0;i<strpro.length;i++){
            stringproductgetter.addproduct(strpro[i]);
        }
        String gift = stringproductgetter.getproduct();
        System.out.println("恭喜抽中了"+gift);

        System.out.println("***************");

        productgetter<Integer> integerproductgetter = new productgetter<>();
        Integer[] intpro = {10,11,12,13,14};
        //将奖金放入奖金池
        for (int i=0;i<intpro.length;i++){
            integerproductgetter.addproduct(intpro[i]);
        }
        Integer money = integerproductgetter.getproduct();
        System.out.println("恭喜获得奖金"+money+"yuan");

    }
}

这样在运行时就会随机产生实物奖品和现金奖金。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值