00:00
好了啊,那么接下来咱们再接着往下看啊,还是泛型,那泛型这个东西我们能自定义吗。自定义。T03。就是我自定义泛型可以吗?自定义泛型可以吗?可以可以啊,大家看这个代码是S公司写的,他可以我们是不是也行。你看这代码也是人写的呀,他用间号呗,那我也用间号行不行啊。来,你比如说我用上泛型啊,我用泛型了各位啊。我也写个减号,装模作样啊,装模作样一下啊,来这块呢,我就随便写了啊,随便写好,那我用了泛型,接下来我提供一个方法。Do some这个方法里面的参数啊,它的类型必须是这种类型。
01:00
来我呢,嗯。它去了把它去了啊去掉来,那么接下来这个地方呢,我输出什么呀,输出这个O。好注意看啊,输入这个O,那么接下来呢,我们在这儿呢,有一个闷方法。没方法啊。好了,大家注意看啊,我们调这个方法,大家注意听啊,调这个方法怎么调呢?得先拗对象。有对象啊,比如说我指定。七六。他我指定string啊,那我GT去调一个方法叫do some,好大家看我这个do some是不是只能跟啊。是不是只能跟啊各位。啊。就是说这个是A,这个就是A,假如说那如果你这个地方规定是string的话,那我这个do some是不是只能是string啊。
02:04
就这个只是一个标识符,随便写明白吗?这个位置随便写的。他只是个标识服饰,随便写的这个。你你gene test03这边跟的是string,看见了吧。那你调do some方法的时候,它是不是要求是顿啊。你传个字符串进去,你传个别的行吗?行不行啊,报错类型不匹配。看见没类型不匹配啊,不行。你拗对象的时候指定了泛型啊,拗对的时候指定了泛型,是指定了泛型是什么呀?泛型是string类型对吧,你指定string啊,你这儿和这儿一样。你这指定是string,你看这个类名后面加号吗?指定string,你这个方法就得是string。
03:01
你gt.do some,你看是不是参数类型是string啊,你必须得写个string才才行,你写的不写的别的不行对吧,调方法你看就输出了吗?执行这个方法就输出了,你看。对吧,ABC吧,你看。挺好玩对吧,或者说我们可以换另外一种类型,各位。在这块呢,我new这个对象的时候,我指定泛型是什么呀,是inte类型,那么这个时候我拗一个。这个对象。扭完之后呢,GT2调度三,我们大家看参数是不是只能跟ET这啊。In t跟一个100没问题对吧?哎,GTr.do sum,你跟一个字符串ABC行不行啊一样。跟一个字符串ABC行不行啊不行,这个位置就是什么呀,叫类型不匹配了,看见了吧,类型不匹配不行,你规定泛型用in in teacher,那你do some方法你就得用用in teacher。
04:04
用整数。那行,你看。对吧,哎,就自定义范型会用了吗,各位。会用了吗?就这个位置和这个位置要一样,这随便写一个标识符都行。范型。那我们这块也是一样的,你看。看这个。啊。你比如说你的迭代器这一块规定是string。那你这个方法反馈的就是。看到没,你看你规定迭代器里边是什么,它这个ne的方法返回就是什么。你比如说你你可以自己写一个class叫什么不叫MY。
05:01
你规定啊,T。其中有个方法。这个方法呢?返回什么呀,返回。叫get。你看那这个时候你就可以怎么着啊,哎,你有对象吧MY。啊mi new一个MY好拗出来,New出来之后呢,MMi.get你看这个get方法反回什么词你看。对吧,哎,这返回一个词论。对不对,那如果说我MY这个类,现在我在这。用的是一个呢。或者animal呢?
06:00
你有一个MYE是吧,然后我调用二点,大家看get这个方法返回是不是就animal啊你看。这个方法是不是返回anymore?对吧,哎,这就是泛型啊。刘老师,这个位置我我写啥,就这个位置我写啥,一般写两个,一个是E,一个是T。泛型啊,自定义泛型这个间号里边一般写T或者是E,但没有要求你随便写都行,你愿意写成它也没问题,它只是个代号拿过来放,这就就就完事了。就完事了啊,随便这个这个是随便写的,加号里边是随便写的啊,随便写的。这是泛型,你看。是不是啊,你你规定返回一个字符串,将来你规定这个地方用的泛型是字符串,那get方法返回字符串,如果你规定这个类它使用的是它这个泛型用的是animal,那将来你调这个get的方法,它返回的是。
07:02
这个animal,你这个是T,这个就是T吗?如果你这个是string,你这个是string吗?如果这个是animal的话,那这个是不是就是animal啊?对吧,哎,这就是泛型。自定义泛型的时候啊。这个。间括号。中的。是一个标识符,随便写啊随便写。随便写啊,对你你你有对象的得得定义类型啊,你说你这个类在使用的时候,你得有泛型,那得用啊,你得用啊,有的老师我就不用,我就不用,我不用你写了泛型,我要是不用会有什么后果呀,你看我就不用啊,我不用你看叫做G3GT3,你有一个什么呀,叫。T03GT3。
08:03
点do some,大家看这个do some方法是不是一个object?看见了吗?这个do some方法,这是不是只能传这这是不是要求是object呀?是object。是吧,哎,Object参数类型。就你不用就是object。不用泛型,就是object类型。啊,你用了泛型它就固定了。啊,自定义泛型的时候,间号里边的是一个标识符,随便写啊随便写你怎么写都行。嗯,Java源代码中经常出现的是谁,是E。和T。是这个。和这个注意啊。
09:01
是单词首字母T是type啊,单词首字母。明白吧,哎,这是T啊,类型类型。啊,你比如说我们这里。这个link。是不是就可以用一下泛型,这是我们写的单列表啊。对吧,这不单列表吗。单向链表你就可以用一下泛型啊。对吧,那你get这边是不是find呀,呃,Modify remove。比如说爱的方法吧。爱的方法这一块是不是就可以用一下泛型?谁啊,一。你看。是不是,哎,你原先不是object吗?你现在用泛型的话,那你这个类型这边指定一个泛型呗。
10:07
你指定一个,比如说string吧,对吧,哎,那你将来这个I的方法,这只能传字符串。就这个意思啊,你想想你的笨方法,写上link,你看这儿。是不是哎,可以你规定一个string my link或者link,你有一个什么呀,是不是用完之后呢,你link.I你看是不是只能是string啊。只能传string字符串ABC进去,那你link如果在这调I的传一个123进去,对不起,类型不匹配。因为你用了泛型,你这块这是E的话,你爱的方法里边就是E,那你这块呢,你规定词钝,你就只能传字符串。这叫类型不匹配,类型不匹配不能写这个得写它。对吧,泛型就是这样用的。啊,就是编译阶段的一个功能,各位啊,不属于运行阶段,跟运行阶段没关系。
11:00
啊,运行阶段没关系,各位啊,就这样用就行,这个位置是随便写的啊,但是一般不是写个T,它就是写个E是元素,T是类型,E是element这个单词的首字母,T是type这个单词的首字母啊,就泛型,就咱们先暂时泛型的一个初步,我们先说到这儿啊,可能还会有更多的比如泛型,像这种符号的什么问号extend啊,什么什么什么类型是不是,哎,像这种泛型到时候我们再再说啊,现在先把泛型简单的一个初步,咱们先给大家说一下啊。
我来说两句