访问权限系列一(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:包访问权限 如果什 ...
随机推荐
- TF卡速度测试对比 Class数越高速度越快
存储卡(TF卡)是手机扩展存储的大杀器,让你多装n部学习资料,多装n个外语听力练习.除了装东西外,存储卡性能不佳也会影响手机的整体性能以及体验的.本文主要针对Android手机,我是懒人,但我讨厌懒人 ...
- 柯南君:看大数据时代下的IT架构(3)消息队列之RabbitMQ-安装、配置与监控
柯南君:看大数据时代下的IT架构(3)消息队列之RabbitMQ-安装.配置与监控 一.安装 1.安装Erlang 1)系统编译环境(这里采用linux/unix 环境) ① 安装环境 虚拟机:VMw ...
- Data Visualization 课程 笔记1
对数据可视化比较有兴趣,因此最近在看coursera上伊利诺伊大学香槟分校的数据可视化课程,做了一些笔记. 1. 定义 Data visualization is a high bandwidth c ...
- 20141011C#面向对象基础
什么是对象?—— 一切皆为对象.Object 生活中常说的“东西”,就是我们程序里所指的对象. 归类——找模型——抽象 类:class,对某类众多对象共同的特点进行抽象出来的模型 对象——(抽象的过程 ...
- Windows窗体Winform----show()与showDialog()的区别
show()与showDialog()的区别 最常见的显示一个新的窗体的方法有两种,下面直接上代码!! A.WinForm中窗体显示 显示窗体可以有以下2种方法: Form.ShowDialog( ...
- 解决jni链接时找不到函数的问题
用jni调用库函数时,经常会碰到link的错误,具体出错信息如下: 08-07 01:42:06.490: E/AndroidRuntime(1665): java.lang.UnsatisfiedL ...
- MarkDown使用 (二)矩阵
MarkDown的矩阵输入 MarkDown的矩阵输入 简单的Matrix 例如 $$ \begin{matrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ ...
- jQuery数据缓存data(name, value)详解及实现
一. jQuery数据缓存的作用 jQuery数据缓存的作用在中文API中是这样描述的:“用于在一个元素上存取数据而避免了循环引用的风险”.如何理解这句话呢,看看我下面的举例,不知道合不合适,如果你有 ...
- 解决全站ie6下PNG图片不透明问题只要几行代码
解决全站ie6下PNG图片不透明问题只要复制下面这几行代码粘贴在你的文档最底部,需要用到的包DD_belatedPNG_0.0.8a.js自己网上下载吧 代码走起 /*在文档底部加入以下代码*/ &l ...
- pandas的札记
导入导出数据 在导入,导出DataFrame数据时,会用到各种格式,分为 to_csv ;to_excel;to_hdf;to_sql;to_json;to_msgpack ;to_html;to_g ...