面向对象之访问修饰符

19、C面向对象编程:封装、多态与访问修饰符详解 本博客详细介绍了C#面向对象编程的三大核心概念:封装、多态与访问修饰符。通过示例代码讲解了多态在实际开发中的应用,访问修饰符如何控制类成员和类型的可见性,以及如何通过传统访问器/修改器方法和.NET属性实现数据封装,确保对象状态的安全性和一致性。内容还涵盖了嵌套类型的访问控制、程序集内部访问限制以及良好的类设计实践,适合希望深入理解C#面向对象特性的开发者阅读。 阅读详情

@(笔记)[MarkDown|我的博客]

面向对象之访问修饰符

public

谁都可以操作
- 当在方法或属性前面显显式的给定public限定符的时候,其具有该权限控制.
- public权限是最为宽松的一种权限控制,对包的内,外部都是完全可见的.
- java最多只允许一个java文件中出现一个public类.(该类向外间提供接口,并与该java文件的名称完全一致)
- 当一个java文件中无一个public类时,表明其仅供包访问,对外界不可见.
- 注意:类只有包访问权限和public访问权限.

默认访问修饰符 (friendly)

同一个包内可以操作

  • 当方法或属性未给定访问修饰符时,其默认具有该权限.
  • 具有该权限的方法和成员,其包内是完全可见的,而包外不可见.
//Animal.java和Test.java在同一包下;
//Animal.java
public class Animal{
    void eat(){
        System.out.println("Animal吃东西的方法");
    }
}
//Test.java
public class Test{
    public static void main(String[] args){
        Animal a = new Animal();
        a.eat();
    }
}

由于Animal类和Test类都被打包在同一个package下,Animal类中的eat()方法为默认访问权限,故对Test可见.
对java文件中的类也是如此,如果未指定访问权限,其默认为包访问权限,只能在包内被访问.
包外是无法利用其实例化对象的.

注意:当决定一个类对包外可见的时候,
除了要将类的访问修饰符改为public外,自定义的构造方法限定符也必须改为public,不然将导致外部不可见.

protected

同包或者导出类可以操作
- protected权限是一种严格程度介于public和private之间的访问修饰符.
- 具有protected权限的或方法只能对自身和导出类可见.

private

除了自己,谁都不能操作
- private是访问修饰符中最为严格的一种权限.
- 当方法或属性为private权限的时候,表明其只针对该类的内部可见,类的外部(包括同包内的其他类)都是不可以见的.

//Animal.java和Test.java在同一包下;
//Animal.java
public class Animal{
    private void eat(){
    System.out.println("Animal吃东西的方法");
    }
}

//Test.java
public class Test{
    public static void main(String[] args){
        Animal a = new Animal();
        a.eat();//将造成编译错误,eat()方法为private,仅对Animal类内部可见,现在在Test类内部,所以不可见.
    }
}

总结

  • 在面向对象的设计当中,最常见的为public和private权限修饰符.
  • 一般情况下将定义为private,将方法定义为public.外界使用该类时,通过public方法是用其接口,而具体的成员则对外屏蔽,只能通过类提供的节后间接访问.
public class Dog{
    private int age ;
    public void setAge(int num){
        age = num + 1 ;
    }
}

此处,age对外部不可见,要想对其进行操作,必须使用Dog类提供的接口setAge(int num).

作用域当前类同包子类其他包
public√√√√
protected√√√×
默认√√××
private√×××
RK3588 部署 YOLO26-Pose 人体姿态检测:Windows Docker 环境全流程 YOLO26-Pose 在 RK3588 上的部署流程是 PC 端 ONNX 导出 → RKNN 转换(INT8 量化)→ 板端推理。INT8 量化后 YOLO26s-Pose 约 35ms,YOLO26n-Pose 约 15ms,可以覆盖实时姿态检测的需求。后处理是 Python 实现的常见瓶颈——如果帧率不达标,先用 npy 保存模型输出在 PC 上验证解析逻辑的正确性,确认无误后再迁移到 C++ 实现。 阅读详情

相关推荐

基于YOLOv8的玉米病害监测系统

本研究的主要目标是设计并实现一个基于深度学习的玉米病害识别系统,通过采用YOLOv8算法进行玉米叶片病害的自动化识别。研究首先对玉米病害的种类和特点进行了分析,选择了具有代表性的病害类型,如玉米锈病、灰叶斑病、枯叶病和健康叶片,以构建一个多类别的分类问题。数据集的构建和处理是研究的关键部分,通过数据增强、图像标注等手段确保了数据的多样性和丰富性,从而提高了模型的泛化能力。

yupan__的博客 496

面向对象编程:关于类的访问修饰符

文章目录一.类的访问修饰符二.包的导入 一.类的访问修饰符 从小到大依次为: private(私有,当前类的内部可见)< default(啥也不用写就是包权限,当前包的内部可见,不包含子包,同级目录下可见)<protect(继承权限,不同包的有继承关系的类之间可见)<public(当前项目可见) java中的包就对应操作系统的文件夹 声明一个包使用package关键字 若存在多个文件夹的嵌套,使用“.”来分隔 package www.bit.java.rocketclass有几个点创造几个

m0_55644719的博客 975

Doris副本修复实战:从状态机到手动修复的完整指南

在分布式数据库系统中,多副本机制是实现高可用与数据一致性的核心技术。其原理是通过在不同节点存储数据的多个拷贝,确保部分节点故障时服务仍可继续。这项技术的核心价值在于保障数据可靠性,并支撑在线分析处理(OLAP)等对数据一致性要求高的应用场景。当副本出现损坏、丢失或版本不一致时,系统通常依赖自动修复机制,但在元数据损坏、多副本同时故障等复杂场景下,自动修复可能失效,需要深入理解副本状态机并借助手动工具介入。本文将聚焦Doris数据库,解析Tablet副本状态流转(如BAD、VERSION_ERROR),并详细

weixin_32288959的博客 461

java中的保护(protected)修饰符的理解

java中的保护(protected)修饰符的理解 protected修饰符给出的大部分定义解释都为protected修饰的属性或方法,允许同包下的类和不同包的子类访问。 但是protected修饰的属性,只可以被同包的类访问。这句话的意思就是:子类通过继承,可以在自己类中访问自己的protected属性,但是不能访问异包类的protected字段(即使是自己的超类)。这和大部分给出的定义相违背,因为父类中用protected修饰的属性,如果继承这个类的子类与这个类不在同一个包下,那么子类就不能访问父类中用

xjx666666的博客 1万+

【Hyper-V】虚拟机网络配置全解析:从端口映射到固定IP实战

本文全面解析Hyper-V虚拟机网络配置,从理解虚拟交换机三种模式(外部、内部、专用)的底层逻辑入手,指导用户创建稳定的内部/NAT网络,并详细演示如何在Linux与Windows虚拟机中配置固定IP。文章进一步深入讲解端口映射原理与netsh命令实战,以及双网卡配置和PowerShell自动化脚本等高级技巧,帮助用户彻底解决虚拟机网络“失联”问题,实现灵活可控的网络环境。

weixin_29290947的博客 269

R语言绘制森林图

运行上述代码后,将会生成一个标题为"森林图示例"的森林图。通过以上代码示例,你可以根据自己的数据集和需求创建定制的森林图。在实际应用中,你还可以进一步调整图形的样式,添加图例、坐标轴标签等,以使森林图更加美观和易于理解。在数据可视化领域,森林图是一种常用的图形类型,用于展示多个分类变量之间的关系。本文将介绍如何使用R语言创建森林图,并提供相应的源代码示例。森林图通常由垂直的线段表示不同类别的观测值,并且线段的长度表示数值变量的大小。上述代码中,我们为不同的类别分别指定了蓝色和红色作为颜色映射关系。

TechNovaX的博客 1045

访问控制修饰符——protected和默认

放了一个错误:误以为只要子类能够继承受protected修饰的属性和方法,无论在什么地方都能访问到该属性和方法了,觉得子类能够带着父类能够继承的所有属性勇闯天涯!1、背景:在Demo04包中有一个类Goo,其中有属性c(protected修饰),在Demo05包中创建一个Goo的子类Gooson。2、在Demo05包中的Demo类中访问——尽管通过创建子类Gooson的对象,也不能访问到。1、Protected:所有子类(尽管该子类不在同一个包中)和同一个包中的所有类可以访问。

ly0712__的博客 740

Eplan设计师必会—伺服安全回路的设计方法

本文介绍了在EPLAN中设计伺服STO安全回路的方法。首先需查阅伺服驱动器说明书确定STO接线端子,重点关注双通道配置。设计步骤包括:使用黑盒子功能绘制驱动器外形,正确标注STO接线点,并连接安全继电器或PLC的安全输出。关键注意事项有:必须采用双通道独立布线,确保同步动作,遵循故障安全原则,使用常闭触点串联回路。文中以西门子V90和汇川伺服为例说明具体接线要求,并附有项目实例参考。

Qinmingyue13的博客 436

面向对象——访问修饰符

不使用权限修饰符修饰的成员变量和成员方法可以在声明它的类中访问,也可以在该类位于同一个包中的类访问,但不能位于其他包的类(包括子类)中访问。被该修饰符修饰的成员变量和成员方法可以在声明它的类中访问,在该类的子类中访问,也可以在与该类位于同一个包中的类访问,但不能再位于其他包的非子类中访问。Java中的静态初始化是一种在类被加载时执行的初始化方式,用于初始化类的静态变量和执行一些静态代码块。被该修饰符修饰的成员变量和成员方法只能在声明他们的类中访问,而不能再其它类(包括子类)中访问。public访问修饰符。

南州博客 309

vue3中使用antv-S2表格(基础功能版)

表格的数值默认会渲染排序 icon, 可以配置 showDefaultHeaderActionIcon关闭。当配置为对象时,always 控制是否在子维度不足 2 个时始终展示小计,默认不展示。首先创建一个vue3+vite+ts项目,可以查看下面相关文章,只看第一条即可。可以调整行宽、列宽、列排序、单个单元格详情展示、选中某列、某行等基本功能。可以通过上面设置的SUM函数自动计算出数值,也可以自定义累加函数。配置自定义方法优先级大于配置聚合方式,即配置。1、在项目中安装(npm/pnpm都可以)

蜗牛~~ 2210

LVGL 实战:倒计时翻页钟

环境:LVGL 9.x + PC 模拟器。每个数字做成上下两半的卡片,秒变时用绕中缝翻页:上半旧页折叠下去、下半新页展开上来,配合阴影遮罩做出立体感。从 02:00 倒计时到 0,闪一下再重置。界面文案用英文(默认字体无中文)。

摸鱼专家 213

面向对象(三):访问权限修饰符、重写、多态

一(访问修饰符) 在Java中,针对类,成员方法和属性提供了4种访问级别,访问级别由大到小分别为:public---protected---default---private。 public:公共访问级别,如果一个类或者类的成员被public访问控制符修饰,那么这个类或者类的成员能被所有的类访问,不管访问类与被访问类是否在同一个包中。 protected:子类访问级别,如果一个类的成员被protected访问控制符修饰,那么这个成员既能被同一包下的其他类访问,也能被不同包下该类的子类访问。 de..

qq_51768153的博客 3194

标题:Stata17安装后遇到Java安装问题解决方法

设置JAVA_HOME环境变量:在Windows上,您需要设置JAVA_HOME环境变量以告诉Stata Java的安装路径。d. 输入变量名为JAVA_HOME,变量值为Java安装路径。注意:请确保您的Java版本与Stata兼容,并使用正确的Java安装路径。设置Stata的Java安装路径:现在,您需要告诉Stata Java的安装路径。如果您看到Java版本信息,则表示Java已成功安装。如果没有安装,请先下载并安装Java。确认Java已安装:首先,请确保您的计算机上已经正确安装了Java。

CyberSparkZ的博客 2867

6.面向对象,类,访问修饰符

6.面向对象,类,访问修饰符 面向对象思想 概述 面向对象是基于面向过程的编程思想 面向对象的三大特征 封装 继承 多态 特点 是一种更符合我们思想习惯的思想 可以将复杂的事情简单化 将我们从执行者变成了指挥者 “万事万物皆对象” 只要是对象,就具备特征(属性)和行为(方法) 面向对象(OOP)与面向过程 ...

ColdArriveWu的博客 917

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

PHP面向对象——访问修饰符

PHP面向对象——访问修饰符  PHP中有三种访问修饰符,分别是: public(公共的、默认)protected(受保护的)private(私有的)     它们可以分别用在类的属性和方法上(类的属性和方法统称为类的成员),用来修饰类成员的访问权限。    public(公共的、默认)     在PHP5中如果类没有指定成员的访问修饰符,默认就是public的访问权

Mary201572的博客 2823

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

js面向对象的理解, TS访问修饰符

面向对象也即是OOP,Object Oriented Programming,是计算机的一种编程架构,OOP的基本原则是计算机是由子程序作用的单个或者多个对象组合而成,包含属性和方法的对象是类的实例,但是JavaScript中没有类的概念,而是直接使用对象来实现编程。:在不改变源程序的基础上进行扩充,原功能得以保存,并且对子程序进行扩展,避免重复代码编写,后面的章节详细描述。protected:多有定义成protected的属性和方法可以从类定义内部访问,也可以从子类中访问。关键字将属性设置为只读的。

weixin_61023950的博客 286

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Java面向对象基础--抽象类、接口、访问修饰符

Java面向对象基础–抽象类、接口、访问修饰符 一、抽象类 定义: 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。 关键词:abstract 抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。 由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。也是因为这个原因,通常在设计阶段决定要不要设计抽象类。 父类包含了子类集合的常见

买米当卡的博客 971

27访问修饰符以及面向对象的三大特征

目录访问修饰符Java本身提供了四个访问修饰符举例面向对象的三大特征封装定义目的举例继承多态 访问修饰符 就是确定类、变量、方法等能不能够被正常访问的修饰符 Java本身提供了四个访问修饰符 public 在任何地方都可以正常访问,权限最大 protected 同包、子类、同类 默认(缺省) 不写 同包、同类 private 同类 举例 面向对象的三大特征 封装 定义 从广义上来说,封装就是将物品保管起来封存起来 面向对象上说的封装,是一种特指: 将类的属性私有化(不在

nanguato的博客 200

Java面向对象之包、访问修饰符、封装及继承及多态

文章目录1、包1.1、需求引出1.2、包的三大作用1.3、基本语法1.4、包的本质分析1.5、包的命名1.6、常用的包1.7、如何引入包1.8、注意事项和使用细节2、访问修饰符2.1、定义2.2、4 种访问修饰符的访问范围2.3、使用的注意事项2.4、代码实现3、面向对象编程三大特征3.1、封装3.1.1、定义3.1.2、封装的优势3.1.3、封装的实现步骤3.1.4、将构造器和 setXxx 结合3.2、继承3.2.1、定义3.2.2、定义继承的基本语法3.2.3、代码实现3.2.4、继承给编程带来的便利

一切随心走的博客 578

C# 面向对象 类 属性 访问修饰符

1、面向过程------>面向对象 面向过程:面向的是完成这件事儿的过程,强调的是完成这件事儿的动作。例如:a)、打开冰箱门;b)、把大象塞进去;c)、关闭冰箱门; 面向对象:找个对象帮你做事儿。意在写出一个通用的代码,屏蔽差异。 对象是根据类创建出来的。类就是一个盖大楼的图纸。对象就是盖出来的大楼。 2、类 语法: [public] class 类名 { 字段; 属性; 方法; } 写好了一个类之后,我们需要创建这个类的对象,那么,我们管创建这个类的对象称之为类的实例化。 使用关

钢铁男儿 293

【面向对象】类、访问修饰符、封装、继承、多态

面向对象 三大特征:封装、继承、多态 优点:结构清晰,可维护性好,可扩展性好 访问修饰符(写在命名任何东西的最前面) 1.public 公共的,访问权限最高,但是需要引用 命名空间 2.private 私有的,访问权限最低,在类的内部进行访问 3.protected 内部的,默认的,当前命名空间(程序集...

dida5235的博客 181

java访问修饰符的访问范围 and 面向对象特征与区别

java访问修饰符的访问范围和面向对象的特征与面向过程的区别

weixin_51395608的博客 360

c#面向对象- 类的语法及创建、实例化、访问修饰符

类: 就是一个模子,对象是根据类创建出来的。 一个形象的比喻: 类就是一个盖大楼的图纸,对象就是盖出来的大楼。 语法: [public] class 类名 { // 字段; // 属性; // 方法; } 如何在项目中创建一个类: 在开发中,通常会把类单独写一个文件: 在项目文件上右键 ——> 添加 ——> 新建项 ——>选择类 或 在项目文件上右键 ——> 添加 ——> 在下边直接选择 类 此时,此时会自动生成一个文件,然后根据

记录点滴 1160

说说php 面向对象访问修饰符(public、private、protected)

/ 错误,不能直接访问 protected 方法。// 通过公共方法访问 private 属性。// 错误,不能直接访问 private 属性。// 可以访问 public 属性。属性和方法可以在类的内部以及子类中访问。属性和方法可以在类的外部直接访问;属性和方法只能在类的内部访问;

284

PHP面向对象–访问修饰符介绍

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33728708的博客 96

【C++】深入理解面向对象编程中的访问修饰符与类内外区别

在面向对象编程中,常见的访问修饰符包括公共(public)、保护(protected)和私有(private)三种类型。公共(public):公共成员在类内外均可访问。这意味着公共成员对外界是可见的,任何地方都可以通过对象来访问。保护(protected):保护成员在类内部可以访问,在类外部不可直接访问。通常情况下,只有派生类可以访问基类的保护成员。私有(private):私有成员仅在类的内部可访问,在类的外部不可直接访问。私有成员对外界是隐藏的,外部无法通过对象直接访问私有成员。

CS Beginner的博客 512
上一篇: 面向对象(五)
下一篇: 面向对象之关键字
dong4go
博客等级 码龄12年 5粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值