00:00
好了,同学们,咱们接下来咱们就继续再再来看一看。多喝热水,多喝开水啊,多喝岩浆。行吧,那么咱们接下来接着看一看我们这个封装好吧,嗯,那么这块呢,咱们可能还是得把我这个叫做第15的课堂笔记打开啊。来版的打开交的15的课堂笔记。这个啊,这个文件打开之后呢,我就先把这个先关了啊,先关了之后呢,呃,我们上节课的这个代码,我们得打开再看一看啊。啊,这边这个窗口呢,我们。直接DL新class先删一下啊。删了之后呢,我们来看一下啊。其实我目前就写了这个这个这个是不是这个是我们早晨回顾的时候简单写的东西啊,把这个再打开大家看。这个person是什么呢?就在这块啊,我们有一个什么呢。
01:03
哎,有一个这样的一个属性是不是,哎最初的时候我用这个。然后呢,我在这儿呢,写了一个person test,这个person test呢是怎么回事啊,哎,我们六了一个person是不是,然后呢,直接访问P一点 agep.H呢附了一个50进去,然后呢p.edge怎么着啊输出。对吧,紧接着p.edge呢,我给他附了一个负100,负100之后呢,接下来我在这输出了是不是,哎,我们当时测试这个程序说什么呀,说这个person的这个age年龄是可以被随意的访问的,那可以被随意的访问出现的一个问题就是什么呀,这这个属性啊,它不安全。啊,A指数它不安全,明白吧,那不安全,所以呢,后来我们就进行了一个什么呀,哎讨论啊,我们说呀,这个东西可能得封装一下是不是,那于是乎呢,我在这里是怎么封装的呀。我首先进行了封装,第一步就是属性给它私有化,私有化之后呢,紧接着呢,我在这写了一个TEST02这个程序。
02:02
对吧,那零二这个程序当时怎么说的呀?哎,零二这个程序啊。在这里怎么着呢?哎,New了个person出来之后呢,在这访问p. agep.age访问p.age一个20附不上了,为啥呀啊,因为我们的age属性啊,现在已经被什么呀,被私有化了。是不是?哎,被我们private进行修饰了,Private英语单词翻译过来是私有的,Public翻译过来表示公共的,公有的啊,它俩是正好是相对的啊,一个是公共,公共就意味着大家都可以用,然后还有一个是什么呢?是private是私有,私有呢就意味着只能自己用,比如你有一个小秘密是不是啊,不公开这很正常是不是啊,你有一个小秘密,你的体重是一个小秘密,你的年龄是个小秘密啊,可能大部分对于女生来说是这样啊,Private表示私有的啊,私有的,那私有的在外部是没有办法访问的,所以解决了第一步各位哪步啊,安全性解决了,就是说我们彻底安全了是不是啊,因为在外部访问不了了。
03:02
啊,因为你一访问就怎么着就报错嘛,Java c编译一下person test02现在应该是没有问题的啊,那person test02呢,这个程序呢,如果你把这放开。是不是,哎,你把下边这个放开,放开之后呢,你再去编译,你看就会报错你看。不行啊,十十三十六这几个都不行了,A不行,A不行,A不行是不是?那得解决这个问题啊,我们现在是在这个位置保证了age的安全,但你有点忒安全了吧,安全到什么程度呢?就是说我们彻底访问不了你这个age属性了,是不是,那这样肯定是不行,所以呢,我们呢应该是对外啊,在这个person这个类当中,我们应该对外怎么着啊,提供简单的访问入口,也就是说就像大家买了个电视机,买了电视机之后呢,电视机都带一个遥控器,诶你干什么呢?你用遥控器去随便操作这个电视机,电视机都不会坏,就是你操作入口是固定的,你只能通过什么去操作呀。你只能通过什么呀,你只能通过那个遥控器去操作电视机。
04:04
遥控器现在就相当于是那个访问入口。电视的遥控器就是一个访问入口啊。就这个访问入口怎么去理解呢?其实就是说这个电视机的遥控器就相当于是电视机的访问入口。简单。是吧,简单明了。啊,那么我们这个呢。我们这个访问入口该怎么制定呢?昨天呢,我让大家去呢,去思考这个问题了,因为我们访问这个age,访问这个年龄啊,我们也通常就是两种访问方式,因为我们分析我们程序也是一样的,要么就把这个年龄这个age怎么着给他读一读是不是,哎要么就怎么着啊,哎就把年龄怎么着这个值给它干什么呀,来给它改一改。是不是就把这个年龄的值给改一下啊,年龄值给改一下。那么那么这里呢,我进一步提示了,既然一个是读,一个是改,读是get,改是set是不是,所以说你应该写一个get方法专门干什么呀?负责读是不是写一个赛方法专门负责什么呀?哎,负责写啊,负责写,那行了,那在讲这个get和赛方法之前呢,我觉得有必要拐个弯,各位啊,在这里需要给大家拐个弯。
05:21
啊,拐个什么弯呢?就关于这个方法,我们是第一次去接触,其实也不是第一次接触,之前接触过这个方法,但是方法但方方法上的修饰福列表里边带一个关键字,这个关键字叫什么叫static static啊,我来给大家说一说,这个带static跟不带static大家有有什么区别,现在呢,可能需要你去把这个东西记一下啊,Method哎,Test什么的呀。叫做。呃,零一啊,或者是直接零一了,就写一个例子就完事了啊。来咱们看一下啊,就是说带有static的方法,还有一个什么呀,没有static的方法。
06:07
分别怎么调用这个呢?我先提前在这里给大家普及一下啊,然后呢,我们再往下继续。这块我目前解释不了啊,我不好解释,我讲了this之后呢,才能解释这个东西,现在这块只能死记硬背啊,比如说现在呢,我在这儿呢,有一个方法叫public static,然后VO do some system.out.printline打印输入什么呀,叫做do some。是不是好,这个方法大家看是不是带有static呀,是不是带有static是不是,哎,那么这样的方法我们怎么调用啊。带有时代,这个方法怎么调用?带有的方法怎么调用,就通过什么呀,叫做哎类名点的方式。是不是哎访问,那么这个时候呢,我们可能就在这儿啊,就访问了,是不是怎么访问呀,我们叫method test这个类吗?是不是访问这个类的什么呀,啊叫do some这个方法是不是哎。
07:15
那么现在呢,我们对这个程序进行什么呀,编译。Java c呢,编译一下method test.java然后Java去运行method,哎,我们之前就是这么说的啊,当时大家也是这么记的,没有任何问题,那么接下来呢,我们在这块呢,除了这种方式调用之外,我们说了这个类名啊点啊可以怎么着啊,可以省略啊,前提是什么呢?在同一个类中。是不是哎就这个main方法去调用我们的一个哎,Do sum,那么在同一个类当中的话,我们这个哎类名点是可以省略的啊,类名点可以省略。我们尝试一下,我们再来编译一下,再来运行哈,大家看没有任何问题是不是好,那么接下来我们再继续往下看啊,再继续往下看,看什么呢。
08:02
诶,是这样。如果说我们在这里有一个什么呀,Public void do,我们第一次尝试出现这样的一个方法,是不是,哎,这个方法呀。没有什么呀,Static这样的方法被称为什么呢?哎,被称为实例方法,各位。实例方法啊,对象方法,对象级别的方法。呃,这个这个没法解释啊,没法解释没法解释啊,大家目前死记硬背就行,就带上static,你怎么调是通过什么呀类名点的方式去调的。然后下边呢,这个呢,没有这个static去掉了没了,这个可以去啊,去掉之后呢,这个方法呀,我们称为什么呀,实例方法。实例方法,那么我在这里呢,强调一下啊,强调一下实例是什么。
09:03
对吧?对象被称为什么?哎,被称为实例是不是哎,实例相关的有什么呀?实例变量是不是哎,实例方法对吧?实例变量是对象变量,实例方法是对象方法。啊,这些像实例相关的啊,都需要什么呀,先干什么new对象。通过引用点的方式去访问。各位啊,我还是那句话,现在我解释不了。呃,我这块呢,不好解释为什么,因为我现在this还没有讲,等我们后面内容讲了之后呢,你可能就理解了哦,带static我们要用类名点的方式去访问,不带static的我们得用什么呀?哎,得先把对象拗出来,我们尝试一下用这个类名,类名尝试啊,尝试使用什么呀,叫做类名点的方式访问什么呀,访问实例方法。
10:16
啊,访问实例方法,那么这个类名叫method test,然后直接把do do other拿过来,拿过来之后呢,我们发现一个问题,编译就会报错,你看编译报错了是不是,总之这个错你现在还看不懂什么,又是静态上下文,又是什么引用非静态方法,你看不懂就别看了,啊这个你看不懂第16行,总之也是有错的,第16行是这行代码,这是错的,这不能这样调用,就是今天呢,又学到了一个新的东西,但是这个东西呢,你现在可能很纠结一件事,就是老师我不理解,老师我不理解,同学你呀,不理解就算了,这会儿先别去追。注意这个问题啊,我们后边讲了这个东西你自然就理解了,但你现在需要帮杜老师一个忙,就是死记硬背,好吧,死记硬背一下,带static就用什么类名点的方式去访问啊,不带static,那么用什么去访问啊?哎,你得先用对象去访问啊,这个是错误的,错误的啊,那么正确的方式是什么呢?你需要先把这个类干什么呀,给它扭对象出来。
11:18
对吧,你比如说MT等于一个什么呀,哎,他好能不能对象没问题,因为你这个类啊,大括号里边是不是没有构造方法,没有构造方法是不是系统会提供无参构造,就相当于你这个类里边是不是有个无参构造方法,你的无参构造是不是你不写它也有啊。对吧,哎,就算你不写这个构造方法,它是不是也有这个五三构造,这样的话,你是不是可以把这个类呢,作为对象的形式给它创建出来,是不是第一步是先创建什么呀?哎,对象对象有了之后呢,我们通过什么呀,通过用点的方式啊,通过引用。叫什么呀?哎,点的方式啊,访问什么呀,实例方法啊各位,那么这个方法它不带有static,你你懂吧?哎,所以这块呢,我们的访问就变成什么呀,mt.MT是引用吗?点什么呀?哎,Do other后边有个括弧,括弧里边啥也没有加分号好就可以了,那这样的话,我们在这个位置上怎么做呢?system.out.print line打印我们输出来啊,比如说叫do other啊do。
12:21
Do,好了,那这样的话我们再来编译一下,大家看编译这个程序就没问题了,Java去运行method test什么呀,哎,Test就行了啊,Do some do some do other。啊,所以这个地方呢,大家呢,先死记硬背吧,好吧,我还解释不了啊,死记硬背你就记住带static怎么调类名点,不带static用什么调,先定对象,用引用去调。来,给大家一分钟时间,大家把这个背一下来,带怎么调?用类名点去调。啊,不带static用什么调,先用引用去调。啊,来带sta,用什么调用类名点去调,不带static,我们称为什么实例方法,实例方法,对象方法,对象级别的方法啊,然后你需要去拗对象,然后再去访问这个do other,啊,Do这是实例相关的,这叫实例方法。有同学说老师这个输出do some,这个输出do other,凭什么这个带static,这个不带s static这个还是那句话,我讲了static关键字之后,你就理解了,我现在还没有讲static。
13:31
啊,你看到没有,这个课程里边安排是在这里讲的this和什么呀,Static只有说我们的this和static讲完之后,你才能够彻底明白这里的一个玄机啊,这里的一个,哎,比较巧妙的一些地方啊,为什么这个带斯代克,为什么我这样的,我这个方法就是可能自己还不太明白,诶我什么时候定义方法的时候带上斯sta,我什么时候这个方法定义的时候不带斯sta,这个都还没有讲,这个后边我会哎。我会给他强调这个东西啊,会给他强调,到时候你就理解了,现在呢,你先不用管他啊,你心里可能稍微有点什么呀,不舒服是吧,但是呢,哎,这个不会让你等太久啊,这个很快。
我来说两句