JAVA----关于泛型的一些知识点(可能持续更新)

泛型
1.泛型类

①定义格式:

格式:修饰符 class 类名<类型>{}

范例:public class Generic<T/K> //此处T可以随便写为任意标识,常见的T E K V等形式的参数常用来表示泛型

泛型类定义,代码实现:

public class Generic<T> {
private T t;//t为泛型类T的一个成员变量,可随意获取一个类

public T getT() {
return t;
}

public void setT(T t) {//假如传入的是String类型 那么T便变成了String类
this.t = t;
}

}

泛型类的运用,代码实现:

public class GenericDemo02 {
public static void main(String[] args) {
Generic<String> s = new Generic<String>();//利用Generic泛型类便可将需要写多个类的想法缩减城只写一个泛型类
s.setT("李四");
System.out.println(s.getT());
Generic<Integer> g2 = new Generic<>();
g2.setT(49);
System.out.println(g2.getT());
Generic<Boolean> g3 = new Generic<>();
g3.setT(true);
System.out.println(g3.getT());
}
}

2.泛型接口

(1).定义:java接口是一系列方法的声明,是一系列特征方法的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的功能

①格式:修饰符 interface 接口名 <类型>{}

②范例:public interface Generic <T>{}

代码实现:

 

package Collection.Set.GenericDemo;

public interface Generic002 <T>{
void show(T t);//接口里只有方法的声明,没有方法的实现
}

代码运用:

 

 

package Collection.Set.GenericDemo;

public class GenericImpl002 <T> implements Generic002<T>{//实现接口
@Override//实现接口里的方法
public void show(T t) {
System.out.println(t);//方法重写
}

public static void main(String[] args) {
GenericImpl002<String> g1 = new GenericImpl002<>();//对实例方法进行初始化,然后就可以调用类里的实例方法,因为是泛型方法,所以传入的是什么类型的那就输出什么类型的
g1.show("撒你撒");
GenericImpl002<Integer> g2 = new GenericImpl002<>();
g2.show(32);
}
}

注意:①就像一个类一样,一个接口里也能拥有方法和属性,即只有方法名没有方法的实现,但是在接口里声明的方法默认是抽象的(即只有方法标识符没有方法体)

 

②抽象方法只存在于抽象类或者接口中,但抽象类却能存在非抽象方法,即有方法体的方法。接口是百分百的抽象类
3.泛型方法

首先重新认识一下方法:

(1).方法的定义(1,2,3点是复习方法,之后才是泛型方法)

访问权限修饰符 其他修饰符 返回值类型 方法名(参数列表){}

如:public static void test(){

方法体(函数体)

return 返回值;//void类型的话可以不用return

}

 

 (2).方法的重载

概念:同一个类名中,方法名相同,参数列表不同

 

 (3).类方法与实例方法

类方法:也称静态方法,含有static,可以直接通过类名调用的方法

实例方法:也称非静态方法,不含static,必须实例化后才可以被调用

代码案例:

package oop;

public class MethodDemo01 {
public static void main(String[] args) {
//调用实例方法需先初始化类的实例,然后才能通过类调用实例方法
MethodDemo01 demo01 = new MethodDemo01();
int sum=demo01.sum(1,2);
//调用类方法(静态方法)可以直接通过类名+方法名的方式赖调用
int max=MethodDemo01.max(1,2);
System.out.println(sum);
System.out.println(max);
}
//实例方法
int sum(int a, int b) {
int sum = a + b;
return sum;
}

//类方法:
static int max(int a, int b) {
int m = a > b ? a : b;
return m;
}
}

参考来源:Java方法详解(Java基础)_辰兮要努力的博客-CSDN博客_java方法讲解

跑远了,复习完了方法就回来讲一下泛型方法,泛型方法和泛型类运用的方法一致,只需要把传进来的类型用T接收

(4)泛型方法的浅识:

①定义格式:修饰符 <类型(T)(必不可少,泛型方法的表明)> 返回值类型 方法名(类型(T)变量名(t))

     范例:public <T> void show(T t){}

②代码案例:

package Collection.Set.GenericDemo;

public class Generic02 {
//实例方法:
public <T> void show(T t){
System.out.println(t);
}
//类方法
public static <T> void show2(T t){
System.out.println(t);
}
}

③结合main类运用:

package Collection.Set.GenericDemo;

public class Demo04 {
public static void main(String[] args) {
//通过类方法调用泛型方法(类名+方法名)
Generic02.show2("李四");
Generic02.show2(14);
Generic02.show2(true);
//通过实例方法调用泛型方法(需要先初始化类的实例,然后才能通过类调用类的实例方法
Generic02 g1 = new Generic02();
g1.show("张飒");
g1.show(24);
g1.show(false);
}
}

泛型方法差不多就到这嘞,如有缺漏的常见知识点 欢迎补充~

小结一下:①泛型类和泛型接口的定义和使用大致相同,只不过在实现泛型接口的类名时要用两个<T>

②泛型方法在修饰符后也有一个<T>

③泛型就是用来解决需要运用多个类型时节省空间和提高效率的常用知识点

 

posted @   青弦c  阅读(29)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示