00:00
目前呢,咱们static呢,咱们只能是去讲一下属性和方法,因为后边两个还没有讲,讲到的时候呢,咱们再看一下static修饰它们的一个特点是什么,那么讲完用代这个修饰属性和方法之后,我们再做一个总结,总结什么内容呢?总结一下咱们到目前为止造一个类呢,实际上就是声明这个类中的属性方法,乃至于说构造器了,构造器呢,不能用static修饰,咱们先不管。那现在呢,我们再去设计一个类的时候,大家就要去想这个属性我到底该不该加staic,这个方法呢,该不该加static,那只有这样的话呢,你才能够明确static到底什么时候去用,所以呢,我们下边就是在开发中如何确定一个属性是否要生命为static。啊,以及呢,我们开发当中如何确定一个方法,要不要生命为斯蒂。
01:05
这个呢是对咱们实际开发是有帮助的,就是我们讲了这些点的话呢,你开发中要不会用,那就白讲了,那下边呢,我们就得考虑这个,原来咱们生命格类呢,都没有讲过static,那就不用想了,现在呢,讲了以后你就得想说我到底要不要加static,那大家这块呢,想一想咱们怎么去做一个判别。啊,找同学来试着想一想。五号钱。嗯,有没有什么想法哇,你现在把眼镜摘了,然后一一讲戴上眼镜了,刚才能看清不?
02:00
有想法不?这个你得跟我有交互啊。你你看我一眼得啊,比如说咱现在就在面试,我是面试官,你是来面试的,你咔咔咔跑了一个多小时终于过来,过来以后我说这个题你会吗?你就低着头,那我也很尴尬呀,你好歹你看我一眼是吧,你说这个题不会不会,你可以说这个情况呢,我们实际开发中我没有用到过啊,所以这个题呢,我就不太清楚了,你也可以有个表达,那那我这换下一个是吧,就是不要这个时候呢,你又不好意思,然后这个题我也不会,又不知道该怎么去说,就是你在那低着头,或者你看着我,你要你这会你看着我,其实更难受是吧,你看着我,我看着你,咱俩谁也不说话,因为咱俩好像有事似的,是吧?啊得有一个反馈哈,有有想法吧。啊,说的还挺严密的啊,暂时没有啊行,暂时没有就先再想一想这个王伟东你有想法吧。
03:09
我想法就是先看看这个属性到底有没有。嗯,和类的关系。和对象的关系有点抽象,这样举个例子,我这呢课后有一道题,这道题说呢,编写一个类实现银行账户的概念,说这里边看涉及到这么多属性啊,有账号,有密码,有存款余额,有利率,有最小余额,先看这样几个属性,那你看这几个属性呢,哪些我们可以考虑生明为静态,哪些呢就不应该是静态,对这个就有一个参照了,对吧,那你看账号静态静态吗?这不行,对,因为每个对象了,就就每个你账户是不是账号都不一样,密码呢,密码那一样就坏了是吧,你就可以出去天天去捡银行卡,就捡完卡你就直接呢输密码就行是吧,那存款余额呢也不行,利率呢,诶大家利率都一样,咱们假设就是银行可能还有很多种利率,跟你存的时间啊,什么有关系的,但是只要你是那个时间段的利率。
04:20
所大家都一样,那既然大家都一样呢,这个是不是就可以给他静态了,对,那最小余额呢,最小余额就是说你这个大家呢,就是要求,比如说你要办个金卡,他说你最起码里边你得存够,比如1000块钱,就这个意思啊,这叫最小余额,这个是不是也可以静态啊,对好,那通过这样的例子总结一下,你说什么样的属性你才可以给他竞态呀,大家都一样的,那就是说大家都共用的就可以。就是相当于我们这个属性,我们要不要给他静态化呢?就是说这个我们这个你这个这个属性不会随着你这个对象的不同而不同,或者换句话说呢,就是这个属性呢,其实所有的对象共有一个就可以的,我们就可以给他加一个static对吧?嗯,这个也就是说嗯,属性。
05:18
就是我们这个属性呢,是可以被这个多个对象所共享的啊,说不会随着这个对象的不同而不同的,那么我们就可以把这个属性呢,生命成一个静态的,就像说咱们这个账号一样,账号这个属性呢,你这个对象不一样了,这个账号就应该不一样啊,那我那那你就别静态了,我们不说不会随着这个不同而不同的,那就可以考虑给他做一个带这个修饰。啊,就是这样一个情况了,OK,这呢,其实是咱们主要出发的一个点来考虑的。嗯,行,这呢,就是我们说这个属性要不要加成一个静态的了,那么方法这块,方法这块呢,我们什么样的方法适合加成四代这个直接通过类来去调这个方法。
06:12
怎么着?如果我们一个属性是静态的,比如说我现在对咱们前面也讲过封装性了,封装性的属性呢,都写盖方法了,那我现在一个属性是静态的,那你说这个盖赛的方法怎么办?通常就也静态了,当然了,你说我这个属性是静态的,我写一个盖赛方法,盖赛的方法其实倒是说不是说非得静态。因为你非静态的方法里边是不是也可以掉静态呀,对,但是呢,一般大家生命周期都一样了,你说你这个属性你在这个类就可以直接掉,然后呢,到这个盖塞的方法这块呢,你还非逼着我先得造个对象才能掉,那有点有点过分了,是吧?所以说呢,就是你要是有一个静态的属性的话呢,操作这个静态属性的方法呢,通常呢也都是静态了,就是大家呢,生命周期一样,你什么时候来的,我也什么时候来就掉的时候呢,更方便一些,所以这呢就是一个操作,操作静态属性的这个方法呢,哎,通常呢,通常呢就设置为静态的,诶这是一个情况了,那么另外一种情况呢,就是大家可能会看到咱们使用的一些工具类。
07:31
这些工具类呢,它就都生明成,呃,工具类中的方法呢,都生明成一些静态方法了,这里边儿我们写一下,就是这个工具类中的这个方法。习惯上声明为静态方法,或者要声明为static,为什么呢?因为就没有必要造对象了。你只有造了对象呢,才能调那些非静态的,我现在呢就没有必要去造了,比如说咱们这个math类,Math是一个数学的一个工具类了,咱们这个AR这是数组的一个工具类了,后边呢,还会讲其他的这个一些工具类对像这个后边我们讲集合的时候呢,用到这个叫collections这个工具类,操作集合的这些工具类,工具类你说我去new一个mass,我new完一个mass这个对象以后呢,我再去调那个方法,你new的这个对象跟拗的另外一个对象其实也没啥区别。
08:30
目的不就是为了掉那些?方法嘛,所以我就直接呢,把它声明成是一个静态的方法了,直接拿来去调就完了,包括呢,像咱们写的这个项目一项目二里边咱们涉及到的这个,这个叫cm utility这个呢,这不也都静态了吗?就没有必要呢?我非得造个对象去调,你照对象你也体现不出来有什么不同。所以直接呢拿类去掉了,就所以大家事后呢写工具类,我们都习惯上呢,加上static行,那简单的话呢,大家有这样的一个概念,后边呢,我们再去声明方法和属性的时候呢,就要考虑这个static了,行。
我来说两句