泛型初体验

2、泛型

2.1 为啥要使用泛型

泛型:广泛的类型

在开发中对数据一致性的要求是比较看重得!!

例如:

​ 数组中存的数据,类型都是一致的

​ 但是数组有一个不好的地方,数组预先定义容量!!!

2.1 带有泛型的方法

成员方法的语法格式:

public 返回值类型 方法名 (参数列表){
   
}

带有泛型的方法语法格式

public <无意义的占位符> 返回值类型 方法名(参数列表){
   	
}

无意义的占位符:可以是T 或者 E 也可以是? 等 都可以

无参无返回值的方法

有参无返回值的方法

无参有返回值的方法

有参有返回值的方法

public static <T> void test(T t){
   //这个T只是一个占位而已,如果你传了字符串,那么这个T就是String
   //如果传入的是一个整数,那么T就是Integer
   //具有广泛性和普适性
   //方法的重载的升级版本
   //无返回值有参数的
   System.out.println(t);
}

无参无返回值的方法没有必要使用泛型

无参有返回值的方法

有参有返回值的方法

public static <T> T test1(T t){
   return t;
}

总结:

​ 1、泛型的方法一定是带有参数的才有意义

​ 2、无参的都是无意义的,而且一定要注意带返回值的

​ 这个返回值和参数的T的数据类型要保持一致

2.3 带有泛型的类

语法格式:

class 类名<无意义的占位符> {
   无意义的占位符 属性名;
}

//在声明对象的时候,指定好了T是什么数据类型
//那么成员变量 T name T就是那种数据类型
class Person<T> {
   T name;/成员变量不好用
   //主要看成员方法
   //注意:如果在一个带有泛型的类,成员方法不要家<T>
   public <T> void test (T t) {
       System.out.println(t);
   }
   public void test1(T t){
       //此方法内的T类型与类定义的类型一致
       System.out.println(t);
   }
}
public class Test {
   public static void main(String [] args){
       Person<String> sstringPerson = new Person<>();
       stringPerson.name = "狗蛋";
   }
}

声明一个泛型类 Animal,子类Panda Panda 下面重写Animal类下面的泛型方法 play (T t) ,实例化对象调用paly方法

2.4 总结

1、泛型方法

2、泛型类

​ 在泛型类中如果泛型方法得时候,不需要加

2.5 带有泛型的抽象类

语法格式:

abstract class 类名<无意义的占位符> {
   	abstract void 方法名(T t);
}
abstract class A<T> {
   	abstract void testA(T t);
}

class TestA extends A<T> {
   @Override
   	void testA(T t){
       
   }
}

总结:继承了带有泛型的抽象类,那么继承类也需要有泛型!!!

Integer 是int的包装类,就是代表的是int类型的数据

int 的包装类 Integer

byte 的包装类 Byte

short 的包装类 Short

long 的包装类 Long

float 的包装类 Float

duble 的包装类 Double

char 的包装类 Character

boolean 的包装类 Boolean

2.6 带有泛型的接口

语法格式

interface 接口名<无意义的占位符> {
   返回值类型 方法名 (T t);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值