通过两个程序包对自身或互相之间的访问,得到结果.(先编译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. android 传感器使用 Compass指南针的实现功能

    以下是指南针通过方向传感器而旋转实现. CompassDemo.java: package com.example.activity; import android.app.Activity; imp ...

  2. mysql binlog 混合模式 出现的基于sql的数据不一致,主要是now()这类函数导致

  3. nodejs的url模块中的resolve()的用法总结

    var url = require('url'); var a = url.resolve('/one/two/three', 'four') , b = url.resolve('http://ex ...

  4. 反恐训练营(LCS)

    反恐训练营 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submi ...

  5. selector是在文件夹drawable中进行定义的xml文件。

    获取Drawable对象: Resources res = mContext.getResources(); Drawable myImage = res.getDrawable(R.drawable ...

  6. 关于android:screenOrientation="portrait" 横竖屏切换

    当在AndroidManifest.xml文件中定义了android:screenOrientation="portrait",就表示当我们切换横竖屏的时候,屏幕的内容始终以竖屏显 ...

  7. 得到client真IP住址

    1.引进的必要性log4j-1.2.14.jar package org.ydd.test; import java.util.Enumeration; import javax.servlet.ht ...

  8. iOS开发-object-c之 @[], @{}

    今天看别人代码的时候发现这样的用法 navigationController.viewControllers = @[secondViewController]; 这里用到了@[]. 刚开始不是很明白 ...

  9. AJAX - 创建 XMLHttpRequest 对象

    XMLHttpRequest 是 AJAX 的基础. XMLHttpRequest 对象 所有现代浏览器均支持 XMLHttpRequest 对象(IE5 和 IE6 使用 ActiveXObject ...

  10. org.openqa.selenium.SessionNotCreatedException: A new session could not be created.

    解决方案 1. 重新插拔手机. 2. 检查appium端口是否被占用,如是,杀掉占用了改端口的进程,然后重启appium. 3.