Java基础----泛型

来源:互联网 发布:手机淘宝网页版网址 编辑:程序博客网 时间:2024/06/05 04:08
//public class ObjectTool<T> {//// public void show(String s) {//// System.out.println(s);//// }//////// public void show(Integer i) {//// System.out.println(i);//// }//////// public void show(Boolean b) {//// System.out.println(b);//// }////public void show(T t) {//System.out.println(t);//}// }/* * 泛型方法:把泛型定义在方法上 */public class ObjectTool {public <T> void show(T t) {System.out.println(t);}}


public class ObjectToolDemo {public static void main(String[] args) {// ObjectTool ot = new ObjectTool();// ot.show("hello");// ot.show(100);// ot.show(true);// ObjectTool<String> ot = new ObjectTool<String>();// ot.show("hello");//// ObjectTool<Integer> ot2 = new ObjectTool<Integer>();// ot2.show(100);//// ObjectTool<Boolean> ot3 = new ObjectTool<Boolean>();// ot3.show(true);// 如果还听得懂,那就说明泛型类是没有问题的// 但是呢,谁说了我的方法一定要和类的类型的一致呢?// 我要是类上没有泛型的话,方法还能不能接收任意类型的参数了呢?// 定义泛型方法后ObjectTool ot = new ObjectTool();ot.show("hello");ot.show(100);ot.show(true);}}


package cn.itcast_06;/* * 泛型接口:把泛型定义在接口上 */public interface Inter<T> {public abstract void show(T t);}

package cn.itcast_06;//实现类在实现接口的时候//第一种情况:已经知道该是什么类型的了//public class InterImpl implements Inter<String> {////@Override//public void show(String t) {//System.out.println(t);//}// }//第二种情况:还不知道是什么类型的public class InterImpl<T> implements Inter<T> {@Overridepublic void show(T t) {System.out.println(t);}}

package cn.itcast_06;public class InterDemo {public static void main(String[] args) {// 第一种情况的测试// Inter<String> i = new InterImpl();// i.show("hello");// // 第二种情况的测试Inter<String> i = new InterImpl<String>();i.show("hello");Inter<Integer> ii = new InterImpl<Integer>();ii.show(100);}}

package cn.itcast_03;import java.util.ArrayList;import java.util.Arrays;import java.util.Scanner;/* * 键盘录入多个数据,以0结束,要求在控制台输出这多个数据中的最大值 *  * 分析: * A:创建键盘录入数据对象 * B:键盘录入多个数据,我们不知道多少个,所以用集合存储 * C:以0结束,这个简单,只要键盘录入的数据是0,我就不继续录入数据了 * D:把集合转成数组 * E:对数组排序 * F:获取该数组中的最大索引的值 */public class ArrayListDemo {public static void main(String[] args) {// 创建键盘录入数据对象Scanner sc = new Scanner(System.in);// 键盘录入多个数据,我们不知道多少个,所以用集合存储ArrayList<Integer> array = new ArrayList<Integer>();// 以0结束,这个简单,只要键盘录入的数据是0,我就不继续录入数据了while (true) {System.out.println("请输入数据:");int number = sc.nextInt();if (number != 0) {array.add(number);} else {break;}}// 把集合转成数组// public <T> T[] toArray(T[] a)Integer[] i = new Integer[array.size()];// Integer[] ii = array.toArray(i);array.toArray(i);// System.out.println(i);// System.out.println(ii);// 对数组排序// public static void sort(Object[] a)Arrays.sort(i);// 获取该数组中的最大索引的值System.out.println("数组是:" + arrayToString(i) + "最大值是:"+ i[i.length - 1]);}public static String arrayToString(Integer[] i) {StringBuilder sb = new StringBuilder();sb.append("[");for (int x = 0; x < i.length; x++) {if (x == i.length - 1) {sb.append(i[x]);} else {sb.append(i[x]).append(", ");}}sb.append("]");return sb.toString();}}


0 0
原创粉丝点击