通过两个程序包对自身或互相之间的访问,得到结果.(先编译Test_01,得到class文件,通过Test的集中访问情况)

如下Test.java中内容:

package com.java;

/*
* 关于成员变量多种情况下的访问权限:
* ------------------------------------------------------------------------------
* public private protected default
* 1 同一个包,同一个类 可以 可以 可以 可以
*
* 2 同一个包,不同的类 可以 不可以 可以 可以
*
* 3 不同的包里的类 可以 不可以 不可以 不可以
*
* 4 同一个包里有继承关系的类 可以 不可以 可以 可以
*
* 5 不同的包里有继承关系的类 可以 不可以 可以 不可以
*--------------------------------------------------------------------------------
* 结论: public都可以访问; private只有在同一个类里才能直接访问; protected同一个包里可以访问,若想跨包访问,必须有继承关系; default只有同一个包里的可以访问;
*
*/ import cn.java.Test_01;
import cn.java.test_02; //public class Test{ //这里1,2,3用;---->1不用实验public是公开的,都可以;
public class Test extends Test_01{ //这里4,5用;
public static void main(String[] args){
/*-------------------------2---------------------------
A T = new A();//同一个包,不同的类;
System.out.println( T.m_1() );
System.out.println( T.m_2() );
System.out.println( T.m_3() );
System.out.println( T.m_4() );// 报错:m_4()可以在A中访问private
*/
/*-------------------------3---------------------------
Test_01 T = new Test_01();//不同的包里的类,没有继承关系;
System.out.println( T.m_1() );//可以
System.out.println( T.m_2() );//报错:m_2在Test_01里不是公共的,无法从外部程序包中访问;
System.out.println( T.m_3() );//不可以
System.out.println( T.m_4() );//不可以
*/
/*-------------------------4----------------------------
A T = new A();//同一个包里的不同类,有继承关系;
System.out.println( T.m_1() );//可以
System.out.println( T.m_2() );//可以
System.out.println( T.m_3() );//可以
System.out.println( T.m_4() );//报错: 可以在类A中访问;
*/
/*-------------------------5----------------------------
Test T = new Test();
System.out.println( T.m_1() );//可以
System.out.println( T.m_2() );//m_2不是公共的,无法从外部程序包中访问;
System.out.println( T.m_3() );//可以
System.out.println( T.m_4() );//可以在Test_01中访问;
*/
}
} class A{
public int m_1(){return ;}
int m_2(){return ;}
protected int m_3(){return ;}
private int m_4(){return ;}
}
如下是Test_01.java的内容:

package cn.java;
public class Test_01{
//成员变量
public int i_1 = ; int i_2 = ;//默认default protected int i_3 = ; private int i_4 = ; //成员方法 public int m_1(){
return ;
}
int m_2(){
return ;
}
protected int m_3(){
return ;
}
private int m_4(){
return ;
}
}

 

访问权限系列一(public/private/protected/default):成员变量的更多相关文章

  1. public private protected default

    public private protected default 这几个限定访问控制符只是在编译阶段起作用,在运行阶段不起作用 private修饰符 , 本类可以访问 default修饰符 , 本类, ...

  2. java中public private protected default的区别

    1.public:public表明该数据成员.成员函数是对所有用户开放的,所有用户都可以直接进行调用 2.private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直 ...

  3. Java的访问权限详解(3+1)public private protected default

    Java使用三个关键字在类的内部设定访问权限:public.private.protected.这些访问指定词(access specifier)决定了紧跟其后被定义的成员(方法或属性)可以被谁使用. ...

  4. 关于Java的权限修饰符(public,private,protected,默认friendly)

    以前对访问修饰符总是模棱两可,让自己仔细解释也是经常说不很清楚.这次要彻底的搞清楚. 现在总结如下: 一.概括总结 各个访问修饰符对不同包及其子类,非子类的访问权限 Java访问权限修饰符包含四个:p ...

  5. 访问修饰符 public private protected default

  6. public private protected default小结

    public:可以被所有其他类所访问: private:只能被自己访问和修改: protected:自身.子类及同一个包中类可以访问: default:声明时没有加修饰符,同一包中的类可以访问:当子类 ...

  7. 访问权限PPP(public、private、protected、default)之成员变量、成员变量权限解析

    首先,我们需要清楚一下方法是由哪些部分构成的: [权限修饰符列表][别的修饰符列表] 返回值类型 方法名(参数列表){   方法体:} 然后我们需要知道成员变量和成员方法访问有几种情况:1.当前包同一 ...

  8. 【转】C++ 类访问控制public/private/protected探讨

    示例1:---------------------------------------- class C{ int c1; int c2;public: void set(C* s, int i, i ...

  9. JAVA 中的权限访问修饰符(public,protected,default,private )

    JAVA中有四个权限访问修饰符:public,protected,default,private 注意:这里讲的是对类中属性和方法的访问权限,并不是类的访问权限 1.default:包访问权限 如果什 ...

随机推荐

  1. oracle超过最大游标数异常分析(转贴)

    问题描述 Oracle 使用 OPEN_CURSORS 参数指定一个会话一次最多可以打开的游标的数量.超过此数量时,Oracle 将报告 ORA-01000 错误.当此错误传播到 WebLogic S ...

  2. 散列表的实现 -- 数据结构与算法的javascript描述 第八章

    散列表(哈希表 散列是一种常用的数据存储技术,散列后的数据可以快速地插入或取用. 散列表需要一个散列值(key)来存储指定数据,取数据也是依靠此. 散列值可以依靠计算数据的 ASCII码来获得,但是这 ...

  3. 我的小前端 (2)—— JQ和zepto

    没有什么特别新技术,就是记录我做移动端遇到的问题 2016-02-16 关于JS库 JQ很简单,网上很多插件效果都依赖它,但JQ库很大 zepto.js用简单效果,很好用 <script src ...

  4. 设计模式之---模板方法template method的使用

    在面向对象系统的分析与设计过程中经常会遇到这样一种情况:对于某一个业务逻辑(算法实现)在不同的对象中有不同的细节实现,但是逻辑(算法)的框架(或通用的应用算法)是相同的.Template Method ...

  5. setTimeOut和setInterval详解

    setTimeout和setInterval的语法相同.它们都有两个参数,一个是将要执行的代码字符串,还有一个是以毫秒为单位的时间间隔,当过了那个时间段之后就将执行那段代码.不过这两个函数还是有区别的 ...

  6. org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'springSessionRepositoryFilter' is defined

    spring-session 集成redis,web.xml配置filter时候出现  No bean named 'springSessionRepositoryFilter' is defined ...

  7. Linux各个发行版本的介绍, 以及VirtualBox+CentOS的安装步骤

    Linux和Unix系统有哪些主要的发行版本 Unix: (非开源传统商业操作系统) IBM AIX, HP HP-UX, Sun Solaris,等 各家硬件厂商的发行版本, 往往是和自家的硬件设备 ...

  8. [置顶] 修改Android开机画面之rle制作

    第一个动画: Bootloader开机使用的图片是linux.bmp,长高分别是120*120,色度是32,所以可以拿相同格式图片替换,进行编译烧写即可. 第二个图片:内核logo 这个修改方式,我在 ...

  9. SQL 简单练习

    USE study; SELECT * FROM EMP --查询雇员姓名的最后三个字母 ) FROM EMP ; --查询10部门雇员进入公司的星期数 --1 查询部门30中的所有员工 --2 列出 ...

  10. java中文件保存、打开文件对话框

    package com.soft.test; //AWT: FileDialog类 + FilenameFilter类 可以实现本功能 //Swing: JFileChooser类 + FileFil ...