00:00
行,那咱继续再往下吧,再往下的话,这个to就不用我说了。对吧,这个to方法就是访问此对象本身啊,它已经是一个字符串了,是不是,哎,To three就不用说了啊,不用说了啊,To our case我说过了啊,诶tri你看一下各位啊,看一下那么这个tri啊。它是干什么的,它去除字符串前后空白的。哎,20个方法各位啊掌握啊叫做。这个方法是去除什么呀,去除。字符串前后什么空白啊,你比如说现在呢,我这儿写上空白空白对吧,Hello。哈喽。空格word空格是吧?哎,这个字符串点什么呀?哎,Tri tri是去除前后空白,各位啊,前空白与后空白它能去除中间这个空白它是不会去的啊,不会去的,哎,来我们看看这个结果。
01:03
去除字符串前后空白,你看前空白没了,后空白也没了,中间这个空白它是不能去的啊,它是不能去的,那这个呢,其实在开发中也很常用啊,很常用,那大家应该知道我们平时啊都上网,是不是上网的话,我们一般情况下使用一个系统都会进行什么呀登录。是不是啊,都会进行登录啊,你比如现在的话,我们打开一个浏览器。打开之后呢,我们输入输入百度。com之后呢,我们登录一下。登录这块的话,我们用用户名登录,那么这块有没有可能敲空格呀。有可能吧,有没有可能就是我们在输入用户名的时候,一不小心前面呢多了一个空格是不是,哎,我们叫加va曼,假如说啊,然后呢,哎,可能一不小心又多了个空格是吧?那登录的时候呢,它有可能就把前面的空空白和后边的空白怎么着都给它去掉,哎等中间这个才是真正的一个什么呀,哎,用户名啊,有能会有这样的操作,所以呢,这个字符串去除前后空白呢,你得会啊,叫做tri。
02:00
啊,已经测过了啊,叫去除前后空白啊,这个今天讲的这个内容没有任何技术含量,各位其实你只要努力就就能学会。你只要努力啊,就能学会,各位听明白了吗?你只要努力就行,你只要多敲多练,多敲多练,甚至呢,你也可以不用去记,你会查文档也行,你会查文档也可以。啊,查文档也可以啊,来最后一个方法,注意听啊,最后一个方法来。掌握,注意啊,只有这一个静态方法,注意啊,死论中只有一个方法是静态的,不需要对象。啊,这个方法叫做value of,这个方法叫做value of。Running off。对,我找一下啊,叫value of方法,这个方法的作用它是把不是字符串的东西转换成字符串。
03:01
啊,这个方法叫做value of,作用是什么?将非字符串转换成什么?字符串啊,它就有这样的一个一个一个能力啊,你比如说现在string.y of对吧?哎,填一个true,那么这个时候啊,它返回的这个结果呀,就是string。这个true或者是false。明白吗?哎。来。啊。这是个字符串啊各位。这已经不是那个布尔类型了,这是个字符串啊。这是个字符串。这个。它可以把不是字符串的东西转换成字符串,什么意思?来,再来一个。你填上去一个100是不是一个数字啊哎,它可以自动把这个数字给你转换成字符串。
04:02
嗯。啊。是不是,哎,转换成组床。有这样的一个作用啊,再来1string.value of。啊,然后呢,我们写上什么呀,3.14,诶它这个3.14是个字符串,就转成字符串了,通过string.value of这个方法一转,对吧,它这个3.14现在就不是3.14了啊是个啥是个字符串。明白吧,这个value of法,它这个静态方法,用类名去调的,类名去调这个方法,它的作用是把这个转换成字符串。啊,转成字符串。好了,那假如说我现在在这儿有一个user,各位。哎,User已经有了是吧,有了我们叫customer吧,这个类重名了,可能是啊来customer,那么这个时候假如说我在这个位置上,哎,我干什么呀?我string s1,哎,我string.value of括号里边参数我用的是个customer的话,大家想想这个底层会不会调用to顿方法。
05:10
这个是不是也是把等于把这个对象转成字符串啊。string.y off是不是把这个对象,这是个对象吗?是不是转成字符串啊。那这个value of底层它会不会方法呢?就是这个静态的,这个静态的value of方法。参数是一个引用的时候。是一个对象的时候,会自动调用该对象的to string方法吗?哎,我们可以看一下源代码啊。来点过去了啊,大家看调的这个这个方法是哪个方法是吧,我们第个参数啊,哎,string.value of,因为value of是静态方法,这个方法用类名去调,这个方法的作用就是把不是字符串转换成字符串,你如果是出就转成字符串处,如果是100转成字符串100,如果是3.14转成字符串3.14,如果是个对象,它会不会把对象转成一个字符串呢?哎,他把对象转成字符串,实际上它底层会不会叫托串呢?哎,点过去看一下。
06:12
大家看掉没掉。你看掉没掉啊o.two顺。是不是obj to?是不是,哎,你看它底层这个位置传一个object,它底层会不会掉object to方法呀。是不是啊,哎,它会调用啊,会调用顺点value of啊,然后new一个customer,然后这个时候呢,会转成哎我们的字符串,但现在我customer有没有重写to方法在这,我现在是不是没有重写to论啊,那没有重写to论,那么这个to论方法调的是object,所以这块是不一个对象内存地址啊,是不是对象内存地址啊,是不是啊,就是你没有重写图。没有重写to string方法之前。
07:00
是对象内存地址,你想想是不是这样的,你有一个customer传进去,它底层这个方法调的是什么呀?哎,Toth,那你现在customer这个类并没有重写to方法,所以一定是调object负类的to方法转成了字符串,所以这块是一个内存地址,你运行一下你就知道了啊,运行一下。你看看是不是一个对象内存地址啊,对吧?哎,这这个这个我觉得猜测应该能猜出来啊,最后结果是这样的,那如果说现在我在这重写to呢,我重写to顺方法呢。那假如说我重写了,那你这个new customer传进去string.value of这个方法是不是调object,它的to方法一定会调到类上的,这个重写之后的to方法呀,Out insert,然后to方法写上来走走。OK。好,投资有了各位啊,那现在呢啊,我就写上我是一个啊VIP客户行吧,哎,那么这个时候大家想想这个运行结果是不是就变了,就不是这个值了吧,哎,这个运行结果就变了,各位啊来当你这个时候再去输出S1的时候。
08:08
他会把这个客户怎么着啊,转成一个字符串吧,底层会调哪个方法呀,图论吧,图论方法是不是在这重写了呀,这个方法现在是不是已经返回固定字符串了,所以这个时候输出的结果是什么呀?来我们看一下。嗯。我是一个VIP客户,应该是,嗯,我是一个VIP客户是吧,就不再是对象的内存地址了。对不对,哎,对象不再是对象内存地址了。啊,哎,我讲这个strange value of大家懂不懂啊,懂的话打个一吧,Value of理解吗?Of。Y off理解吗?这Y干啥的呀?它会把你不是字符串的东西转成字符串对不对?哎,不是字符串的东西转成字符串,不是字符串东西转成字符串。明白吗?哎,string.value off把你这是个Java对象啊,它会把你这个Java对象转成字符串,但它转这个Java对象的时候,你根据源码,你可以看到它调的是to顺方法啊,图论方法,诶各位我问大家一个问题啊。
09:15
我们现在是不是可以研究一下这个print LN方法的源码了?诶,我们是不是可以研究一下print LN这个方法的源代码呢?我们可以研究一下各位啊,来我研究一下啊,点过去了啊,点过去了啊点了各位大家注意看,或者说我我这样吧。我我写个100吧,行吧,我写个100,看底层怎么走的啊,注意看啊点过去。好,大家看有没有调,有没有调这个。有没有调这个各位什么意思,告诉我?你研究研究研究啊,来system来打印输出输出来啊,3.14。
10:03
来,我们点过去啊走。Double有没有准点off?哎,再来看。哎,如果你这块是一个什么呀,不玩类型点过去啊。好,不玩类型有没有掉准点value of。这是公司写代码,这不是我写的啊。来,再看set.out打印输出new一个object。现在你应该终于知道为什么它会调这个对象的to方法,就是这块有一个object OB BJ new,一个object,然后接下来我经常说的一句话是什么?如果你把这个obj作为参数传进去的话,如果你把这obj作为参数传进去的话,它会自动调用它的to string方法,是不是我这句话现在能不能解释?可以了,大家看啊,Print LN打印一个对象的时候,它是不是会调string.value off把X传进去,而string.value off这块是不是调到to string方法?总之我们现在set.out.print line打印输出G的时候,它是不是会自动调OBBG的to string方法呀?现在理解杜老师说的这句话了吗?你通过原代码应该是可以看见的。来,我们再分析一下啊,system.out.printline来打印的这个参数,这个object参数,然后点过去,大家看这个方法是不是底层掉的string.value off string.value off方法,然后再往下找,是不是它掉的是OBBJ的to string啊,所以你system.out.printline打印输出这个东西的时候,它会。
11:29
自动把它转成什么呀,哎,字符串,它实际上底层调的什么?调的是toth方法调的是to string。你不写它也掉,你不写它掉啊,走你看是吧。诶,你看这个print打印个对象,它怎么做的,先string.one off先转成一字符,但是你转字符串的时候是不是调到to啊,哎,调到to啊。这个大家理解吗?为什么说打印输出一个引用的时候会掉图?就是通过源代码可以看出看出什么,为什么输出一个引用的时候会调用to string方法。
12:12
啊,叹号吧,对吧?哎,为什么输出一个引用的时候会调用to string方法。你跟一下啊,这这不LN这是个方法名啊,点过去啊。对吧,传了个参数吧,它是不是string.y off啊哎,转成字符串再打印,那你这个你看y off点过去你看。是不是,哎,这个方法底层调的OB,这点to论吗。对不对,哎,这样的。好,这是源代码,所以我问大家一个问题,system.out.printline这个方法打印到控制台上上的是打能够打印到控制台上面的是不是都是字符串?大家思考一下我这句话有没有问题?各位思考一下啊,就是输出100,实际上在我们窗口上显示的这个100,还有这个3.14,还有处还有诶这些东西其实都是字符串,能够打印在控制台上显示出来的,其实都是字符串。
13:11
为什么?那print LN,你看这个方法,你点过去参数是int,它有没有把这个int转成字符串啊。Right,是不是就写这个字符串啊?对吧,四点。所以说system.out.printline这个方法打印输出的这个东西,它都是进行第一步,第一步都是先把它不是字符串转成字符串,字符串才能打印到什么,哎,我们的控制台上,所以展现在控制台上面的这些东西都是串。都是字符串,都是字符串啊,因为你调的都是system.out.printline这个方法,你看一个布尔类型,你点过去,大家看是不是先把尔类型X是不是先通过string.value off转成了一个字符串再输出的呀,所以我那句话就是你能够打印在控制台上面的这些东西都是什么呀,都是一个字符串。包括你输出的这个对象OBJ,实际上它底层是个对象,在输出的时候它会做类型转换,Print LN这个方法会调string.value off,把X传进去啊,string.value off会继续往下调,用什么呀?To string方法把它转成字符串,所以呢,它其实点out.print line这个方法,它在输出任何数据的时候,它第一步都是先把它转成字符串再输出。
14:19
啊,再输出。实际上本质上各位啊,就是本质上你怎么去理解,就本质上。输入法又变了,咋回事?哎,本质上啊,本质上C4特点out.print。这个方法在输出任何数据的时候。都是先转换成字符串再输出。本质上out点这个方法在输出任何数据的时候,都是先转换成字符串再输出。你不是字符串,它会给你转成字符串,你object对象它不是字符串是吧?它会转怎么转的呀?调string.value of转的,你看value of底层又调了to soon。
15:08
对不对,哎,所以你输出这个对象,你对他输出的不满意,你要重写方法嘛,对吧,来你再输出一个,你用一个什么呀,Customer是不是,哎,你输出这个对象的时候,他为什么会输出一个,我是一个VIP客户来走一个来。嗯。你看看是吧,我是一个VIP客户,但为什么会输出VIP客户呢?对吧,那是因为你是个对象对吧,它会调这个对象的to论方法,而这个对象to论方法你经重写了,你一重写,那输出存当然是这个这个这个结果对吧?因为方法返回一个字符串,返回这么一个字符串啊是不是?哎,你好好想想啊,咱们应该是越学越明白,那么这个时候大家思考一下那个hardwood是不是就可以理解了。咱们第一天敲那个hello word程序的时候,你有印象吗?第一天敲那个hello word程序的时候,我是不是输出一个100这样的数字啊,对吧?哎,我输出这个200这样的数字,其实这个数字你表面看它是数字,他在print line打印输出的时候,它会把这个100先转换成字符串再输出啊,凡是能够打印到控制台上都是经过转换的。
16:09
啊,都是经过转换的。
我来说两句