当前位置: 首页 > news >正文

div css网站重构第一版视频教程seo排名点击器原理

div css网站重构第一版视频教程,seo排名点击器原理,电商网站建设实训(互联网营销大赛),个人在网站怎么做文章目录 1、泛型1.1、为什么要使用泛型?1.2、泛型的应用1.3、泛型通配符1.4、泛型上限和下限1.5、泛型接口 2、枚举 1、泛型 Generics 是指在定义类的时候不指定类中某个信息(属性/方法返回值)的具体数据类型,而是用一个标识符来…

文章目录

  • 1、泛型
    • 1.1、为什么要使用泛型?
    • 1.2、泛型的应用
    • 1.3、泛型通配符
    • 1.4、泛型上限和下限
    • 1.5、泛型接口
  • 2、枚举

1、泛型

Generics 是指在定义类的时候不指定类中某个信息(属性/方法返回值)的具体数据类型,而是用一个标识符来替代,当外部实例化对象的时候再来指定具体的数据类型。

集合和数组相比较,优势在于长度可以随时改变,集合中存储的数据类型是灵活的,不固定。

1.1、为什么要使用泛型?

使用泛型可以确保集合中数据的统一性,同时它又兼具很好的灵活性

package com.htl.test;import java.util.ArrayList;public class Test3 {public static void main(String[] args) {ArrayList<Integer> list = new ArrayList();list.add(1);list.add(2);for (int i = 0; i < list.size(); i++) {int num = list.get(i);System.out.println(num);}}
}

1.2、泛型的应用

在自定义类中添加泛型,基本语法

public class 类名<泛型标识1,泛型标识2...>{private 泛型标识1 id;public 泛型标识2 test(){return (泛型标识2) new Object();}
}

自定义一个表示时间的类 Time

package com.htl.test;public class Time<T> {private T value;public T getValue() {return value;}public void setValue(T value) {this.value = value;}
}
package com.htl.test;public class Test4 {public static void main(String[] args) {Time<Integer> time1 = new Time<>();time1.setValue(10);System.out.println("现在的时间是" + time1.getValue());Time<String> time2 = new Time<>();time2.setValue("十点");System.out.println("现在的时间是" + time2.getValue());}
}
package com.htl.test;public class Test5 {public static void main(String[] args) {Time2<String,Integer,Float> time = new Time2<>();time.setHour("十点");time.setMinute(10);time.setSeconde(10.0f);System.out.println("现在的时间是" + time.getHour() + ":" + time.getMinute() + ":" + time.getSeconde());}
}
package com.htl.test;public class Time2<H,M,S> {private H hour;private M minute;private S seconde;public H getHour() {return hour;}public void setHour(H hour) {this.hour = hour;}public M getMinute() {return minute;}public void setMinute(M minute) {this.minute = minute;}public S getSeconde() {return seconde;}public void setSeconde(S seconde) {this.seconde = seconde;}
}

静态成员不能用泛型来修饰,非静态成员变量可以用泛型。

静态成员变量在类加载的时候就存入到内存中了,没有类型,所以无法存入,就不能定义为静态的。

静态方法可以使用泛型

private static Object hour;
public static<H> H getHour() {return (H)hour;
}

1.3、泛型通配符

String 和 Integer 在泛型引用中不能转换为 Object,多态在泛型引用中不生效

package com.htl.test2;import java.util.ArrayList;public class Test {public static void main(String[] args) {ArrayList<String> list1 = new ArrayList<>();test(list1);ArrayList<Integer> list2 = new ArrayList<>();test(list2);}/*** 既可以传入String类型的集合* 也可以传入Integer类型的集合*/public static void test(ArrayList<?> list){}}

1.4、泛型上限和下限

使用泛型的时候可以通过泛型上限和下限对数据类型的范围进行扩充

泛型上限

表示实例化时的具体数据类型,可以是上限类型的子类或者上限类型本身,用 extends 关键字来修饰。

泛型下限

表示实例化时的具体数据类型,可以是下限类型的父类或者下限类型本身,用 super 关键字来修饰。

基本语法:

泛型上限:类名<泛型标识符 extends 上限类名>
泛型下限:类名<泛型标识符 super 下限类名>
package com.htl.test2;public class Time<T> {public static void main(String[] args) {test(new Time<Number>());test(new Time<Byte>());test(new Time<Integer>());test2(new Time<String>());test2(new Time<Object>());}/*** 参数的泛型只能是Number或者它的子类,Number、Byte、short、Integer...*/public static void test(Time<? extends Number> time){}/*** 参数的泛型只能是String或者它的父类,String和Object*/public static void test2(Time<? super String> time){}
}

1.5、泛型接口

我们在定义类的时候可以使用泛型,定义接口的时候同样可以使用泛型。

public interface MyInterface<T>{public T getValue();
}

实现泛型接口有两种方式,一种是实现类在定义时继续使用泛型标识,另一种时实现类在定义时直接给出具体的数据类型。

1、实现类继续使用泛型

package com.htl.test3;public class MyImplement<T> implements MyInterface<T> {private T obj;public T getObj() {return obj;}public void setObj(T obj) {this.obj = obj;}@Overridepublic T getValue() {return null;}
}

2、实现类给出具体的数据类型

package com.htl.test3;public class MyImplement2 implements MyInterface<String> {private String obj;public String getObj() {return obj;}public void setObj(String obj) {this.obj = obj;}@Overridepublic String getValue() {return null;}
}

实现类继续使用泛型,在具体实例化的时候需要给出具体的数据类型。

实现类给出具体的数据类型,在具体实例化的时候不需要给出具体的数据类型。

package com.htl.test3;public class Test {public static void main(String[] args) {MyImplement<String> myInterface = new MyImplement<>();MyImplement2 myInterface1 = new MyImplement2();}
}

2、枚举

Enum 是一种有确定取值区间的数据类型,本质上就是一个类,简洁、安全、方便。

枚举的值被约束到一个特定的范围,只能从这个范围内取值。

package com.htl.test3;public enum WeekEnum {MONDAY,TUESDAY,WEDENSDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY;
}
package com.htl.test3;public enum  ResponseEnum {SUCCESS(0,"成功"),ERROR(-1,"失败");private Integer code;private String msg;public Integer getCode() {return code;}public String getMsg() {return msg;}ResponseEnum(Integer code, String msg) {this.code = code;this.msg = msg;}
}
package com.htl.test3;public class Test2 {public static void main(String[] args) {System.out.println(ResponseEnum.SUCCESS.getCode());System.out.println(ResponseEnum.ERROR.getMsg());}
}
http://www.15wanjia.com/news/18342.html

相关文章:

  • 网站开发的基础知识软文营销的定义
  • 商城小程序费用标准2020站群seo系统
  • 网站建设素材图苏州网站关键字优化
  • 网站建设资金的请示如何让百度搜索到自己的网站
  • 莆田网站建设公司学校网站建设哪家好
  • zblog做企业网站一手项目对接app平台
  • 成都管控政策最新消息百度搜索推广优化师工作内容
  • 新竹自助建站系统成都抖音seo
  • 山西长治做网站公司百度导航最新版本
  • 青岛科友网站建设网络公司头条指数
  • 婚介网站建设百度助手下载安装
  • 徐州网站建设网站制作seo课程培训中心
  • 网站做链接博客网站
  • 传统企业网站建设制作拓客引流推广
  • 做网站赚钱嘛seo网站推广方法
  • 微信移动网站建设灰色词秒收录代发
  • 做网站需要多少钱一个月百度账号一键登录
  • 长宁区网站建设网站济南新站seo外包
  • 描述对于营销型网站建设很重要飘红效果更佳廊坊网站设计
  • 做类似淘宝的网站开发需要什么查看今日头条
  • 谷歌网站的主要内容百度旗下推广平台有哪些
  • 网站建设与制作教程厦门seo俱乐部
  • error loading this resource wordpressseo学徒
  • 米读小说免费网站抢个总裁做爹地网站维护费一年多少钱
  • 成都网站建制作成都关键词seo推广平台
  • ubc网站谁做的各大网站提交入口
  • 建网站要什么小程序推广平台
  • 互联网营销是什么百度推广优化师
  • 做音乐网站的栏目济南网站运营公司
  • 具有价值的建网站推广之家app