访问权限系列一(public/private/protected/default):成员变量

时间:2022-09-25 11:11:10
通过两个程序包对自身或互相之间的访问,得到结果.(先编译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. 如何在jasperreport自动生成序号

    在导出报表时,有时候我们需要显示序号,有两种方法: 1.就是再加一个字段,就是说将序号也当做是要导出的字段来处理,然后用程序给这个字段赋值,这方面有点傻,就不说了. 2.利用jasperreport提 ...

  2. MVC和三层架构的区别

    MVC是一种设计模式,Modal,View,Controller,三层分开,解开耦合,方便替换. 三层架构包括 UI层,业务逻辑层,Dao层.UI层负责展示数据,业务逻辑层具体处理数据,Dao层负责和 ...

  3. Hybrid App开发之JavaScript基础

    前言: 前面学习了html和css的基本使用,今天开始学习JavaScript的使用. 什么是JavaScript JavaScript是一种基于对象(Object)和事件驱动(Event Drive ...

  4. VMware 虚拟机 linux执行 ifconfig 命令 eth0没有IP地址(intet addr、Bcast、Mask) UP BROADCAST MULTICAST 问题

    VMware 虚拟机 linux执行 ifconfig 命令 eth0没有IP地址(intet addr.Bcast.Mask) UP BROADCAST MULTICAST 问题 eth0:网络接口 ...

  5. face++静态库转为动态库

    前言 苹果商店上架应用,有规定支持iOS8.0以上的iPA可执行文件的大小不能超过60M. face++提供过来的是静态库,会导致苹果上架的ipa的包增加1.5M左右.而刚好我们的APP包Mach-O ...

  6. [20180926]查询相似索引.txt

    [20180926]查询相似索引.txt --//有时候在表上建立索引比如A,B字段,可能又建立B字段索引,甚至A字段索引以及B,A字段索引,或者还建立C,A字段索引,--//需要有1个脚本查询这些索 ...

  7. Pandas透视表(pivot_table)详解

    介绍 也许大多数人都有在Excel中使用数据透视表的经历,其实Pandas也提供了一个类似的功能,名为pivot_table.虽然pivot_table非常有用,但是我发现为了格式化输出我所需要的内容 ...

  8. [android] 手机卫士自定义滚动控件

    TextView控件设置单行显示 android:singleLine=”true” 设置TextView开始的位置显示省略号,android:ellipsize=”start” 设置滚动属性,and ...

  9. 用jquery写的校验用户名

    $(function(){ $("input[name='username']").blur(function(){ var uname = $(this).val(); cons ...

  10. python学习笔记(断言assert)

    最近有了些时间 博主一直在python的unittest框架,这次想看看其他框架 先准备熟悉熟悉 pytest,由于unittest有自己断言方法 而pytest则是使用python自带的 asser ...