00:00
那回过来的话呢,我们再来看一下这个叫四种权限修饰了,咱们前面呢讲封装性,其实说的就是这个权限修饰的问题,只不过呢,那个时候呢,关于这个此类这块我们还没有讲,现在呢,我们讲了类的继承性以后,就涉及到这个此类的问题了,有了此类了,我们就可以考虑到其中有一个权限叫做protected这样的一个修饰了,那这里呢,就提到了protected这个权限呢,比这个缺省的要大一些,它呢可以在不同的包当中的此类当中被看到。那这块呢,我们得给大家演示一下,那回头开发当中,大家如果需要用到这个protect的话呢,你急着能够用,知道在哪能看着在哪看不着这样一个事情,好这块呢,咱们做一个演示了,演示的话呢,我就收起来,再去重新的创建一个包,说明一下这个问题。这个我们就都关掉了,在这里边我先写一个,还用这个order来说,我们来体会一下这个四种不同的权限修饰。
01:05
体会四种不同的权限修饰好一个一个来,首先呢,我们说一下这块属性还是跟原来一样,我呢不妨呢就先定义成int行了,Order是private这样的一个权限,然后呢是默认权限。接着是protected。然后public。Public,行,这呢是四种不同的权限,那接着呢,我们再体会一下方法,其实属性能体会到的方法也一样,几个word method private类型的。来一个缺醒的。
02:03
Protected。Method protected。这个得小写public avoid。行,这呢是我们写了四种不同权限的这个方法,那我们说这四种权限最起码是不是类内部也得能用啊,这个这样这样写就行了,直接呢,你去调一下,叫我叫private,这个时候呢,都是OK的。来一个default protected。Public。这样这个在类内部呢,怎么用都可以,最起码也能在类内部,类内部呢去用这个,这这随便粘这都是没有问题的,然后比他这个权限再稍微大一点的,体现为就是在同一个包当中,同一个包当中呢,我们再去新造一个,比如说叫order的一个测试了,不管是不是测试,就是在另外一个类当中,在另外一个类当中呢,我们此时呢,你去得造一个order的对象。
03:26
不到对象呢,那你肯定体会不出来,这是人家类中定义的结构,你要想用只能是用人家的对象去用,那我们通过这个order呢,对象咱们这时候呢,再去调,你去调这order default的一些情况呢,都是OK的default或者叫order的一个。啊,叫protected。Order的一个public,这都没问题。这个方法呢也一样,Method,你看这三个都能看得到。
04:03
这都行,当你试图呢,通过order点我去调用,这个叫order,叫赋一个值,包括这个方法叫method private。这呢都是不行的啊,首先确认一点,就是你这不是因为你单词写错了,你这会你可以看这。他这呢提的叫not visible,而不是说呢没有定义in not visible,所以这呢,就是除了这个类之外呢,你就不能再去调这个私有结构了,说同一个包中的这个其他类不可以。调用这个order类中私有的这个这个属性,或者是这个方法。其他的呢,还是可以的行,那比这个呢,我们再往往上边放一点,再往上放一点,是不是就涉及到不同的包了,不同的包这块我们再往下去建这个,往后我们往后去延伸,在后边这个我们建一个包,建个包呢我们再建一个类,这时候这个类的话呢,如果要是跟order没有关系,那可能protected也用不了,那首先呢还维持一种关系,这种关系呢,咱们叫做子符类的关系,我这呢叫sub border,你看我这时候写的时候呢,在这儿大家能看到默认是不是就是object是它的负类啊,这时候呢,其实你在这个位置也可以直接给它改掉,我给它改成就是order order呢是咱们这个这VA2这个包下的一个order OK,在这呢就可以改,改完以后呢,Finish自动的就给你写上一个ten了。
05:44
这也行,这呢是它的一个子类了,注意是在不同的包里的。你要是同一个包里的,那那是不是就更好理解了?同一个包里的不是它的子类是不是都还可以用这三种权限,你要是子类的是不是更可以用了?对,那现在咱们考虑就是说我不是同一个包了,但是呢,我还是你的姊妹。
06:08
那这个时候呢,我们比如我就随意的写一个方法就叫做method,那么因为我继承于你了,你的那些结构呢,我就应该都有,但是呢,由于权限的影响呢,有些可能用不了,我就都有,但是可能用不了,那能用哪些呢?我们先来看一下这个属性,像al al斜杠一下。大家会看到这两个是可以用的。因为呢,我现在是你的姊妹,是这个意思,这个时候呢,复制一个1ORDER的一个public。这个二方法的话呢,也可以去调这个生命为叫protected的。Public的,这是没问题的。当你试图去调用一下order default。这是不行的。包括呢叫private,这更不行,然后调方法method default。
07:09
Method private都不行,这是我们看这个保存一下错误信息,这是叫not visible not visible都是。哎,所以这呢是不允许,并不是说我们定义错了啊,你要写成一个DEFAULT1,这呢属于你没有定义。这你没有定义,你看这颜色都不一样。好把这个呢注入掉,这呢说明一下,这个在不同包的这个子类中不能调用,调用我们这个order类中这个声明为叫private和default,呃,Private和缺省。权限的这个结构。
08:03
就是你只要是在不同包里了,这俩就都没戏,因为我们这个缺勤的话呢,它也只能够识别到我们这个同一个包这样层面,那又由于你在不同包里边,你还是个子类,那子类呢,可以让你看到这个这个情况,那再往外扩的话呢,那就在不同的包里边,子类也不是了,那就又是一个普通的一个类,那比如说我就写成一个order,它的一个测试吧。可以不是测试,就是你随便一个类当中,只要呢,你想用order,这时候我们看这种情况。这个时候呢,你想用这order,那我这时候就只能是得通过对象去调了,这有一个对象了,然后此时先ctrl shift o一下,因为你不同的包呢,得导包了,这时候呢,我们拿着这个order。然后我这时候去点,你看只能够看到这个所谓的公共的这样的情况。然后第二只有这个了,其他的都行。
09:09
这负一个二。这样,哎,我都这样先写出来啊method,首先他这个这个是不行的。行,这些呢都不可以保存,这时候呢,标的都叫not visible。好,这呢就是表明不允许的意思,这个我们也得注射掉,说不同包。下的这个普通类啊。
10:01
这个普通类呢,就是非此类的意思。嗯,这个要使用这个order类的话,要使用order类说只呃这个不可以调用这个生命为的缺的还有我们这个权限的方法或者是属性。行这呢就是我们说的这样的一个情况,这个情况就这呢,我是造对象了啊,其实大家呢,用的时候也不一定非得说这个去,非得用个对象,就是怎么着使都行,只要你要用的话都不行,比如说你像我这写一个public,我写一个word,写一个show方法,这个位置呢,你放了一个参数。这个时候其实你倒是没有造对象,就是当你真要调的时候,还得去造对象啊,生明为他以后你下边用也是这个意思,我这就可以把这个结构呢都粘过来,就是一样,这时候要用也只能用这个公共的,你想用这个所谓的非公共的,这个都是报错的。
11:11
都行啊,你通过这样的方式去体现,或者通过这样方式提现都可以。就是凡是你要用人家的话呢,就只能用这个公共的了,好那这块呢,就是咱们把这个四种权限的话呢,又带着大家测试了一下,因为呢,我们讲了集成以后才遇到了这个叫protect这样一个情况,行,那么从我们实际开发的角度来讲,就是这个protect呢,其实用的呢也不多,用的也不多,用的最多的呢,还是这个私有的和公共的。对,就是要么呢你权限特别小,就是里边呢自己用,要么呢,这个权限就放开,像这种呢,就是不大不小的,挺尴尬对吧,就是你子类能用不是子类呢,不能用,那干脆你要不就都用得了,你要是特别严密的时候呢,你再去考虑这个我就让子类用,不是子类呢不让用啊,那你也可以用它不是说呢它不能用,只是说呢,咱们没有必要可能画的那么细致了,所以通常呢,不是用的最小,就是用的最大,这是咱们用的频率最高的情况,但是大家呢,也要懂这个权限,你见到用这个权限的呢,呃,属性或者方法了,你也得知道它是什么意思,这个是你要掌握的,像咱们在这个。
12:25
Object这个类当中,Object类当中,你看第一个叫clone这个方法,你看它是不是就是个protect,就是还是有的,只是说呢,我们用的比较少而已,行,这就我们说的这个权限修饰符的情况,那么至此的话呢,这四种权限呢,就彻底的是都讲过了,大家呢一定要熟悉他们的使用。
我来说两句