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

建设游戏运营网站开展工作内容网站添加留言板功能

建设游戏运营网站开展工作内容,网站添加留言板功能,html制作答题网页,店铺推广方法有哪些--------------------ASP.NetAndroidIOS开发、.Net培训、期待与您交流#xff01; -------------------- 1. 泛型 1.概述 泛型是为了解决了集合中存储对象安全问题#xff0c;如果集合中存数了不同类型的对象#xff0c;那么读取出来后#xff0c;操作取出的对象以为不…--------------------ASP.NetAndroidIOS开发、.Net培训、期待与您交流 --------------------   1.     泛型      1.概述              泛型是为了解决了集合中存储对象安全问题如果集合中存数了不同类型的对象那么读取出来后操作取出的对象以为不知道类型会出现安全问题但是这不会在编译时期提示错误而是会在运行时期出现问题所以泛型会把运行时期的错误移到了编译时期那么错误就会避免。      2.集合中的泛型            在集合中都会存在泛型下同时迭代器中也定义了泛型在读取出来后我们也要指定迭代器的类型这样我们就不需要强制类型转换了因为迭代器中就指定了类型所以读取出来的对象类型也就是我们指定的类型。     package www.fuxi.jihe;import java.util.ArrayList; import java.util.Iterator;public class fanxingDemo {public static void main(String[] args) {ArrayListString list new ArrayListString();list.add(zhangsan);// 在这里必须传入的String对象如果不是那么编译会出错误list.add(lisi);IteratorStringit list.iterator();// 在这里也要指定迭代器的类型while (it.hasNext()) {String s it.next();// 在这里不需要强制类型转换为String了因为迭代器已经指定了类型System.out.println(s);}}} 结果 zhangsan lisi       2.     自定义泛型类 自定义的泛型类可以按照我们随意要求指定类型     package www.fuxi.jihe;/*** 在此类型定义了一个泛型这个字母可以随便定义当创建了此类的对象那么就需要指定泛型的类型那么里面的成员泛型就统一指定了*/ package www.fuxi.jihe;public class DemoT {private T t;public void set(T t){//此方法是和类上的泛型一起变化this.tt;System.out.println(set:t);}public static void main(String [] agrs){DemoString dnew DemoString();d.set(123);}} 结果 set:123     3.     泛型方法 1.     一个泛型     public class DemoT {public void show(T t) {System.out.println(show: t);}public void print(T t) {System.out.println(print: t);}public static void main(String[] args) {DemoString d new DemoString();d.show(hello);d.print(world);// d.show(new// Integer(2));//在这里编译出错因为d对象泛型已经指定了是String类型所以参数全部是String类型System.out.println(-----------);DemoInteger d1 new DemoInteger();d1.show(new Integer(3));d1.print(new Integer(6));}} 结果 show:hello print:world ----------- show:3 print:6       2.     多个泛型     package www.fuxi.jihe;public class DemoT {public void set(T t){//此方法是和类上的泛型一起变化System.out.println(set:t);}public Q void get(Q q){//此方法上的泛型是和类上的泛型无关可以是任意类型System.out.println(get:q);}public static void main(String [] agrs){DemoString dnew DemoString();d.set(123);d.get(abc);d.get(5);}}结果 set:123 get:abc get:5   从结果可以看出这个类中既有和类上的泛型一起变化的也有自己特有的方法例如get()方法上的泛型可以和类上的一样也可以不一样。   3.静态方法上的泛型   把泛型定义在返回值和修饰符之间 静态方法上的泛型的定义需要自己定义不要和类上的泛型统一因为静态方法只要是类一加载就生成如果和类上的泛型统一的话在静态方法加载的时候没有对象生成也就没有指定泛型的类型那么就会出错这些都和泛型定义出现的时间有关。     package www.fuxi.jihe;public class DemoT {public static Q void show(Q q){//这里不要和类上的泛型统一System.out.println(show:q);}public static void main(String [] agrs){Demo.show(hello);}} 结果 show:hello   4.     接口泛型      在接口上自定义泛型     package www.fuxi.jihe;interface interT {void show(T t); }/* 第一种实现泛型接口在接口上指定泛型类型 */ public class Demo implements interString {public void show(String t) {System.out.println(show: t);}public static void main(String[] agrs) {Demo d new Demo();d.show(hellowrold);} } 结果 show:hello world     下面是在对象是上指定泛型类型     package www.fuxi.jihe;interface interT {void show(T t); }/* 第二种实现泛型接口在接口上不定义泛型而是在对象上指定泛型类型 */ public class DemoT implements interT {public void show(T t) {System.out.println(show: t);}public static void main(String[] agrs) {DemoInteger d new DemoInteger();d.show(3);} }结果 show:3   5.     泛型的高级应用 1.     通配符 通配符用表示也叫占位符可以表示任意类型     package www.fuxi.jihe;import java.util.ArrayList; import java.util.Iterator;public class Demo {/*在这里泛型类型使用通配符表示表次是此可以传入任意类型*/public void show(ArrayList? list) {Iterator? it list.iterator();while (it.hasNext()) {System.out.println(it.next());}}public static void main(String[] agrs) {Demo d new Demo();ArrayListString l1 new ArrayListString();l1.add(abc);l1.add(123);l1.add(ased);d.show(l1);System.out.println(---------);ArrayListInteger l2 new ArrayListInteger();l2.add(1);l2.add(2);l2.add(3);d.show(l2);} } 结果 abc 123 ased --------- 1 2 3     但是也可以使用另一中方式表示但是其有缺点不能表示一个范围类型通配符可以表示一个类型范围详细“2.参考通配符设置上下限”     package www.fuxi.jihe;import java.util.ArrayList; import java.util.Iterator;public class Demo {/* 在这里泛型类型使用通配符表示表次是此可以传入任意类型 */public T void show(ArrayListT list) {IteratorT it list.iterator();while (it.hasNext()) {T t it.next();System.out.println(t);}}public static void main(String[] agrs) {Demo d new Demo();ArrayListString l1 new ArrayListString();l1.add(abc);l1.add(123);l1.add(ased);d.show(l1);System.out.println(---------);ArrayListInteger l2 new ArrayListInteger();l2.add(1);l2.add(2);l2.add(3);d.show(l2);} }结果 abc 123 ased --------- 1 2 3   从结果上可以看出结果和使用通配符是一样的这个好处可以把对象取出来可以进行操作T t it.next();但是使用通配符的话就不能进行此操作但是通配符可以设置上下限。 2.     通配符设置上下限 extends E 表示可以是E类型或者是E的子类这是设置的上限 super E表示的可以是E类型或者E的父类类型这是设置的下限   设置上限     package www.fuxi.jihe;import java.util.ArrayList; import java.util.Iterator;class door {privateString name;publicdoor(String name) {this.name name;}publicString toString() {returnthis.name;} }class tieDoor extends door {// 继承了door类publictieDoor(String name) {super(name);} }public class fanxingDemo {publicvoid show(ArrayList? extends door list) {// 设置类泛型的限可以是door类型或者是door的子类型Iterator?extends door it list.iterator();while(it.hasNext()) {System.out.println(it.next());}}publicstatic void main(String[] args) {fanxingDemod new fanxingDemo();ArrayListtieDoorlist new ArrayListtieDoor();list.add(newtieDoor(door-1));list.add(newtieDoor(door-2));list.add(newtieDoor(door-3));d.show(list);}} 结果 door-1 door-2 door-3     设置下限   TreeSet(Comparator?super E comparator)           构造一个新的空 TreeSet它根据指定比较器进行排序。 我们就根据这个比较器看看设置下限   package www.fuxi.jihe;import java.util.ArrayList; import java.util.Comparator; import java.util.Iterator; import java.util.TreeSet;class door {privateString name;publicdoor(String name) {this.name name;}publicString toString() {returnthis.name;}publicString getName(){returnthis.name;} }class tieDoor extends door {// 继承了door类publictieDoor(String name) {super(name);} }class MyCom implements Comparatordoor{publicint compare(door o1, door o2) {returno1.getName().compareTo(o2.getName());}} public class fanxingDemo {publicstatic void main(String[] args) {fanxingDemod new fanxingDemo();TreeSettieDoorlist new TreeSettieDoor(new MyCom());list.add(newtieDoor(door-3));list.add(newtieDoor(door-1));list.add(newtieDoor(door-2));IteratortieDooritlist.iterator();while(it.hasNext()){System.out.println(it.next());}}} 结果 door-1 door-2 door-3   从结果可以看出已经比较了但是设置的比较器是父类型但是TreeSet集合设置的door的子类型也可以排序就是可以是下限或者是下限的父类型 可以是tieDoor类型或者tieDoor的父类型都可以进行比较 假如又有一个类继承了door类那么此子类对象添加到在TreeSet中也可以使用当前的比较器进行排序。 --------------------ASP.NetAndroidIOS开发、.Net培训、期待与您交流 --------------------
http://www.sadfv.cn/news/344117/

相关文章:

  • 深圳网站设计我选刻软件开发人天报价标准
  • 佛山大型网站设计公司有免费的云服务器吗
  • 网站建设课程网页游戏传奇开服表
  • html个人网站设计模板北京著名网站建设公司
  • 网站关键词设定成都市网站制作
  • 团队氛围建设 网站单位网站建设的重要性
  • 广东建设银行网站首页w3school网站建设教程
  • 购买域名网站好湖南网站营销推广
  • 四川网站开发制作wordpress 首页文章摘要
  • 深圳网站制作公司咨询大宗商品交易平台推荐
  • wordpress查看网站内容阳江招聘网鹏程
  • 网站建设及维护费算业务宣传费南京软件外包公司
  • 山东一建建设有限公司网站首页快影
  • 网站备案去哪找接入商百度经验app
  • 一个网站的百度反链多好还是少好wordpress js外链
  • 企业网站网络推广自建站费用
  • 企业网站管理系统设置wordpress 图标代码
  • jsp网站建设技术案例浙江建设厅网站 打不开
  • .湖南省建设厅规范网站局网站建设工作总结
  • 湛江建设部网站wordpress 3.9.2 漏洞
  • 网站首页设计特点有哪些设计网站的步骤
  • 建设网站的目的及功能定位主要包括哪些内容网站备案怎么关闭网站
  • wordpress ugc百度seo排名优化公司
  • 免费行情软件app网站下载大全安卓办网站用什么证件
  • 那么多网站都是谁做的短网址生成器有哪些
  • 用jsp做的网站首页策划方案网站
  • 怎么做网站轮播图片量化交易网站开发
  • 免费搭建贴吧系统网站建筑招投标信息网
  • 如果自己想建设网站该怎么做招标网官方网站
  • 富蕴县建设局网站做网站灵宝