小白Java学习笔记d11(泛型,枚举enum,注解annotation)

泛型<>;添加指定的类型
泛型的使用
1.泛型类
2.泛型方法
3.泛型接口
泛型类

/**
 * 此处的泛型T可以任意取名 ,一般使用T,type
 */
class A<T>{
 private T key;
 
 public void setKey(T key) {
  this.key=key;
 }
 public T getKey() {
  return this.key;
 }
}



A<String> a1=new A<String>();//在new A的对象指定泛型的类型是String
 a1.setKey("xxx");//对象在使用setKey方法中key的形参就是String
 String s=a1.getKey();

泛型接口 interface

interface IB<T>{
 T test(T t);
}

/**

  • 未传入泛型实参时,与泛型类的定义相同
  • 在声明类的时候,需要将泛型类的声明也一起加到类中
  • @author Daybreak
  • @param
    */
class B1<T> implements IB<T>{
public T test(T t) {
  // TODO 自动生成的方法存根
  return t;
 }

/**

  • 如果实现接口时 指定了接口泛型的具体数据类型
  • 这个类实现接口所有方法的位置都要泛型替换实际的具体类型
  • @author Daybreak

*/

class B2 implements IB<String>{
@Override
 public String test(String t) {
  // TODO 自动生成的方法存根
  return t;
 }
 

泛型方法
泛型方法,在调用之前没有固定的数据类型
在调用时,传入的参数是是那么类型,就会把泛型改成什么类型
即,泛型方法会在调用时决定他的类型

/**
 * 无返回值的泛型方法
 * @author Daybreak
 *
 */
class Cc{
 public <T> void test(T s) {
  
 }
 /**
  * 有返回值的泛型方法
  * @param s
  * @return
  */
 public <T> T test1(T s) {
  return s;
 }
 /**
  * 形参为 可变参数的泛型方法
  * @param strs
  */
 public<T> void test2(T...strs) {
  for(T s:strs) {
   System.out.println(s);
  }
 }

泛型 通配符
test方法需要一个list集合的参数,不确定list集合到底存的是什么类型
public void test(List<?> list)

枚举类enum

枚举类可以实现接口

public class Test3 {
 public static void main(String[] args) {
 Season spring=Season.SPRING;
 spring.showInfo();
 
 Season summer=Season.SUMMER;
 summer.showInfo();
}
}
enum Season{
 SPRING("春天","春风习习"),//
 SUMMER("夏天","烈日炎炎"),
 AUTUMN("秋天","硕果累累"),
 WINTER("冬天","白雪皑皑");
 
 private final String name;
 private final String desc;
 private Season(String name,String desc) {
  this.name=name;
  this.desc=desc;
 }
 public void showInfo() {
  System.out.println(this.name+"  :"+this.desc);
 }

Annotation注解(一般用在项目搭建)

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值