OC-私有方法和私有变量

以前没有太注意这个私有方法和私有变量,后来吃了很多亏,

今小总结一下:

1> 私有方法

概念:就是没有在.h文件中声明,只在.m文件实现的方法。

使用:私有方法只能在本类中使用,不能在子类和分类中使用。

2>私有变量

概念1:就是在.m文件中定义的变量

概念2:就是通过@property自动生成的私有成员变量;

使用:私有变量也是只能在本类中使用,分类和子类都不能使用。

3>声明为私有的变量

概念:声明为私有的变量,就是在.h文件中,定义的成员变量之前修饰符为@private.

使用:

@interface Person:NSObject

  {

    @private

    int _age;

  }

  @end

声明为私有的变量使用中要注意的就是:

-->子类:子类只能继承,但是不能访问

-->分类:可以使用!还有注意的是:1)不能添加成员变量,2)开发中,不要去重写原类的方法,那样就失去了分类的意思了。3)分类>原类>父类

时间: 2024-08-03 16:21:09

OC-私有方法和私有变量的相关文章

Objective-C的面向对象中,类有真正的私有方法和私有属性么?

在Java/C#等面向对象语言中,方法的访问权限可以通过public/private/protected来控制其访问权限.而在OC中,方法却并没有访问修饰符.那么,我们有没有办法使其方法变为私有? 1. 如果一个方法不在头文件中声明,那么这个方法在编译期,通过[receiver MethodName]的形式向对象发送消息,编译器会有警告,告诉你未找到该方法,但是实际运行时,依然可以正常运行 原因:编译时,即使这个方法不在头文件中声明,编译器仍然会将方法的签名编译进类的方法列表中, 发送消息时,会

如何调用封装的私有方法或私有对象

一般情况下,一个对象的私有方法或私有属性,是无法调用的,但在开发过程中,突然发现我们要钻牛角了,你不准调,但我一定要调 例前段时间,在项目中客户提出了能对报表的列进行顺序调整,并且同一台机子上不同的账号登录修改后的保存能独立,这个好解决应用微软的CacheManager能很好的解决,牛角来了....如果我要在项目中删除所有关于某个报表的记忆缓存咋办,可是只有一个公共的Remove(String Key)方法:问题是Key我用的是用户账号,我不想循环系统所有的账号去删除..... 在调试过程我发现

python 之简单聊聊私有方法和私有字段

# -*- coding: utf-8 -*- """ Created on Sun Nov 13 23:19:03 2016 @author: toby """ #知识点:私有方法和私有字段 ''' 应用场景: 不想被外部访问的东西,或者说不想暴露给外部的时候 那么就可以定义私有方法或私有字段 ''' class Province:     memo = 'One of China\'s 23 provinces' #静态字段         

coffeescript 继承、私有方法、私有属性、公共方法、公共属性、静态方法、静态属性实现

class Parent constructor: -> _privateAttr = 'privateAttr' _privateFun = ()-> console.log "Parent::privateFun log #{_privateAttr}" publicAttr: 'publicAttr' publicFun: ()-> _privateFun() console.log "Parent::publicFun log #{@publicAt

Python中私有方法和私有属性

1.私有方法和私有属性私有方法只能在类内部被调用,不能被对象使用私有属性只能在类内部使用,不能被对象使用 私有属性只能在类内部使用,对象不能使用,但是,我们可以通过在类内部定义公有方法对私有属性进行调用或修改,然后对象在调用这个公有方法使用.###私有属性和私有方法#########在属性名和方法名前面加上 __ class Person(object): def __init__(self): # 公有属性 self.name = "李四" #私有属性 self.__age = 18

python私有方法和私有属性属性理解

私有属性.方法--Python并没有真正的私有化支持,但可用下划线得到伪私有尽量避免定义以下划线开头的变量   (1)_xxx      "单下划线 " 开始的成员变量叫做保护变量,意思是只有类对象(即类实例)和子类对象自己能访问到这些变量,需通过类提供的接口进行访问:不能用'from module import *'导入   (2)__xxx    类中的私有变量/方法名 (Python的函数也是对象,所以成员方法称为成员变量也行得通.)," 双下划线 " 开始的

iOS动态性 运行时runtime初探(强制获取并修改私有变量,强制增加及修改私有方法等)

借助前辈的力量综合一下资料. OC是运行时语言,只有在程序运行时,才会去确定对象的类型,并调用类与对象相应的方法.利用runtime机制让我们可以在程序运行时动态修改类.对象中的所有属性.方法,就算是私有方法以及私有属性都是可以动态修改的.本文旨在对runtime的部分特性小试牛刀,更多更全的方法可以参考系统API文件<objc/runtime.h>,demo例子可以参见CSDN的runtime高级编程系列文章. 我们出发吧! 先看一个非常平常的Father类: #import <Fou

Object-C 中私有变量和私有方法

1.在OC中有私有变量和私有方法,声明变量的时候 使用 @private 关键字 仍然可以使用指向运算符来 查看,如下: @interface Clip : NSObject { @private int _cbullet; int _times; } 在main.m 中仍可以使用p->_cbullet; 来查看,但是无法访问. 在OC中 @interface和@implementation 都可以定义实例变量. #import "Clip.h" @implementation

私有属性,私有方法,类变量,实例变量,单下划线,双下划线

1.私有属性__age,不能通过实例对象直接调用,而是通过一个方法来调用 class Dog: def __init__(self, new_age): self.__age = new_age def get_age(self): return self.__age wang_cai = Dog(1) result = wang_cai.get_age() print(result) 2.私有方法,通过一个共有方法来调用 class Dog(object):   def __init__(se