java软件包的访问权限和继承

public:公共权限,可以修饰类、成员变量和成员函数,不论是否在同一个包中均可自由访问

package wang;



//当一个类的权限为public时,类名必须和文件名相同

public class Person{

      public String name;  //public权限



      public void introduce(){

           System.out.println(name);

      }

}

  

package chavez;



class Test{

      public static void main(String args[]){

           //不在同一个包中时要写全名

           wang.Person p = new wang.Person();

      }

}

在不同的包当中,如果一个类不是public权限,在另外一个包中的类就无法对其进行访问,类的成员变量和成员函数同理

 

包的导入:

当两个类不在同一个包中,生成一个类的引用时需要使用全名,为方便书写,可导入这个类

package chavez;

import wang.*;  //导入wang文件夹下的所有类



class Test{

      public static void main(String args[]){

           Person p = new Person();

           p.name = "zhangsan";

           p.introduce();

      }

}

 

private:私有权限,修饰成员变量和成员函数,可以修饰内部类

package wang;



class Person{

      private String name;  //private权限



      private void introduce(){

           System.out.println(name);

      }

}

成员变量和成员函数用private修饰后只能在当前类中进行访问,不论是否在同一个包中。继承关系中,子类无法访问父类中private权限的成员变量和成员函数。

 

default:包级别访问权限,可以修饰类、成员变量和成员函数

两个类在同一个包当中,对类的成员变量和成员函数可以任意访问。如果子类和父类不在同一个包当中,子类可以继承父类当中的default权限的成员变量和成员函数,但由于权限不够无法使用。

package wang;



class Person{

      String name;  //default权限,不写权限修饰符

     

      void introduce(){

           System.out.println(name);

      }

}

 

//与Person在同一个包中

package wang;



class Test{

      public static void main(String args[]){

           Person p = new Person();

           p.name = "zhangsan";

           p.introduce();

      }

}

java软件包的访问权限和继承

 

protected:受保护权限,拥有和default一样的功能,但该权限只能修饰成员变量和成员函数。当子类和父类不在同一个包中时,子类可以继承并使用父类中protected权限的成员变量和成员函数(跨包继承)。

package wang;



public  class Person{

      protected String name;

}

 

package chavez;

import wang.Person;



class Student extends Person{

      void introduce(){

           System.out.println("我的名字叫"+name);

      }

}

public权限和protected权限的区别:

一个类中的public权限的成员变量和成员函数,任何类都可以调用

一个类中的protected权限的成员变量和成员函数,只有该类所属的包之外的、该类的子类才可以继承使用

 

权限大小从大到小排列:public > protected > default > private

你可能感兴趣的:(java)