包的访问控制权限

private:可以定义方法,属性,定义的方法和属性不能被类的外部所看到。

default:可以在本包的任意地方访问。

public:都可以访问,不受任何限制。

protected:保护,不同包的非子类不可以访问。

protected权限,在不同包的它的子类能够被访问:

package org.lxh.demo08.g ;
public class HelloDemo{
    protected String name = "LXH" ;        // 只能在本包及不同包的子类中访问
};

在其他包的子类访问这个属性。

复制代码

package org.lxh.demo08.h ;
import org.lxh.demo08.g.HelloDemo ;
class SubHelloDemo extends HelloDemo{    //在其他包中的子类!
    public void print(){
        System.out.println("访问受保护属性:" + super.name) ;
    }
};
public class ProtectedDemo01{
    public static void main(String args[]){
        SubHelloDemo sub = new SubHelloDemo() ;
        sub.print() ;
    }
};

复制代码

运行结果:

访问受保护属性:LXH

如果现在没有使用子类,而是直接在不同类中访问,则会出现无法访问的错误。

复制代码

package org.lxh.demo08.h ;
import org.lxh.demo08.g.HelloDemo ;
public class ProtectedDemo02{
    public static void main(String args[]){
        HelloDemo sub = new HelloDemo() ;
        System.out.println(sub.name) ;    // 错误的,不同包的类无法访问
    }
};

复制代码

回顾

  当产生一个类之后,为了保证类中的内容不被外部直接看到,则使用private关键字。但是,如果两个有关系的类要进行属性相互访问的话就比较麻烦。

之前只能使用getter(),和setter()方法取得和设置,所以为了减少私有属性的的访问的麻烦,使用了内部类,但是内部类会破坏程序的结构。

  为了让一个类的内容可以方便的使用,使用了继承的概念,但是在继承中,private属性也是无法被子类看到,所以此时,为了方便子类的操作,

可以将属性使用protected进行封装,这样一来,外部也无法看到(不同包)

  之后有了继承之后,既然有了父子的关系,所以可以使用向上或者向下的转型,以完成多态性,但是,在开发中,类与类直接直接继承并不多见,而往往

继承抽象类,或实现接口,当若干个操作间需要解耦合的时候,就可以使用接口完成

  既然有内部类了,则如果一个接口或者抽象类的子类只使用一次,则可以将其定义为匿名内部类

  开发中没有包的类是绝对不存在的。

  封装-》继承-》多态。

JAVA命名规范

  类:所有单词首字母大写。

  方法:第一个首字母小写,之后每个单词首字母大写:如:getInfo();

  属性:第一个首字母小写,之后每个单词首字母大写:如:studentName;

  包:所有单词的字母小写,如:org.lxh.demo08.h

  常量:所有字母大写,如:FLAG.

总结:

  protected访问权限;

  命名规范。

猜你喜欢

转载自blog.csdn.net/ll148305879/article/details/94647868
今日推荐