类成员访问控制权限

在JAVA中有四种访问控制权限,分别为:private, default, protected, public

1、Private

如果一个成员方法或变量名前使用了private, 那么这个成员只能在类的内部使用。

2、Default

如果一个成员方法或变量名前没有使用任何访问控制符,就为default。默认的访问控制成员可以被这个包中的其它类访问(包括这个包中的子类内部以及这个包中所有类以对象.成员的方式访问)。如果这个子类不在这个包中,则子类也不能访问父类的默认访问控制成员

3、Protected

这个成员既可以被这个包中其它类访问,也可以被不同包中的子类内部访问

4、Public

可以被所有类访问,不管访问类与被访问类在不在同一个包中

总结

Private

Default

Protected

public

只用本类内部可访问

同一包中的类(包括子类,以及以对象.成员)

其它包中的子类内部

其它包中的类(对象.成员, 不是子类)

以下是示例代码:

1、包myjava.learn.package1:

Person.java

package myjava.learn.package1;

public class Person {

	private int a_pri = 10; // private只能在本类被访问, 子类也不能访问
int a_defaut = 11;
protected int a_prot = 12;
public int a_pub = 13; }

  

PersonPackage1.java

package myjava.learn.package1;

public class PersonPackage1 extends Person{

	void fun(){
// 以下当然可以被访问,因为在同一个包中的类可以访问default, protected, public
this.a_defaut = 12;
this.a_prot = 13;
this.a_pub = 14;
System.out.println( this.a_defaut );
}
}

  

Main.java

package myjava.learn.package1;

public class Main {
public static void main( String args [] ){ PersonPackage1 pp = new PersonPackage1();
pp.fun(); // 同一包中的类可以以[对象.成员]访问default, protected, public
System.out.println( pp.a_defaut );
System.out.println( pp.a_prot );
System.out.println( pp.a_pub );
}
}

  

2、包myjava.learn.package2:

Main.java

package myjava.learn.package2;

import myjava.learn.package1.PersonPackage1;

import myjava.learn.package1.Person;

// 其它包中的子类
class PersonPackage2 extends Person{ void PrintAttr(){ // 不同包的子类只能访问父类的public, protected
System.out.println(this.a_prot);
System.out.println(this.a_pub ); } } public class Main { public static void main(String[] args) {
// TODO Auto-generated method stub // 其它包中的类(对象.成员, 不是子类),只能访问public成员
PersonPackage1 pp = new PersonPackage1();
System.out.println(pp.a_pub); PersonPackage2 pp2 = new PersonPackage2();
pp2.PrintAttr(); } }

  

Java类成员访问控制权限的更多相关文章

  1. java类成员访问权限总结(private,default,protected,public)

  2. Java基础详解 (一)Java的类成员访问权限修饰词(以及类访问权限)

    在一个类的内部,其成员(包括成员变量和成员函数)能否被其他类所访问,取决于该成员的修饰词.Java的类成员访问权限修饰词有四类:private,无(默认情况下),protected和public.其权 ...

  3. java基础-类成员访问权限控制

    一 前言 这篇文章是很基础的一文,没多大深度,对于开发人员必然是熟练于心.本篇文章的主题是为什么java要设置类成员访问级别?其原因也很简单,就是为了面向对象的封装特性:将类成员使用不同的访问级别控制 ...

  4. Java 类成员的初始化顺序

    Java 类成员的初始化顺序 前言:开发中碰到一个Java文件中有很多的成员变量,包括静态和非静态的,还有很多的初始化方法,很好奇这些成员的初始化顺序,在这里作个研究.   1  无继承情况下的Jav ...

  5. JAVA基础之访问控制权限

    包:库单元 1.当编写一个Java源代码文件时,此文件通常被称为编译单元(有时也被称为转译单元). 2.每个编译单元都必须有一个后缀名.java,而在编译单元内则可以有一个public类,该类名称必须 ...

  6. Java中的访问控制权限

    简介 Java中为什么要设计访问权限控制机制呢?主要作用有两点: (1)为了使用户不要触碰那些他们不该触碰的部分,这些部分对于类内部的操作时必要的,但是它并不属于客户端程序员所需接口的一部分. (2) ...

  7. Java类成员之内部类

    内部类含义: 在Java中允许一个类的定义位于另一个类的内部,前者称为内部类,后者称为外部类. Inner class 一般用在定义它的类或语句块之内,在外部引用它时必须给出完整的名称. Inner ...

  8. java类成员变量与代码块初始化

    首先根据下面的这个一段代码:引入关于java初始化顺序的问题public class InitationTest extends Person { public InitationTest() { S ...

  9. 【转】Java类成员变量默认初始化规则

    一个变量作为类成员使用的时候,如果没有被初始化,java会为其分配默认值: -------------------------------------------------------------- ...

随机推荐

  1. Android开发把项目打包成apk-(转)

    做完一个Android项目之后,如何才能把项目发布到Internet上供别人使用呢?我们需要将自己的程序打包成Android安装包文件--APK(Android Package),其后缀名为" ...

  2. elasticsearch入门使用(一)es 6.2.2安装,centos 7

    elasticsearch(一般叫es)是基于Lucene的搜索服务器,提供http协议接口使用json格式数据,也提供相应的客户端,更详细的信息[优点&场景]请百度百科, 以下官网截图,官网 ...

  3. stm32f103定时器

    1)TIM_TimeBaseInitTypeDef 时基初始化结构体,它包括了四个成员函数:TIM_ClockDivision.TIM_CounterMode.TIM_Period.TIM_Presc ...

  4. Centos7 下安装 RabbitMQ

    安装 erlang 1.下载erlang 官网地址 http://www.erlang.org/download 挑选合适的版本 然后 wget 比如目前最新版本 19.3 运行命令 wget htt ...

  5. pinpoint 应用性能管理工具安装部署

    原文:http://www.cnblogs.com/yyhh/p/6106472.html pinpoint 安装部署   阅读目录 1. 环境配置 1.1 获取需要的依赖包 1.2 配置jdk1.7 ...

  6. 干货--安装eclipse-hadoop-plugin插件及HDFS API编程两个遇到的重要错误的解决

    在Windows的eclipse上写hdfs的API程序,都会遇到两个错误,在网上查了很多资料,都没有解决的办法,经过了很多时间的研究,终于把这个问题解决了 错误是 1.java.io.IOExcep ...

  7. [Testing] Static Analysis Testing JavaScript Applications

    The static code analysis and linting tool ESLint is the de-facto standard for linting JavaScript pro ...

  8. 【软件project】菜鸟俯瞰软件project

    [背景]初次接触软件project,对软件project不是彻底的了解.但学完一遍软件project,我还是有些感触的. 以下我就对我这阶段的软工学习和理解做一下小小的总结,如有不妥之处.欢迎指正. ...

  9. 让Quality Center走下神坛--测试管理工具大PK(转)

    让Quality Center走下神坛--测试管理工具QC/ALM 和 RQM.Jira.TP.SCTM大PK 在写完了<让QTP走下神坛>之后,现在来谈谈测试管理工具,献给所有正在或打算 ...

  10. DRP——Dom4j使用

    dom4j是一个Java的XMLAPI,类似于jdom.用来读写XML文件的.dom4j是一个很很优秀的JavaXMLAPI.具有性能优异.功能强大和极端易用使用的特点.Dom4j是一个易用的.开源的 ...