「java泛型封装」java 泛型 r

博主:adminadmin 2023-03-21 07:37:10 433

本篇文章给大家谈谈java泛型封装,以及java 泛型 r对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java 基本数据类型和其封装类你知多少

8种基本类型按照类型划分:byte,short,int,long,float,double,boolean,char。

8种基本类型的封装类:Byte,Short,Integer,Long,Float,Double,Boolean,Character.

为什么需要封装类?

因为泛型类包括预定义的集合,使用的参数都是对象类型,无法直接使用基本数据类型,所以Java又提供了这些基本类型的封装类

基本类型和对应的封装类由于本质的不同。具有一些区别:

1.基本类型只能按值传递,而封装类按引用传递。

2.基本类型会在栈中创建,而对于对象类型,对象在堆中创建,对象的引用在栈中创建,基本类型由于在栈中,效率会比较高,但是可能存在内存泄漏的问题。

java 的枚举可以用泛型吗

有!

泛型和枚举都是JDK1.5版本之后加入的新特性,泛型将程序代码的类型检查提前到了编译期间进行,枚举类型增强了程序代码的健壮性。

1. 泛型

在JDK1.5版本之前,如果在集合中添加了不同类型的数据,需要在程序的运行期间对类型之间的转换进行检查。

例如:

List arrayList=new arrayList();

在arrayList中添加String类型的对象和Integer对象,但是我们定义如下一个数组

String[] values=new String[arrayList.size()];

如果想要把arrayList转换成数组的话就会出现错误:

arrayList.toArray(values);//运行期间错误

这是因为List中包含了整型封装类型的对象。但是该错误只能在运行期间才能发现,程序能够正常的通过编译,并不会报错。

对于程序中出现的错误,应该尽早的通知程序员。泛型能够很好地解决这个问题。

1.1 泛型在集合中的应用

在JDK1.5版本之后Java提供了对泛型的支持。例如对于一个ArrayList列表来说,如果只想在列表中放入String类型元素,可以用下面的方法来实现:

ArrayListString list=new ArrayListString();

泛型使得编译器能够在编译期间对集合中加入的对象进行检查,如果加入了不同类型的对象,就会报错,而不必等到运行期间再进行相关的类型转换。

和原来没有使用泛型相比,它将原来需要在运行时期才能发现的异常提前到了编译期间,使得程序的安全性也大大提高,泛型一般用于集合类中。

1.2 泛型类和泛型方法

泛型类的定义如下:在类名的后面加上一对尖括号(""),在尖括号内部填入需要的类型。例如:

class Point T{ // 此处可以随便写标识符号,T是type的简称

private T var ; // var的类型由T指定,即:由外部指定

public T getVar(){ // 返回值的类型由外部决定 ,泛型方法

return var ;

}

public void setVar(T var){ // 设置的类型也由外部决定

this.var = var ;

}

};

public class GenericsDemo06{

public static void main(String args[]){

Point String p = new Point String() ; // 里面的var类型为String类型

p.setVar("it") ; // 设置字符串

System.out.println(p.getVar().length()) ; // 取得字符串的长度

}

}; 2.枚举

枚举也是JDK1.5之后的版本以后Java新加入的特性。使用枚举可以表示一组常量数据。枚举的本质是一个类,可以使用enum关键字来声明一个枚举类型,其声明方式如下:

[访问控制符] enum 枚举类型名{value1,value2,......}

使用枚举类型需要注意以下几点:

枚举类型可以定义在类的内部也可以定义在类的外部。如果定义在类的内部,那么其访问控制符可以是public,protected,private或者默认的控制符。如果定义在类的外部,其访问控制符只能是public和默认控制符;

枚举类型中定义的value值都默认为public static final的。其值一经定义就不能在被修改了。多个value值之间需要用逗号隔开;

枚举类型中除了可以声明常量之外还可以声明方法。但是方法需要在常量之后,并且常量和方法之间要用分号区分;

枚举类型中的值可以通过枚举类型名直接对他们进行访问;

枚举类型不能声明为abstract或者final类型;

例:

public enum Direction{

FORWARD,

BACK,

LEFT;

public void start(){

System.out.println("enum method");

}

}

2.1 枚举类型的常用方法

public final String name()//返回枚举常量的名称;

public final int ordinal()//返回枚举常量在枚举类型中的位置,第一个枚举值序号为0,依次类推;

public String toString()//返回枚举常量的名字,可以重写此方法;

public static valueOf(enumType,String name)//返回与name名字相对应的枚举常量;

java中什么是泛型,怎么用泛型?

这是在各种Java泛型面试中,一开场你就会被问到的问题中的一个,主要集中在初级和中级面试中:

1:什么是泛型?

泛型就是广泛的类型,也是一种数据类型,而这种数据类型可以是任意类型,编写过程中当中不能确定类型,创建对象时必须指定具体类型,不指定也可以,但是会出现一些错误。

泛型是编译器行为,只能在编译期有效,如果能够跨过编译器,那么泛型就没有任何意义了。

2、泛型类

怎么定义泛型类?

在类后面加,中可以编写任意长度任意字符,不能是数值。(一般用26个大写英文字母表示)

泛型类 具体类型 变量名 = new 泛型类();

3.怎么使用泛型

有以下几种使用场景以及放在那种位置

泛型只能定义引用数据类型,而不能使用基本数据类型

泛型类、泛型方法、泛型接口、泛型通配符

例如:作用在类上时( public class Animal E { E pet; } ) , 泛型跟在类后边,可以指定用了泛型的类内部的 pet 的类型。

作用在对象上时( AnimalDog str = new AnimalDog(); ) , 泛型跟在类后边 , 使得对象类的的 pet 属性为 Dog类型。

java怎么把数据封装list

可以先创建好List对象:List泛型 对象名称=new ArrayList泛型();

然后调用list集合的add方法实现数据的填充:对象名称.add(泛型的参数)

关于java泛型集合转换问题,下图是List类型数据,求问怎么转换为List类型

public class Test {

public static void main(String[] args){

ListA list = new ArrayListA();

A a1 = new A("101","01","122222222","上海");

A a2 = new A("102","02","133333333","南京");

A a3 = new A("103","03","142333223","上海");

A a4 = new A("104","04","125555552","上海");

list.add(a1);

list.add(a2);

list.add(a3);

list.add(a4);

}

}

class A{

private String ID;

private String num;

private String iphone;

private String address;

public String getID() {

return ID;

}

public void setID(String iD) {

ID = iD;

}

public String getNum() {

return num;

}

public void setNum(String num) {

this.num = num;

}

public String getIphone() {

return iphone;

}

public void setIphone(String iphone) {

this.iphone = iphone;

}

public String getAddress() {

return address;

}

public void setAddress(String address) {

this.address = address;

}

public A(String id,String num,String iphone,String address){

this.ID = id;

this.num = num;

this.iphone = iphone;

this.address=address;

}

}

我写了个例子,应该能明白了吧?也就是吧你集合的数据封装成一个对象,这样泛型的时候就可以泛型成这个对象了。A也就是你说的T 这样就是你要的把数据封装成了A类对象

希望能帮到你!

Java中为什么要为基本类型提供封装类

1、基本类型的默认值不能为null,封装类可以,在某些需要变量为null的情况下得用封装类型;

2、封装类提空了一些其他的方法,如Integer.praseInt(String s)等;

3、泛型用法。

我目前用到的大概这么多,还有其他很多方面欢迎大家补充。

关于java泛型封装和java 泛型 r的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。