访问权限系列一(public/private/protected/default):成员变量
通过两个程序包对自身或互相之间的访问,得到结果.(先编译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):成员变量的更多相关文章
- public private protected default
public private protected default 这几个限定访问控制符只是在编译阶段起作用,在运行阶段不起作用 private修饰符 , 本类可以访问 default修饰符 , 本类, ...
- java中public private protected default的区别
1.public:public表明该数据成员.成员函数是对所有用户开放的,所有用户都可以直接进行调用 2.private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直 ...
- Java的访问权限详解(3+1)public private protected default
Java使用三个关键字在类的内部设定访问权限:public.private.protected.这些访问指定词(access specifier)决定了紧跟其后被定义的成员(方法或属性)可以被谁使用. ...
- 关于Java的权限修饰符(public,private,protected,默认friendly)
以前对访问修饰符总是模棱两可,让自己仔细解释也是经常说不很清楚.这次要彻底的搞清楚. 现在总结如下: 一.概括总结 各个访问修饰符对不同包及其子类,非子类的访问权限 Java访问权限修饰符包含四个:p ...
- 访问修饰符 public private protected default
- public private protected default小结
public:可以被所有其他类所访问: private:只能被自己访问和修改: protected:自身.子类及同一个包中类可以访问: default:声明时没有加修饰符,同一包中的类可以访问:当子类 ...
- 访问权限PPP(public、private、protected、default)之成员变量、成员变量权限解析
首先,我们需要清楚一下方法是由哪些部分构成的: [权限修饰符列表][别的修饰符列表] 返回值类型 方法名(参数列表){ 方法体:} 然后我们需要知道成员变量和成员方法访问有几种情况:1.当前包同一 ...
- 【转】C++ 类访问控制public/private/protected探讨
示例1:---------------------------------------- class C{ int c1; int c2;public: void set(C* s, int i, i ...
- JAVA 中的权限访问修饰符(public,protected,default,private )
JAVA中有四个权限访问修饰符:public,protected,default,private 注意:这里讲的是对类中属性和方法的访问权限,并不是类的访问权限 1.default:包访问权限 如果什 ...
随机推荐
- IP地址获取到为0:0:0:0:0:0:0:1
引用 13 楼 oXiaoShe 的回复: Quote: 引用 11 楼 ahjsdzm 的回复: [Quote=引用 9 楼 huazaiyou 的回复:]最近在进行web开发时,遇到了reques ...
- 灵活运用Zend框架
$aAwardMem = $this->dao_raward->getAwardAndMem($where,'award_level asc',false,false,false,'awa ...
- iOS开发之主题皮肤
iOS开发之主题皮肤 分类: [iOS] 最近在开发一款[公交应用],里面有个模块涉及到主题设置,这篇文章主要谈一下个人的做法. 大概的步骤如下: (1):整个应用依赖于一个主题管理器,主题管理器根 ...
- select option 下拉多选单选bootstrap插件使用总结2
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 采用proguard困惑android代码
当前是有些工具比方apktool,dextojar等是能够对我们android安装包进行反编译.获得源代码的.为了降低被别人破解,导致源代码泄露,程序被别人盗代替码,等等.我们须要对代码进行混淆.an ...
- 自学JQuery Mobile的几个例子
JQuery Mobile是一个用于构建移动Web应用程序的框架,适用于主流的移动设备(智能手机.平板电脑),该框架利用了HTML5和CSS3技术减少了额外的脚本文件的编写.具体JQuery Mobi ...
- IIS发布问题-用户 'IIS APPPOOL\DefaultAppPool' 登录失败
今天新建了一个ASP.NET(Language=C#)网站,配置好数据库后编写了几行代码测试数据库的是否能正常使用. 当运行程序时,第一个页面都没有打开就出现了错误(因为我首页就访问数据库,填充一些D ...
- JS 操作日期
var myDate = new Date(); myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); //获取完整的年份(4位,1970-???? ...
- nyoj 528 找球号(三)(哈希)
点解:题目链接 两种办法,1是使用容器set做 2必须知道这个结论, 突然感觉数论很强大啊,,,, /*//set容器处理 出一次加进去,再出现删掉,这个最后留下的就是那个只出现基数次的 #incl ...
- Linux 组与用户
组: 添加: groupadd groupName -g groupID --> groupadd dba -g 502 删除: groupdel groupName ...