Java基础:第三十五讲 访问权限

Carla-编译CarlaUE4提示HoloLens.Automation项目缺少Windows程序集? 编译CarlaUE4提示HoloLens.Automation项目缺少Windows程序集?不妨看看这个! 阅读详情

 

    访问权限指的是是否运行访问类以及类的成员,通过访问控制符来实现,包括类的访问控制符和成员的访问控制符。

1、类的访问控制符

     类的访问控制符包括public和缺省的。

public访问控制符:

public class Person{

...

}

缺省的访问控制符:

class Person(){

...

}

    public修饰的类可以在任何地方访问,而缺省的访问控制符只运行同一个包中使用。看下面的代码:

----------------源文件:A.java-------------------------

package ch11;

public class A{

   ...

}

----------------源文件:B.java-------------------------

package ch11;

class B{

   ...

}

----------------源文件:Test.java-------------------------

package ch11;

public class Test{

    public static void main(String[] args){

         A a = new A();  // 正确,public运行访问

         B b = new B();  // 正确,同一个包允许访问

   }

}

----------------源文件:ch12包下的Test.java-------------------------

package ch12;

import ch11.A;

import ch11.B;  //  错误,不同包不能访问

public class Test{

    public static void main(String[] args){

         A a = new A();  // 正确

         B b = new B();  // 错误,不同包不能访问

   }

}

    通常类的访问控制符都写成public,如果你希望对他的访问进行限制,可以使用缺省的访问控制符。

2、访问类型划分

    在我们讨论访问权限的时候,我们会说允许外部类访问,允许子类访问,允许同包中的类访问等等,这些访问是什么意思呢?这既是访问类型,只有理解了这些访问类型,才能理解访问权限。

     首先我们要清楚访问发生在什么地方,访问实际上是对某个对象(有时候会是类)的成员的访问,这些访问的代码肯定是在某个方法中。访问类型实际上是要访问的代码与被访问的代码所在位置的关系。下面对这些访问类型进行分析。

     下面的例子展示了4中访问类型:

package ch11;

public class A{

    public String id;

    public String getId(){

       return id; // 在类内部访问成员变量id,实际上是类自己的方法

    }

}

package ch11;

public class B{

    public String getInf(A a){

       return a.id;  // 同包中的类B中的方法访问类A的成员

    }

}

package ch11;

public class C extends A{

      public String getId(){

         return id;  // 子类直接调用父类的方法或者属性

      }
}

package ch12;

public class D{

    public String getInf(A a){

       return a.id;  // 不同包中的类D中的方法访问类A的成员

    }

}

3、成员的访问控制符

     成员的访问控制符有4种:public 缺省的 protected 和private。

    如果访问控制符是public,则上卖弄的4种情况都可以。

    如果访问控制符是缺省的,则第一种情况可以,同包的情况也可以。

    如果访问控制符是protected,第一种情况可以,子类的情况也可以。

    如果访问控制符是private,则只有第一种情况可以。

    下面的表格是显示了具体的访问是否允许的情况:

 

 类自身子类同包不同包非子类
publicOKOKOKOK
缺省的OK同包OKOK 
protectedOKOKOK 
privateOK   

 下面的例子展示了各种情况:

package ch11;
 
public class A {
    public int i_public;
    protected int i_protected;
    int i_default;
    private int i_private;
   
    // 类自己的方法 , 可以访问所有类型的成员变量
    public void f(){
       i_public = 10;
       i_protected = 20;
       i_default = 30;
       i_private = 40;
    }
}
 
package ch11;
 
public class B_same_package {
    // 同包不能访问 private
    public void f(A a){
       a.i_public = 10;
       a.i_default = 20;
       a.i_protected = 30;
    }
}
 
package ch11;
 
public class Child_same_package extends A{
    // 同包子类不可以访问 private 成员
    public void f(){
       i_public = 10;
       i_protected = 20;
       i_default = 30;
    }
}
 
package ch12;
import ch11.A;
public class B_different_package {
    // 不同包只能访问 public
    public void f(A a){
       a.i_public = 10;
    }
}
 
package ch12;
import ch11.A;;
public class Child_different_package extends A{
    // 不同包子类可以访问 public 和 protected 成员
    public void f(){
       i_public = 10;
       i_protected = 20;
    }
}

下一次介绍成员变量的继承。

上一次:第三十四讲 包 
李绪成 优快云 Blog: http://blog.youkuaiyun.com/javaeeteacher
win10+conda+pytorch-gpu安装 pytorch 官网上只有linux和Mac的程序包,没有windows系统的,但是windows系统还是可以用pytorch的。  github: https://github.com/peterjc123/pytorch-scripts 首先要安装anaconda: 推荐清华镜像 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ ... 阅读详情

相关推荐

软考中级信息系统监理师(第二版)-第21章基础设施工程监理

由于网络信息技术的飞速发展,变化日新月异,网络设计不但要保证目前网络传输容量的要求,也要考虑今后网络的发展,满足当前以及今后相当一段时间内的网络需求,便于向新技术的升级和衔接,同时又需要保护原有的投资。通用布缆系统工程中,承建单位的竣工文档主要包括以下内容:承建合同,招标文件,投标文件,设计方案,工程实施组织设计方案,工程施工报告,隐蔽工程记录,变更记录,自测报告,信息点分布图(表),园区、楼宇、水平配线表,楼层平面图及无线设备点位图,无线设备信息表,竣工图纸等。多排安装时,列间距不应小于1200mm。

2301_78583973的博客 1401

小甲鱼Python教程35讲--Python EasyGui 笔记及习题答案

1.安装easyGui 打开cmd 改变目录到easygui解压的文件夹 在cmd中输入 注:前面的D:\python34\python.exe是python安装的文件夹2.导入easygui方法1:import easygui easygui.msgbox('嗨,美女')方法2: from easygui import * msgbox('啦啦啦')推荐方法3: import easy

蘇丶的博客 3738

FairyGUI深度解析:Unity复杂UI开发的高效解决方案与性能优化

在Unity游戏和应用开发中,UI系统的性能与开发效率是核心挑战。原生UGUI的组件化模型在应对复杂、动态界面时,常面临Draw Call过高、层级管理臃肿的问题。其原理在于,每个UI元素对应一个GameObject,渲染合批受限于Transform层级与材质状态,易导致性能瓶颈。FairyGUI(FGUI)作为一种专业的第三方UI解决方案,其技术价值在于采用了截然不同的“舞台-显示对象”渲染模型。该模型通过内部轻量级对象管理与自主合批系统,实现了极高的运行时效率与Draw Call优化。在应用场景上,FG

weixin_31315567的博客 344

小甲鱼Python3学习笔记之第三十讲(仅记录学习)

第三十讲:文件系统,介绍一个高大上的东西 一、知识点: 0.模块,是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能。 1.os模块中关于文件/目录常用的函数使用方法 函数名 使用方法 getcwd() 返回当前工作目录 chdir(path) 改变工作目录 listdi...

huashu2017的博客 1989

雷达原理习题答案【西电】

  目前教材用的是陈老师新版的,但是,我发现课后题有一部分是之前某本书里的。答案如下【建议参看原题→查阅答案】 【原题点这里!!点这里!!】 目录跳转功能目前好像只支持网页版 文章目录% 第一章、第二章% 第三章% 第四章% 第五章% 第六章% 第七章% 第八章 % 第一章、第二章 % 第三章 % 第四章 % 第五章 % 第六章 % 第七章 % 第八章 ...

薛定谔的壳的博客 1万+

powerdesigner导出sql将name放到comment注释上

【代码】powerdesigner导出sql将name放到comment注释上。

weixin_45947759的博客 1352

核桃派1B开发板Python环境搭建与MicroPython实战

MicroPython作为嵌入式Python实现,通过精简解释器将Python语法引入微控制器领域。其核心原理是在资源受限设备上实现Python核心功能,保留列表、字典等高级数据结构支持,同时提供machine等硬件操作模块。技术价值在于降低嵌入式开发门槛,使Python开发者能快速实现GPIO控制、PWM输出等硬件交互。典型应用场景包括物联网终端设备、教育机器人及智能家居控制器。本文以核桃派1B开发板为例,详解如何通过Thonny IDE搭建开发环境,并演示LED控制、ADC读取等MicroPython基

weixin_30723433的博客 453

【yolo】如何在 YOLOv8 中添加负样本以减少误检

在YOLOv8目标检测中,误检(False Positive)是一个常见问题,即模型将非目标区域错误识别为目标。通过引入负样本(Negative Samples),即不包含任何目标框的图像,可以有效减少误检。在YOLOv8中添加负样本的方法是为这些图像提供空的标注文件(.txt),确保每张图像都有对应的标注文件,即使内容为空。可以使用Python脚本自动生成这些空标注文件。使用负样本时需注意数量比例、标注一致性、验证集同步和图像质量。适当加入负样本能显著提升模型鲁棒性,降低误判风险。

songhuangong123的博客 2879

第三十五讲|问题求解方法——迭代

【项目1:另类求和】 求 Sn=a+aa+aaa+...+aa...a之值,其中 a是一个数字。 例如2+22+222+2222( 此时a=2,n=4),a和n均由键盘输入。 #include "stdio.h" int main() { int a,n,count=1,Sn=0,Tn=0; printf("请输入a和n的值:\n"); scanf("%d,%d",&a,&n); w

qq_28839621的博客 587

用 ADT 连接 SAP S/4HANA Public Cloud 开发租户的完整落地指南

摘要:在SAP S/4HANA公有云中进行ABAP开发时,必须使用Development Tenant(客户端080)而非Customizing Tenant(客户端100)连接ADT工具。开发用户需具备SAP_BR_DEVELOPER角色且写权限不受限,开发对象应创建在结构包的子包中。连接前需确认正确的ABAP服务URL(通常为Launchpad URL去掉"/ui"),并通过运行控制台程序验证全链路功能。典型开发场景如通过BAdI实现业务校验时,需遵循Clean Core原则在指定包

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 342

〔重庆理工大学〕大学物理实验--变温霍耳效应及其参数测定

每个老师要求不同,实验报告内容和数据仅供参考。

Pretty Boy Fox的博客 3044

JAVA基础 相关基础知识(一)

Jsp、servlet、线程安全、http协议、Java集合、数组、定时器、安全加密、ajax

SHBWeiXiao的博客 664

JAVA:Spring Boot 集成 Atomikos 实现分布式事务

摘要: Atomikos是一款基于JTA标准的分布式事务协调器,通过两阶段提交(2PC)协议实现跨数据库/消息系统的事务一致性,适用于金融等高要求场景。本文以Spring Boot集成Atomikos为例,演示多数据源(订单库、库存库)的分布式事务管理。核心步骤包括:引入Atomikos依赖、配置XA数据源、设置两阶段提交的MyBatis多数据源,并通过Atomikos协调全局事务,确保跨库操作原子性。代码示例涵盖配置类、YAML定义及MySQL XA数据源初始化,为分布式系统提供强一致性解决方案。

木头 334

我的理解之JAVA中的4种访问权限

一、Java中有四种访问权限,private、default(一般省略)、public、protected。 private: Java语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”。被其修饰的属性以及方法只能被该类的对象访问,其子类不能访问,更不能允许跨包访问。 default:即不加任何访问修饰符,通常称为“默认访问权限“或者“包访问权限”。该模式下,只允许在同一个包中进

少年阿虎 4万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Java基础之四种访问权限

一、Java中有四种访问权限,private、default(一般省略)、public、protected。private: Java语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”。被其修饰的属性以及方法只能被该类的对象访问,其子类不能访问,更不能允许跨包访问。default:即不加任何访问修饰符,通常称为“默认访问权限“或者“包访问权限”。该模式下,只允许在同一个包中进行访问。prot...

anyway8090的博客 3673

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【JAVA基础篇】访问权限

所谓访问权限,指的是本类的成员变量、成员方法和内部类对其他类的可见性。 四种访问权限 Java一共有四种访问权限,按照权限由大到小分别为public、protected、default和private,如果省略了访问修饰符,那访问权限就是defualt。四种访问权限的含义和权限控制见下面表格: 访问权限 含义 本类 本包的类 非本包子类 非本包非子类 pub...

cc的博客 9629

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Java基础深度总结:访问权限

流过泪的眼睛会更明亮,滴过血的心灵会更坚强。 内容1.访问权限概述2.Java中的四种访问权限3.使用场景 1.访问权限概述 访问权限控制: 指的是本类及本类内部的成员(成员变量、成员方法、内部类)对其他类的可见性,即这些内容是否允许其他类访问。 类可见表示其它类可以用这个类创建实例对象。 成员可见表示其它类可以用这个类的实例对象访问到该成员。 使用访问权限控制的原因: 为了使用户不要触碰那些他们不该触碰的部分,这些部分对于类内部的操作时必要的,但是它并不属于客户端程序员所需接口的一部分。 为

白日梦想家的博客 662

Java基础——访问权限

一、访问权限区别 public(公共): Java语言中访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性以及方法不仅可以跨类访问,而且允许跨包(package)访问。private(私有): 类级访问修饰符,一般称之为“私有的”。被其修饰的类(内部类)、属性以及方法只能在本类内部访问,其子类不能访问,更不能允许跨包访问。protected(继承访问权限): 包级访问修饰符,即:

王宝锋的专栏 890

Java 四种访问权限

访问权限

ChineseSoftware的博客 1万+

【编程基础知识】《Java 基础之访问权限控制:解锁代码安全与封装的奥秘》

访问权限的作用控制代码的可见性,防止意外的访问和修改。实现封装,隐藏内部实现细节,只暴露必要的接口。提高代码的安全性和可维护性。四种访问权限介绍public:公共访问权限,可以被任何类访问。private:私有访问权限,只能在当前类中访问。protected:受保护访问权限,可以在当前类、子类和同一包中的其他类中访问。默认权限(包访问权限):没有明确指定访问权限时的默认权限,可以在同一包中的其他类中访问。本文详细介绍了 Java 基础中的访问权限控制。

Dylaniou的博客 928

Java四种访问权限

java基础(七) java四种访问权限 引言 Java中的访问权限理解起来不难,但完全掌握却不容易,特别是4种访问权限并不是任何时候都可以使用。下面整理一下,在什么情况下,有哪些访问权限可以允许选择。 一、访问权限简介 访问权限控制: 指的是本类及本类内部的成员(成员变量、成员方法、内部类)对其他类的可见性,即这些内容是否允许其他类访问。 Java 中一共有四种访问权限控制,其权限控制的大小情况是这样的:public > protected > default(包访问权限) > priv

qq_43842093的博客 5300

【Java基础】Java中的访问权限

应用场景:如果涉及到包之间的业务逻辑的调用,考虑public修饰类,属性。**protected:**只能被本类、同一个包中的类访问;如果在其他包中被访问,则必须是该成员所属类的子类。应用场景:如果涉及到同包下类之间的调用或者需要提供继承复写扩展的业务方法,考虑使用protected修饰。**private:**成员变量和方法都只能在定义它的类中被访问,其他类都访问不到。应用场景:如果只想类内部调用,那就可以使用private。**friendly(缺省):**访问权限与protected相似,但修饰类成员

2401_84048179的博客 1019

java的四种访问权限_Java四种访问权限

一、访问权限简介访问权限控制: 指的是本类及本类内部的成员(成员变量、成员方法、内部类)对其他类的可见性,即这些内容是否允许其他类访问。Java 中一共有四种访问权限控制,其权限控制的大小情况是这样的:public > protected > default(包访问权限) > privatepublic:Java语言中访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性...

weixin_30467861的博客 6605

Java中四种访问权限

一、Java中有四种访问权限 private、default(一般省略)、public、protected private: Java语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”。被其修饰的属性以及方法只能被该类的对象访问,其子类不能访问,更不能允许跨包访问。 default:即不加任何访问修饰符,通常称为“默认访问权限“或者“包访问权限”。该模式下,只允许在同一个包中进行访问。 protected: 介于public 和 private 之间的一种访问修饰符,一般称之为“保护访问权限”。被

zhangbw's blog 9917

Java 中的访问权限

在 Java 编程中,访问权限的控制是非常重要的一部分,它决定了类、方法和变量在不同场景下的可见性和可访问性。合理地使用访问权限可以提高代码的安全性、可维护性和可扩展性。总之,Java 中的访问权限控制是一种强大的工具,它可以帮助我们构建更加安全、可维护和可扩展的软件系统。在实际编程中,我们应该根据具体的需求合理地选择访问权限级别,以实现最佳的代码质量和设计。注:因为代码不太好展示这个内容,所以仅介绍了private权限。

mailangduoduo的博客 2588

private访问权限java_Java中的访问权限控制

Java提供了public, private, protected 三个访问权限修饰词,提供了以下四种访问权限控制机制:1、包访问权限;2、Public访问权限;3、Private访问权限;4、Protected访问权限;1、包访问权限包访问权限是Java为了便于程序员开发而给定的一种权限选择。当方法或域未给定访问权限限制符时,其默认具有该权限。具有该权限的方法和域成员,在包内是完全可见的(注意要...

weixin_30240263的博客 1943
上一篇: 把电梯当跑步机
下一篇: 小偷与大偷
老李-大连
博客等级 码龄20年 3206粉丝 308原创
评论 9
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值