`

泛型

    博客分类:
  • j2se
 
阅读更多

第一:泛型:问题:1.在运算时候必须要向下转型。向下转型存在安全问题(可能会把某个子类落下)2.如果子类比较多,程序显得比较臃肿。因此出现泛型,在jdk1.5以后出现的
第二:泛型好处:将数据类型参数化。
第三:泛型的实现
         1.泛型类:(1).定义泛型:class 类名<T>   (2).使用泛型:在创建对象的时候将泛型具体化,如果不具体化就默认为object类型
         2.泛型接口:(1).interfance 接口名<T> (2).在子类实现接口的时候,如果不指定具体的泛型类型,该子类也是泛型类。
         3.泛型方法:(1).public T 方法名(T,X)   (参数类型是泛型,返回值类型是泛型)泛型参数可以多个
第四:上下限:?是通配符,可以接受任意类型。Number;类的子类是int,double,long,short,float等,起码是个数字。
     限定上限:? extends Fu   父类和父类的子类能用
     限定下限:? super Zi      子类和子类的父类能用

第五:代码实现
public class Circle<T> {
 private T x;
 private T y;
 private T r;
 public T getX() {
  return x;
 }
 public void setX(T x) {
  this.x = x;
 }
 public T getY() {
  return y;
 }
 public void setY(T y) {
  this.y = y;
 }
 public T getR() {
  return r;
 }
 public void setR(T r) {
  this.r = r;
 }
 public Circle() {
  super();
  // TODO Auto-generated constructor stub
 }
 public Circle(T x, T y, T r) {
  super();
  this.x = x;
  this.y = y;
  this.r = r;
 }
 @Override
 public String toString() {
  return "Circle [x=" + x + ", y=" + y + ", r=" + r + "]";
 }

}

 

 

 

 

public class CircleTest {
 public static void main(String[] args) {
  Circle c=new Circle(12,5,8.5);
  System.out.println(area(c));
 }
   
 public static  Number  area(Circle<? extends Number> c){
  return 3.14*c.getR().intValue()*c.getR().intValue();
  
 }
 
}

分享到:
评论

相关推荐

    C#泛型类、泛型方法、泛型接口、泛型委托的实例

    本文将深入探讨泛型类、泛型方法、泛型接口和泛型委托,并通过实例来阐述它们的应用。 首先,我们来看泛型类。泛型类是具有一个或多个类型参数的类。类型参数是在定义类时使用的占位符,实际的类型在创建类的实例时...

    泛型java的泛型知识,非常有用

    Java 泛型是一种强大的语言特性,自JDK 5.0引入以来,极大地提升了代码的类型安全性以及重用性。泛型允许我们在类、接口和方法中使用类型参数,这样在编译时期就能检查类型匹配,减少运行时类型转换异常。 1. **...

    泛型dao 泛型dao 泛型dao

    Struts2、Hibernate、Spring整合的泛型DAO (本人评价: 代码开发效率提高30% 代码出错率减少70%) 对于大多数开发人员,系统中的每个 DAO 编写几乎相同的代码到目前为止已经成为一种习惯。虽然所有人都将这种重复...

    Java泛型的用法及T.class的获取过程解析

    Java泛型的用法及T.class的获取过程解析 Java泛型是Java编程语言中的一种重要特性,它允许开发者在编写代码时指定类型参数,从而提高代码的灵活性和可读性。本文将详细介绍Java泛型的用法 及T.class的获取过程解析...

    关于java基础的泛型的练习

    Java泛型是Java SE 5.0引入的一个重要特性,它极大地增强了代码的类型安全性和可读性。泛型在编程中的应用广泛,特别是在集合框架中,使得我们可以在编译时就检查类型,避免了不必要的类型转换,并且提高了代码的...

    利用反射生成泛型类对象

    反射和泛型是一种重要的解决途径。 此代码是一个生成泛型对象的类。 比如: Pool&lt;Point&gt; pool = new Pool(){}; Point p = pool.get(x, y); //在此构造Point对象 ... pool.put(p); 希望能帮助那些为查找泛型构造器、...

    关于java的泛型.doc

    关于Java的泛型,这是Java 5.0版本引入的一项重大特性,旨在提供类型安全的集合操作,并增强代码的重用性和灵活性。泛型允许程序员在设计类或接口时使用类型参数,使得类或接口可以处理任何数据类型,而不必为每种...

    Java集合框架及泛型

    泛型则是Java在J2SE 5.0版本引入的一个特性,极大地提高了代码的类型安全性和可读性。下面我们将深入探讨这两个主题。 首先,集合框架包括接口(如List、Set和Queue)和实现这些接口的具体类(如ArrayList、...

    JAVA-泛型课件-泛型课件

    泛型是Java语言的一个重要特性,首次出现在Java SE 1.5版本中。它的引入主要是为了解决在集合操作中类型安全性的问题,并通过引入参数化类型的概念,提高了代码的复用性与可读性。 ### 泛型概念 泛型,即参数化...

    Webservice传递泛型的案例,包括web服务端和mobile端

    在这个特定的案例中,我们关注的是在Web服务(WebService)中如何处理泛型,以及如何在移动设备(mobile端)上与之交互。泛型是C#编程语言中的一个重要特性,它允许我们在代码中创建可重用的类型安全的数据结构,而...

    java 泛型类的类型识别示例

    在Java编程语言中,泛型(Generics)是一种强大的特性,它允许我们在编写代码时指定容器(如集合)可以存储的数据类型。这提高了代码的安全性和效率,因为编译器可以在编译时检查类型,避免了运行时...

    java 一个关于泛型的简单例子

    泛型是Java编程语言中的一个重要特性,它引入于JDK 5.0,极大地提高了代码的类型安全性和可读性。泛型允许我们在类、接口和方法中使用类型参数,这样我们可以在编译时检查类型,避免了运行时类型转换的麻烦和潜在的...

    泛型笔记学习2009

    ### 泛型基础知识与应用详解 #### 泛型概述 泛型是Java语言的一个重要特性,它主要解决了在集合框架中频繁出现的类型转换问题,同时也增强了类型安全性。泛型的概念最早出现在Java 5.0版本中,它允许开发者创建能够...

    java 带两个类型参数的泛型

    在Java编程语言中,泛型是一种强大的特性,它允许我们在类、接口和方法中使用类型参数,从而提高代码的灵活性和可复用性。当我们谈论“java带两个类型参数的泛型”时,这意味着我们正在处理一个泛型类或泛型方法,...

    VC++ 2005:泛型编程

    【VC++ 2005:泛型编程】 泛型编程是C++/CLI中的一种重要特性,允许程序员创建可重用的代码,这些代码能够处理多种数据类型,而无需每次都复制和修改代码。泛型编程的核心思想是参数化类型,即将数据类型作为一个...

    SUN公司Java泛型编程文档

    Java泛型是Java编程语言中的一个关键特性,它在2004年随着JDK 5.0的发布被引入。这个特性极大地提高了代码的类型安全性和可读性,减少了在运行时出现ClassCastException的可能性。SUN公司的Java泛型编程文档,包括...

    C#泛型,非泛型实现枚举

    在C#编程中,泛型和枚举是两种非常重要的概念。泛型提供了一种方式,使得代码可以处理多种数据类型,而无需为每种类型重复编写相同逻辑。枚举则是用于定义一组预定义的常量,便于表示一组相关的值。下面我们将详细...

Global site tag (gtag.js) - Google Analytics