OC实例变量可见度 setter方法和getter方法

带挂牵引车倒车运动模型推导及仿真实现 半挂牵引车在倒车时,由于鞍座主销的连接限制,其运动方式与乘用车有显著差异。例如,乘用车在右侧倒车入库时,只需确定泊车起点并将方向盘向右打死。相反,牵引车在倒车时需要先向左转方向盘,当铰接角达到防折叠的临界值时,再将方向盘向右转回,以调整牵引车与挂车至直线状态,完成泊车入库。本研究旨在建立一个基于牵引车带挂车倒车运动学模型,该模型基于以下假设: 道路在车辆行驶过程中保持平坦,无凹凸不平; 车辆以低速行驶,且在运行过程中车身不发生侧倾或俯仰; 行驶过程中,轮胎无变形,无侧向滑动,且不产 阅读详情
实例变量的可见度:一共有三种
    @pubic:公共的, 在任何文件中都可以访问(访问方式是通过对象+指向操作符, 例如:per->name
    @protected:受保护的, 有一定的访问权限, 只允许在本类文件以及子类中访问, 其他文件不可以访问
    @private:私有的, 只允许在本类文件中访问, 不可以在子类文件以及其他文件中访问
    默认的可见度是@protected
    为什么不声明为@public?
    1 声明为@pubic的实例变量, 外部就可以访问以及修改, 会影响内部的一个实现, 暴漏实现细节
    2 违背了OC面向对象的三大特性之一-----封装.(封装的思想是隐藏内部的实现, 提供外部访问的接口)
    为什么不声明为@private
    1 声明为@private的实例变量, 子类文件不能访问, 所以子类文件还要重新定义声明
    2 违背了OC面向对象特性之一----继承(父类有的东西, 子类也有, 可访问)

文件和类没有直关系: 文件中可以存放多个类, 只要类符合接口部分和实现部分的定义格式就可以; 一般情况下, 一个文件中就定义一个类, 而且文件的名字和类的名字一样, 这样就能清晰的知道该文件中类的名字

self : 谁调用该方法, self代表谁
        当方法是实例方法(-号方法)时, 调用该方法的对象是谁, self就代表当前对象
        当方法是类方法(+号方法)时, 调用该方法的类是谁, self就代表当前类

@interface Person : NSObject {
    NSString *_name;//姓名
    NSInteger _age;//年龄
    NSString *_sex;//性别 gender
}

- (void)sayHi;

//设置器 seter方法 (只有一个参数的)-------有多个参数的方法不叫设置器--------------
//为name赋值
- (void)setName:(NSString *)name;
- (void)setAge:(NSInteger)age;
- (void)setSex:(NSString *)sex;

//访问器 getter方法
- (NSString *)name;
- (NSInteger)age;
- (NSString *)sex;

+ (void)test;

//自定义初始化方法
- (id)initWithName:(NSString *)name age:(NSInteger)age sex:(NSString *)sex;
@end

@implementation Person
- (void)sayHi {
    NSLog(@"hello iOS, my name is %@, age is %ld, sex is %@", _name, _age, _sex);
}

//设置器(只有一个参数的)
//设置名字
- (void)setName:(NSString *)name {
    _name = name;
}
//设置年龄
- (void)setAge:(NSInteger)age {
    _age = age;
}
//设置性别
- (void)setSex:(NSString *)sex {
    _sex = sex;
}

//访问器
//访问姓名, 将姓名返回
- (NSString *)name {
    return _name;//直接将值返回即可
}
//访问年龄, 将年龄返回
- (NSInteger)age {
    return _age;
}
//访问性别, 将性别返回
- (NSString *)sex {
    return _sex;
}

+ (void)test {
    //在类方法(+号方法)中不能使用实例变量, 实例变量是依托对象存在的, 只有有了对象, 实例变量才会有空间
//    _name;
}

- (id)initWithName:(NSString *)name age:(NSInteger)age sex:(NSString *)sex {
    self = [super init];
    if (self != nil) {
        _name = name;
        _age = age;
        _sex = sex;
    }
    /**
     *  self : 谁调用该方法, self代表谁
        当方法是实例方法(-号方法)时, 调用该方法的对象是谁, self就代表当前对象
        当方法是类方法(+号方法)时, 调用该方法的类是谁, self就代表当前类
     */
    return self;
}

游戏经济数值模型的搭建过程——以标准卡牌游戏为例 一、总体规划 1.玩家分类 首先我们按照下表对玩家进行分类 付费能力即为充值额度;充值行为比如购买月卡/购买钻石;消费行为比如用钻石抽卡 在这里我们假设玩家是理性的,即玩家会以追求更高的性价比为目标进行充值与消费(即小R会优先买首冲+月卡,而不是买一个无用的无属性皮肤) 不同类型玩家之间的差异,实际上就主要由这些行为的差异而决定。 注:早期游戏制作的时候,活跃程度也是区分玩家类型的一个重要依据。不过目前现在游戏中有各种手段抹平了不同活跃玩家的差异(体力限制,活跃时间长的收益递减).. 阅读详情

相关推荐

calibre QRC提取寄生参数

typical将上面的文件QCI_flow里面的文件 在Cp 到当前 ,其实应该是某几个文件,但是我给忘记了 就全cp过来了 ,无影响,不过也希望大佬指正。

2202_75711937的博客 1517

实例变量可见度和方法(setter,getter 方法)

//   一、 // main.m // OC相对于C来说进行了一个优化,  #import 相对于 #include 来说:可以防止重复导入头文件引起的编译错误 //#import"AudiCar.h" //#import"AudiCar.h"      //不报错   //#include"AudiCar.h" //#include"AudiCar.h"    //报错

Yz_OS的博客 386

Python高效转换病理图像:从mrxs到SVS的完整实践指南

本文提供了使用Python将数字病理切片从mrxs格式高效转换为SVS格式的完整实践指南。针对mrxs格式兼容性差的问题,文章详细解析了基于openslide和tifffile库的核心转换流程,并重点分享了应对大内存消耗的优化方案与流式处理技巧,确保转换后的SVS文件保留多分辨率金字塔结构,兼容主流病理分析工具。

weixin_29051811的博客 547

Java的setter方法和getter方法的使用

java有三大特性:封装,继承还有多态。                   而今天,我来讲一下其中最重要的特性之一:封装。           首先,属性可用来描述同一类事物的特征,方法可描述一类事物可做的操作。封装就是把属于同一类事物的共性(包括属性与方法)归到一个类中,以方便使用。           1.概念:封装也称为信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,

前端学习之地 3万+

从BSCAN到BAP:深度解析Tessent MBIST逻辑的协同工作机制与设计考量

本文深入解析了Tessent MBIST逻辑中BSCAN Interface、Logic Group Def、Controller与BAP模块的协同工作机制。文章以一条测试指令的完整路径为例,详细阐述了数据流与控制流如何跨模块、跨时钟域协同工作,并重点探讨了MBIST BAP在协议转换与流量管理中的核心桥梁作用,为芯片内建自测试的集成与调试提供了关键的设计考量和实战技巧。

kappa的博客 479

【技能】OpenClaw Skills学习及手搓一个极简skill

本文介绍了OpenClaw Skills的基础概念与使用方法。Skills是OpenClaw代理使用工具的核心载体,通过SKILL.md文件定义技能属性和执行方式。技能加载遵循"工作区>本地>内置>自定义目录"的优先级规则。用户可通过ClawHub一键安装现成技能,也可自定义开发技能:创建技能目录,编写包含YAML元数据和执行指令的SKILL.md文件,放置于工作区skills目录进行测试。文章还介绍了多代理场景下的技能共享、插件集成以及安全注意事项,包括沙箱使用和敏感

海兰 3975

OC中实例变量可见度、setter、getter方法和自定义初始化方法

在对类和对象有一定了解之后,我们进一步探讨实例变量的可见度等相关知识实例变量的可见度分为三种情况:public(共有),protected(受保护的,默认),private(私有的),具体的不同和特点如下:650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/5D/E2/wKioL1UmYdLC3ue8AAP6rVxaaFM360.jp

RunningSnail2的博客 915

uniApp微信小程序:error: 60001 request:fail errcode:-101 cronet error code:-101error_msg:net::ERR CONNECTI

uni-app微信小程序域名访问报error 60001 request:fail errcode:-101,解决Uniapp微信小程序报600001错误,uni.request()接口请求报错,服务器更换SSL证书后,uniapp微信小程序出现`request:fail errcode:-101`问题分析与解决,服务器更换ssl证书后,手机访问微信小程序异常,微信小程序更换SSL证书后出现请求报错,服务器更换SSL证书,微信小程序报600001,小程序反应偶尔出现request:fail errcode:

✅ 精选推荐文章 4582

进击的KFC:OC(二)实例变量可见度、方法、setter、getter

实例变量可见度、方法、setter、getter

KFC是做基的 497

基于ADMM的TV正则化最小化稀疏实现图像重建

ADMM算法是一种求解带有约束条件的优化问题的有效方法,它可以将原问题分解成两个子问题,然后交替求解这两个子问题,直到收敛。为了解决这些问题,研究人员提出了许多图像重建方法,其中一种常用的方法是基于正则化的方法。在图像重建中,TV正则化是一种比较常用的正则化方法,可以有效地降低图像的噪声,并保持图像细节特征。通过本文的介绍和源代码的演示,我们可以看出基于ADMM的TV正则化最小化稀疏实现图像重建的方法是一种简单、高效、有效的图像重建方法,能够在一定程度上提高图像质量,对于实际应用具有一定的参考意义。

学习使你进步。 1762

【SpringBoot 4.x 第29节】Spring Security 7 入门:先理解认证和授权!

🏆 本文收录于 《滚雪球学 Spring Boot 4.x》 专栏。本专栏面向 有一定 Java 基础,但尚未系统学习 Spring Boot 的读者,采用“滚雪球式学习法”:先跑通、再理解、再重构、再上线,带你从第一个 Hello API 开始,逐步完成一个可部署、可监控、可扩展的后端项目。

**My Coding Family** 551

OC第二天-实例变量可见度,setter和getter方法,导入头文件

实例变量可见度、方法、setter、getter Person.h#import <Foundation/Foundation.h>@interface Person : NSObject{// 在声明成员变量的时候,如果没有使用关键字进行说明,默认是受保护类型 NSString *_address; @public//公开的 可以在本类和类外面访问和修改;可以在任何地方访问

qq_28356573的博客 517

材料带隙预测(图神经网络)(⭐⭐)—— 用晶体图网络预测钙钛矿材料的能带隙,加速光伏材料筛选。技术栈:CGCNN、MEGNet、Materials Project数据集

钙钛矿太阳能电池以其高效率、低成本的优势迅速崛起,但传统“试错法”材料筛选效率极低,严重制约了光伏技术的迭代速度。近年来,基于图神经网络的材料带隙预测方法,特别是晶体图神经网络(CGCNN)和材料图网络(MEGNet),为这一问题提供了革命性的解决方案。本文系统梳理了材料带隙预测从传统计算到深度学习的演进历程,深入剖析了CGCNN与MEGNet的架构设计、数学原理及创新机制,详细阐述了Materials Project数据集的构建、特征工程与处理策略。

2201_76125393的博客 47

OC属性的setter和getter方法

一、setter和getter的一般写法 setter和getter器可以说是一个类最基本的东西,任何一门面向对象的语言,都又这个概念,C++、java等等。因为setter和getter是对面向对象语言封装的最基本的支持。 在Objective-C的setter和getter器,当然也和一般的语言没有什么不同。只不过,添加了一些自己的特性。 比如有一个实例变量:int age; 先在.h文件中声...

草帽~小子^的博客 1212

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

OC关于重写属性的setter和getter的问题

文章目录OC关于重写属性的setter和getter的问题一、背景二、成员变量、@property、属性、@synthesize。成员变量属性@property@synthesize1、使用@synthesize2、定义新变量总结 OC关于重写属性的setter和getter的问题 一、背景 在一个开发交流群里,看到这么一个问题:重写setter和getter时候报错:Use of undecla...

竹毛言己 2495

Devexpress16.2.6破解工具

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

OC02 实例变量可见度和方法-1

Person.h #import  #pragma mark --3种实例变量的可见度 @interface Person : NSObject{          // 实例变量默认的可见度是protected:只能在本类和继承自本类的子类中直接访问到。     NSString *_name;          @private // 私

康大亮学IOS 481

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

OC - @property与setter,getter方法

先说说setter与getter方法的作用先上一段.m/*================================================= 设计一个K线类, 有三个属性, 最高价格, 最低价格, 平均价格. 要求可以设置和获取这三个属性 =================================================*/ // Created by 大L

大L君的博客 1260

可见度和方法

实例变量可见度可见度: 可见度 特点 public(公有的) 在类的内外部都可以操作 protected(系统默认,受保护的) 只能在类和子类中操作 private(私有的) 只能在该类内访问 { @public NSString *_perName; NSString *_perSex; @protected NSInteger

进击的程序猿 1314

IOS——OC——浅谈OC中的setter 和getter方法

一、setter和getter的一般写法 setter和getter访问器可以说是一个类最基本的东西,任何一门面向对象的语言,都有这个概念,C++、java等等。因为setter和getter是对面向对象语言封装的最基本的支持。 在Objective-C的setter和getter器,当然也和一般的语言没有什么不同。只不过,添加了一些自己的特性...

Maybe_2333的博客 289

黑马程序员——OC 基础:setter和getter方法

1.setter方法(设置器)     在开发过程中,考虑到安全性的要求,我们一般不再成员变量名前面使用@public、@protected等关键字修饰,而是使用set方法来为对象提供成员变量的值。在set方法内部也可以对一些不合理的赋值进行筛选过滤。     set方法的作用:为外界提供一个设置成员变量的方法   命名规范:      1)set方法是对象方法,要以”-“开头   

gamhunter的博客 757

OC学习 第二章便利初始化 便利构造器 getter/setter方法

OC学习    第二章       getter/setter方法便利初始化 便利构造器      1.实例变量可见度          @public(公有的)  :声明的成员变量及方法都可以使用;          @protected(受保护的,默认的) :声明的成员变量及方法只能在本类和其子类用;          @private(私有的):声明的成员变量及方法只有本

刘永强的博客 413

黑马程序员-OC-getter & Setter方法

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-getter与setter方法是为了保护我们类的成员变量,保证成员变量的值的受当前类的控制。在OC中,获得与设置成员变量的值应使用getter & setter方法。set方法定义规范: 1)set方法一定是一个对象方法 2)set方法一定没有返回值 3)set方法必须以set开头 4)set之后跟

IOSway的博客 493

oc中的 getter 和setter方法 浅析示例

-setter方法根据所更改的变量名称来命名               //setter 方法,用于赋值,格式:-(void)set变量名(首字母大写):(成员变量类型)型参名 -(void)setName:(NSString *)newName; -getter方法根据所取得的变量名称来命名      //getter ,用于取

JinigW的博客 629

OC2_实例变量可见度和方法

实例变量可见度和方法

lanoustudent的专栏 507

如何修改和访问方法中受保护的实例变量

1.实例变量的可见度有三种. 公共的(public) 实例变量可以在类的内部和外部操作。 受保护的(protected)实例变量只能在该类的内部及其子类中进行操作 私有的(private)实例变量只能在该类的内部操作。 2.修改方法中受保护的实例变量 首先在.m中实现赋值的方法,对实例变量进行赋值,实例变量对象 = 方法中的参数名,然后可以调用此方方法传入参数。 .m中

花色1125的博客 1100

OC中私有方法和变量

OC中私有变量实例变量既可以在interface中定义,也可以在implementation中定义。 区别在于:写在implementation默认是私有成员变量,并且和利用@privated的修饰的不太一样。@privated在其他类中可以查看,而@implementation中定义的成员变量中在其他类中无法查看,也无法访问。在@implementation中定义的私有变量只能在本类中访问。私有

LC900730的博客 1391
上一篇: OC第一节总结
下一篇: OC循环导入问题
vaercly
博客等级 码龄12年 46粉丝 151原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值