00:00
那接着呢,我们来看一下这个第三道问题,第三道问题呢是呃,新创建了这个一组类啊,第一个呢叫tri an triangle是吧,三角形啊,嗯,还有它的一个测试类,嗯,它呢声明了三角形的底边长和高,嗯,同时声明公共的方法来访问这个私有的这两个变量,哎,再提供构造器啊另外一个呢,做测试,哎这呢也算是一个比较标准的一个类的设计啊,诶CTRLC一下。那那这呢,我就在,诶再声明一个吧,哎,这个叫E21啊。好,这呢我们去创建,这呢我仍然可以把这两个类呢分开呢去创建啊吹哎triangle是吧,TRY应该是TRY是吧,Triangle三角形,然后再来他的一个测试的,那这个angle别写错了啊,他跟那个那个天使那个容易整混是吧。
01:04
这个是叫角,这个踹呢,这个就是三的意思是吧,哎,三角形那个那个天使呢,是这个是天使是吧。对这这别别整整错了啊,你说这个,呃,三个天使那成啥了是吧,这三角形啊来看这儿这个题目呢,其实也不困难啊,算是一个比较标准的一个题目了,嗯,声明私有的,嗯,这个写成double类型吧,叫base,这是底边长。哎,然后private double,然后he,哎这个是高行,然后呢,提供公共的方法呢,来访问,哎这呢访问他好像说只提供get啊,其实set呢,我们也可以提供一下啊,这个咱们呢就是快速的写一下,那今天呢,大家需要把这个盖赛方法呢,大家写熟啊,诶set base,哎这样一个double型的B,然后get方法。
02:24
哎,Public avoid set一个hat,这呢,Double类型的hat。哎,这个我先暂时先别写hat了,先写成个H啊,哎,Get一下,Return一下,哎,Out斜杠啊回车。OK,这样的话呢,这个盖塞方法呢,我们就都提供好了啊,提供好以后下边说提供了必要的构造器,诶那咱们呢,去提供构造器,暂时呢,其实也有就是空餐的啊嗯,我们这儿呢,显示的给大家定义出来,诶先public的,然后呢诶triangle。
03:15
呃,先呢,提供一个空餐的啊,这样啊,然后try angle,其实我们在开发的时候呢,一般习惯上呢,给这个类呢,都会提供一个空餐的啊,一般呢,都会提供一个空餐的啊啊然后呢,我们再定一个搭布型的啊,这叫B搭布型的h base呢B啊hat呢就是H。行,这样的话呢,我们就定义好了,当然了,你还可以再去定位,比如一个参数的,就是专门来初始化这个base的,呃,另外呢,再定一个参数的,只是来初始化这个height的,哎,都可以啊,都可以,这呢我就只提供两个,因为这个题目它也没有明确说必须要定义哪些构造器啊,诶我们就定义两个呢,就一个呢是没有参数,一个呢就是把这几个属性都出入法,哎这样的构造器,接着呢,我们来这做测试啊,哎,写一个main方法,好,那这个时候呢,我们这个啊triangle。
04:16
哎,它然后呢,这个我们写成一个T,哎等于new一个啊传ang构这呢就是空三的,哎空三呢,调完以后的话呢,你可以哎造以后呢,你可以直接呢去调用一下我们这个,比如说base斯哎加上这个t1.2,哎我们去get下base斯哎加上逗号哎高。嗯,这个T1第二啊,Get一下这个hat好,因为呢,我们都没有给赋过值,嗯,那所以这时候呢,就都是默认值,哎,那如果在这个之前我们去设置一下啊,T一点去set base2.0 t1.set啊这个2.4。
05:02
啊,那你设置过以后,那你再去获取,那就是你设置好的这个值。那此时的话呢,我们已经不能再通过呃对象呢来调用咱们的base属性了啊说你这设置一个2.5啊T一点哎,Height设置一个这个4.3,哎这个时候呢,都不允许,哎这都叫is not visible,哎对大家呢,要习惯知道这个什么意思啊,并不是说呢,我们现在呢,在堆空间当中没有这个属性是有的,对是有的啊就如果呢,这时候咱们通过这个内方法来画这个内存图的话呢,这是占,这是堆,哎占呢,咱们这叫T1,在堆里边呢,我们这儿用了一个对象,诶捏完以后注意这时候呢,我们堆空间当中仍然是有属性的。就人家这个类呢,声明的时候有几个属性,这块就一定会有几个属性啊,一个呢叫base,一个叫he,这两个一定都有啊,初始化值呢,这都是0.0啊,只不过呢,就是我们呢,不可以再直接通过这个T呢,去掉人家这个B和呃BA呃贝和hat了。
06:14
因为人家私有化了,所以我们这种呢,称作叫哎不可见。它是有的,只是不可见了,隐身了啊,那么我们只能是通过这个方法来调那塞贝斯,以它为例啊,怎么理解呢?这有个2.0,相当于我们传的十参了啊,13呢,对应的那个形态呢,我们叫做B。那咱们叫做B,相当于你把这2.4呢,这个B毕竟是一个行参嘛,它就这就在这个站空间了啊,哎,把2.0呢,付给我们这个方法的这个行参啊,这叫2.0,然后呢,在我们这个set base的方法当中,咱们是将这个base呢赋制为这个B,呃,相当于就是把这个base复制为这个B,所以这个时候呢,把它改成了2.0。啊是这么着啊呃,然后呢,这个方法调完以后呢,这个变量呢,诶它也就弹出站了,呃,咱们下边呢,你可以通过这个get base的方式呢,就是通过方法啊去调到的这个B是2.0啊这时候呢,我们对属性的操作呢,都反馈为方法的一个调用了。
07:16
啊,那么咱们今天讲完这个封装性以后,诶,后续后续咱们在定义一个类的时候呢,习惯上呢,都会把这些属性呢,都习惯上去私有化一下啊所以说呢,这就体现为咱们去调一个类中的结构啊,那你就通过对象来调,通常呢都是来调方法。啊,通常都来调方法属性呢,也可以通过方法呢去get set,所以呢,基本上都返回方法的调用了,啊行,这呢是我们调的这个空参的构造器,那我们也可以调一个代餐的,这呢复制成一个,比如5.1哎5.6哎一个呢是给这个底哎一个是给高赋值,哎赋值完以后我们再进行一个输出。
08:00
哎,这个我们改成T2。哎,关于这一组的啊,哎这个执行,哎这呢就是我们构造器当中负的这个值,哎通过这呢,我们再体会一下说构造器呢,一方面可以用来创建对象,哎同时呢,诶可以给我们相应这个对象的这个属性啊赋值啊,因为这里边呢,我们写相关的这个逻辑了啊这呢都是呃两个基本的这个问题啊,基本的问题大家呢都需要会写啊。
我来说两句