今天看视频教程说的是封装,这个概念太大了,自己也没太明白,讲不了。就说说里面谈到的 访问控制 修饰符吧!
一般的说Java的访问控制修饰符是四个,分别是:public(公开的)、 protected (受保护的)、不带修饰符和private(私有的)。它们各自的访问权限我做了个表格:
下面举个例子来简单说明,希望能够说明白了。
我建了两个包xiaowang、xiaozhang然后各自建了两个class。Wang1中我定义了几个变量
Wang2是Wang1同一个包的类,我把它理解为兄弟,可以访问road、father、house而wife是不能让你直接访问的,要访问wife必须由Wang1来指定方法。
访问wife时出错了,private 同包也不能访问。但可以通过Wang1提供的get方法来访问。
不在同个包里的Zhang1受到的限制就更多了。除public外其他的都不能访问。
不在同个包,但是继承了Wang1的访问权限略大,protected可以继承了。这里有个比较奇怪的现象,如果子类和父类在同个包里,缺省修饰符是可以被继承的,什么原因就不晓得了。
是不是,继承缺省修饰符的father时没有报错!看来继承的时候,只要能访问,就能被继承的!
另外,昨天说的 static 关键字有热心的网友说遗漏了static代码块,今天学习并补充。
调用Dog时是没有反应的,但是我调用Cat它立马会执行,优先级极高。
是不是还在static方法之前执行的啊,而且它只执行一次,通常用它来对static变量赋值用的。