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();
      }
}

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

时间: 2024-10-26 14:03:36

java软件包的访问权限和继承的相关文章

浅析Java中的访问权限控制

浅析Java中的访问权限控制 今天我们来一起了解一下Java语言中的访问权限控制.在讨论访问权限控制之前,先来讨论一下为何需要访问权限控制.考虑两个场景: 场景1:工程师A编写了一个类ClassA,但是工程师A并不希望ClassA被该应用中其他所用的类都访问到,那么该如何处理? 场景2:如果工程师A编写了一个类ClassA,其中有两个方法fun1.fun2,工程师只想让fun1对外可见,也就是说,如果别的工程师来调用ClassA,只可以调用方法fun1,那么该怎么处理? 此时,访问权限控制便可以

Java成员的访问权限控制

Java中的访问权限控制包含两个部分: 类的访问权限控制 类成员的访问权限控制 对类来说,访问权限控制修饰符可以是public或者无修饰符(默认的包访问权限): 对于类成员来说,访问权限控制修饰符可以是public,protected, package private(无修饰符), or private. 以下表格总结了类成员中不同访问权限控制修饰符对应的访问级别:

学java教程之访问权限

学编程吧学java教程之访问权限控制发布了.欢迎大家通过xuebiancheng8.com来访问 java中在使用封装的时候有四种访问权限控制符. public 在任意包的任意类中都可以访问任何方法和属性 protected 在同包或者任意子类中可以访问任意方法和属性 默认控制符 也就是什么访问符都不用,在同包中可以访问 private 在同一类中可以访问属性和方法 以上这几个叫访问控制符,他们的权限从大到小.这几个关键词在java中自始至终都用用到.定要牢记. 更多内容请通过xuebianch

java类的访问权限

1.解析 Java有四种访问权限, 其中三种有访问权限修饰符,分别为private,public和protected,还有一种不带任何修饰符. private: Java语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”.被其修饰的类.属性以及方法只能被该类的对象访问,其子类不能访问,更不能允许跨包访问. default:即不加任何访问修饰符,通常称为“默认访问模式“.该模式下,只允许在同一个包中进行访问. protect: 介于public 和 private 之间的一种访问修饰符,一般

Java中的访问权限解析

在Java中不同的对象和类拥有不同的访问权限,所以在java中对不同的类和对象进行权限的设置显得尤为重要. java中的权限主要分为四种,public,protect,private,和default在声明类和对象的时候如果没有注明权限则为默认的即(default).下面将对这四种权限仅向简单的解析,部分为网上博主的总结再加上个人总结 1.权限解析Java有四种访问权限, 其中三种有访问权限修饰符,分别为private,public和protected,还有一种不带任何修饰符.private:

java封装之访问权限控制

封装从字面上来理解就是包装的意思,专业点就是信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系.系统的其他对象只能通过包裹在数据外面的已经授权的操作来与这个封装的对象进行交流和交互.也就是说用户是无需知道对象内部的细节(当然也无从知道),但可以通过该对象对外的提供的接口来访问该对象. 对于封装而言,一个对象它所封装的是自己的属性和方法,所以它是不需要依赖其他对

java四种访问权限修饰符

java中四个访问权限修饰符: public(公开的).protected(受保护的).default(默认的).private(私有的). 它们决定了紧跟其后被定义的东西的使用范围. 适用范围<访问权限范围越小,安全性越高>  访问权限   类   包  子类  其他包   public     ∨   ∨    ∨     ∨          (对任何人都是可用的)  protect    ∨   ∨   ∨     × (同一个包内其他类和继承的类可以访问)  default    ∨

Think in Java(三):访问权限控制

1. 一个java文件中可以有多个类,但只能有一个public的类. 2. 类既不可以是private的,因为这会使得除该类职位,其他任何类都不可以访问它,也不可以是protected,所以对于类的访问权限只能是包访问权限或public.(一个内部类可以是private或protected) 3. 访问权限 public > friendly > protected > private

Java中的访问权限

Java中有四种访问权限,从大到小依次是:public –> protected –> default(friendly) –> private. 简单说明下: public 作用域是全局: protected 作用域是类内部.同一包下.子类下: default 或称friendly,作用域是类内部.同一包下: private 作用域仅是类内部.   也可见下图: