精华内容
下载资源
问答
  • 1、 接口的修饰符只有:public ...3、属性的控制修饰符也分为:可访问控制符和非访问控制符两类。 可访问控制符有 4 种:公共访问控制符: public ;私有访问控制符: private ;保护访问控制符: pr...

    1、 接口的修饰符只有:public

    2、 类的修饰符分为:可访问控制符和非访问控制符两种。 可访问控制符是:公共类修饰符 public 非访问控制符有:抽象类修饰符 abstract ;最终类修饰符 final

    3、属性的控制修饰符也分为:可访问控制符和非访问控制符两类。 可访问控制符有 4 种:公共访问控制符: public ;私有访问控制符: private ;保护访问控制符: protected ;私有保护访问控制符: private protected 非访问控制符有 4 种:静态域修饰符: static ;最终域修饰符: final ;易失 ( 共享 ) 域修饰符: volatile ;暂时性域修饰符: transient

    4、方法的控制修饰符也分为:可访问控制符和非访问控制符两类。 可访问控制符有 4 种:公共访问控制符: public ;私有访问控制符: private ;保护访问控制符: protected ;私有保护访问控制符: private protected 非访问控制符有 5 种:抽象方法控制符: abstract ;静态方法控制符: static ;最终方法控制符: final ;本地方法控制符: native ;同步方法控制符: synchronized

    展开全文
  • iOS基础之属性修饰符的区别

    千次阅读 2016-07-25 11:11:50
    声明变量的修饰符:__strong, ...声明属性修饰符:strong, weak, unsafe_unretained,readwrite或者readonly:指定属性是否可读写,默认是读写默认strong, readWrite的。 nonatomic和atomic:是否是原子性的
    推荐一篇文章:点击打开链接

    声明变量的修饰符:__strong, __weak, __unsafe_unretained, __autoreleasing
    声明属性的修饰符:strong, weak, unsafe_unretainedreadwrite或者readonly:指定属性是否可读写,默认是读写默认strong, readWrite的。
    nonatomic和atomic:是否是原子性的,默认是atomic的。

    • strong:strong和retain相似,只要有一个strong指针指向对象,该对象就不会被销毁
    • weak:声明为weak的指针,weak指针指向的对象一旦被释放,weak的指针都将被赋值为nil;
    • unsafe_unretained:用unsafe_unretained声明的指针,指针指向的对象一旦被释放,这些指针将成为野指针

    关于属性的这些选项的学习,做一下总结:

    • 所有的属性,都尽可能使用nonatomic,以提高效率,除非真的有必要考虑线程安全。
    • NSString:通常都使用copy,以得到新的内存分配,而不只是原来的引用。
    • strong:对于继承于NSObject类型的对象,若要声明为强使用,使用strong,若要使用弱引用,使用__weak来引用,用于解决循环强引用的问题。
    • weak:对于xib上的控件引用,可以使用weak,也可以使用strong。
    • __weak:对于变量的声明,如果要使用弱引用,可以使用weak,如:weak typeof(Model) weakModel = model;就可以直接使用weakModel了。
    • __strong:对于变量的声明,如果要使用强引用,可以使用strong,默认就是strong,因此不写与写__strong声明都是一样的。
    • unsafe_unretained:这个是比较少用的,几乎没有使用到。在所引用的对象被释放后,该指针就成了野指针,不好控制。
    • _unsafeunretained:也是很少使用。同上。
    • __autoreleasing:如果要在循环过程中就释放,可以手动使用__autoreleasing来声明将之放到自动释放池。

    assign、retain、copy的区别。

    1)assign就不用说了,因为基本上是为简单数据类型准备的,原子类类型,例如CGPoint、CGFloat等,而不是NS对象们;

    2)retain VS copy

    • copy: 建立一个索引计数为1的对象,然后释放旧对象
    • retain:释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1

    Copy其实是建立了一个相同的对象,而retain不是:

    比如一个NSString对象,地址为0×1111,内容为@”STR”

    Copy到另外一个NSString之后,地址为0×2222,内容相同,新的对象retain为1,旧有对象没有变化

    retain到另外一个NSString之后,地址相同(建立一个指针,指针拷贝),内容当然相同,这个对象的retain值+1

    也就是说,retain是指针拷贝,copy是内容拷贝。

     

    Objective-C中的copy和c++的一样分深拷贝和浅拷贝,怎样区分这两个对象呢?我的理解是:

       (1)深拷贝,就是新拷贝一块内存交给对象使用。

       (2)浅拷贝,就是觉得拷贝内存太浪费,直接给你我的地址吧,相当于retain。

     

    3)怎么区分这两种对象呢?

        在Objective-C里面只有一种情况是浅拷贝,那就是不可变对象的copy,其它的都是深拷贝(包括不可变对象mutableCopy、可变对象的的copy和mutableCopy)。iOS基础之NSXXX与NSMutableXXX的本质区别

    原文:点击打开链接

    原文:点击打开链接



    展开全文
  • python 属性修饰符 @property

    千次阅读 2017-03-02 14:12:13
    @property,指示getter方法 @name.setter,知识setter方法 class Duck():  def __init__(self,input_name):  self.hidden_name = input_name  def get_name(self): ... print('inside getter')

    @property,指示getter方法

    @name.setter,知识setter方法


    class Duck():
        def __init__(self,input_name):
            self.hidden_name = input_name


        def get_name(self):
            print('inside getter')
            return self.hidden_name


        def set_name(self,input_name):
            print('inside setter')
            self.hidden_name = input_name

    可以使用get_name或者set_name来显示的获取设置hidden_name,这样显示的调用get,set方法显然不利于隐藏内部信息

    代码修改如下:

    class Duck():
        def __init__(self,input_name):
            self.hidden_name = input_name


        @property
        def name(self):
            print('inside getter')
            return self.hidden_name
        @name.setter
        def name(self,input_name):
            print('inside setter')
            print input_name
            self.hidden_name = input_name

    调用方法:

    fowl = Duck('alpha')
    fowl.name="Donald"

    实际上,由于python中的所有的特性都是公开的,所以有人知道内部的变量名是hiden_name,仍然可以使用fowl.hidden_name来访问,这个可以用python中特有的命名方式来解决。

    但是@property,@name.setter还是从一定程度上隐藏了内部的细节



    展开全文
  • 下面是OC内存管理修饰符的总结,只是写出最常用的几个属性的内存管理修饰符,适用范围ARC。简单总结:基本数据类型用assign,对象用strong,代理和UI控件用weak,字符串用copy:1、assgin 适用于对基本数据类型(int,...

    内存管理一直是OC的重点内容,而属性的内存管理从我们开始编写第一句iOS代码就伴随着我们,其重要程度可见一斑。下面是OC内存管理修饰符的总结,只是写出最常用的几个属性的内存管理修饰符,适用范围ARC。

    简单总结:基本数据类型用assign,对象用strong,代理和UI控件用weak,字符串用copy:

    1、assgin 适用于对基本数据类型(int,float等)的简单赋值操作

    2、strong 这个属性特质表示一种拥有的关系,setter方法设置新值的时候会先保留属性的新值,然后释放旧值,最后将新值赋值给属性

    3、weak 表示一种非拥有的关系。setter方法设置新值的时候不会先保留属性的新值,也不会释放旧值,只是将新值赋值给属性,与assign不同的是该内存管理特性会在属性所指的对象销毁时,将属性置为nil,更加安全

    4、unsafe_unretained 与assign类型类似。适用于”对象”类型的赋值,表达的是一种非拥有(unretained)的关系,当属性所指的对象被销毁时,属性值不会自动被自动清空;

    5、copy 如字面意思,该特质的setter方法不会保留新值,而是将其拷贝,当属性类型为NSString时候,可以用这个特质来确保属性的值不会被其他对象修改。
    因为传递给setter方法的新值有可能是一个指向NSMutableString类型的实例,若是不拷贝字符串,那么该字符串有可能在对象不知情的情况下被其他对象修改,导致意外的结果。

    简述:
    修饰符写在@propert与类型之间的小括号里
    1、readonly只有get方法,没有set方法
    2、readwrite可读可写,默认\缺省修饰符
    3、atomic原子操作修饰符 线程安全 【多线程】默认修饰符
    4、nonatomic非原子操作修饰符,线程不安全,oc中属性多为线程不安全【线程锁】
    5、assign用于修饰基本数据(int,char)
    6、可以对set\get方法进行重命名(setter=method getter=method)

    
    @property (readonly) NSString * name;
    
    @property (readwrite) NSString * color;
    
    @property (atomic) NSString * number;
    
    @property (nonatomic) NSString * type;
    
    @property (assign) int price;
    
    //- (void)setFrom:(NSString*)from      -(NSString*)from;
    //一个属性可以添加多个修饰符,以逗号进行分割
    @property (setter=mySet:,getter=myGet) NSString * from;
    
    //内存管理相关修饰符:retain\copy\strong\weak...
    展开全文
  • 父子类可以是不同包 在不同包下面只有public 与 protected 可以访问,而且protected必须是在继承关系下才能够访问
  • java 类、属性、方法修饰符总结

    千次阅读 2018-11-12 22:43:06
    修饰符可以分为访问修饰符(访问控制符)和非访问修饰符(非访问控制符) 访问修饰符:顾名思义如果在访问范围内可以控制访问。 非访问修饰符:实现一些其他的功能。   一、类修饰符  访问修饰符:public、...
  • java接口中方法、属性修饰符详解

    万次阅读 多人点赞 2018-06-28 22:41:47
    java接口的修饰符:abstract(inteeface本身就是抽象的,加不加abstract都一样)。 接口中字段的修饰符:public static final(默认不写) 如下解释: public: 使接口的实现类可以使用这个常量 static:...
  • iOS属性修饰符

    2015-09-13 11:16:15
    当我们使用property来定义属性的时候,往往会为属性添加很多的修饰符,例如:nonatomic、assign、copy、strong、weak等等,本文将讨论这些属性修饰符的作用。 1、atomic 这个英文单词直译过来的话,是“原子的”的...
  • iOS 属性修饰符atomic的内部实现是怎么样的?能保证线程安全吗?1、内部实现在 objc4-723 的 Objective-C runtime 实现中,property 的 atomic 是采用 spinlock_t 也就是俗称的自旋锁实现的。// getter id objc_...
  • OC--属性修饰符

    2017-03-08 14:58:02
    关于OC中属性修饰符,基本上是开发者面试都会被问到或者笔试遇到的题目了。由此可见它的重要性。对于开发语言来说,越是基础的东西越是应该要搞得清楚明白。
  • 网上已经有非常多的关于类成员属性修饰符的描述,教材也常常当作重点来讲解,但是周围仍然有不少同学对此感到迷惑,其实这块知识点非常简单,但是现有的许多教程都将此复杂化,亦或是简单却没有清晰表达出其含义,在...
  • ios属性修饰符总结

    千次阅读 2015-12-08 15:03:29
    ios属性修饰符总结 很多刚接触iOS的朋友对属性的@property的可选参数如何使用,什么情况下使用哪种选项不了解,也问了我很多这方面的知识,虽然知道怎么用,但是有些说不出其区别。在这里,再次深入学习一遍,对copy...
  • 获取Field的属性修饰符 getModifiers返回的是int类型数据, 需要用Modifier类的toString方法转为对应的修饰符 获取Field的属性类型: getType返回的是Class类型 通过调用Class类型的getSimpleName方法来获取类型名 L...
  • iOS-Objective-C的属性修饰符

    千次阅读 2016-02-28 22:26:51
    在苹果引入了ARC之后,属性的也相对应的增加了一些修饰符。所以这里我们分别对MRC和ARC两种情况下的属性修饰符进行学习。其实主要的区别集中在对对象生命周期进行描述的属性修饰符会有所区别而已。
  • iOS开发之属性修饰符

    千次阅读 2017-07-25 17:06:19
    iOS开发之属性修饰符
  • iOS 属性修饰符的区别

    千次阅读 2016-07-17 17:00:57
    iOS5 之后,Apple 推出了ARC(自动引用计数)机制,推出了新的修饰符替代之前的修饰符 strong、weak简单说明 1:ARC环境下,strong代替retain.weak代替assign 2:weak的作用:在ARC环境下,,所有指向这个对象的w
  • @classmethod 修饰符对应的函数不需要实例化,不需要 self 参数,但第一个参数需要是表示自身类的 cls 参数,可以来调用类的属性,类的方法,实例化对象等。 ''' class Person(object): '人的基类' # 类文档...
  • @property属性修饰符

    2015-03-26 20:10:25
    1.@property属性修饰符 //@property属性修饰符:@property () //多个修饰符之间用逗号隔开 //1.readwrite:缺省修饰符。可读可写,既有setter方法,也有getter方法 //2.readonly:只读。只有getter方法,没有setter...
  • UPROPERTY属性修饰符

    千次阅读 2019-10-11 12:08:33
    基本功能:定义能够被UE垃圾回收机制自动回收的属性变量 ...UPROPERTY(EditAnywhere,Category="Damage"):把被修饰属性分类到信息面板中Damage那一栏(面板上显示名称为Damage) UPROPERTY(EditAnyw...
  • TypeScript类修饰符

    2020-04-09 10:03:02
    public 修饰属性或者方法是共有的,可以在任何地方被访问到,默认所有的属性或者方法都是public private 修饰属性或者方法是私有的,不能在声明他的类外面访问 protected 修饰属性或者方法是受保护的,他和...
  • 修饰符: public (访问控制符) ,将一个类声明为公共类,他可以被任何对象访问,一个程序的主类必须是公共类。 protected (保护访问控制符) 同一个包中的其他任何类以及任何子类 (无论子类是在哪个包中声明的) 中...
  • 给大家介绍了iOS 各种修饰符的区别汇总,需要的朋友参考下吧
  • java继承的修饰符

    2021-02-26 18:45:13
    Java继承规则中的访问控制方法的继承Java中子类继承父类方法时,有如下规则:父类或...属性的继承另外,对于子类继承父类属性(成员变量)需注意:从父类继承的成员变量,其访问控制仍然相同。子类定义与父类同名...
  • OC常用属性修饰符使用总结

    千次阅读 2015-07-16 20:33:15
    下面是OC内存管理修饰符的总结,只是写出最常用的几个属性的内存管理修饰符,适用范围ARC(如果你的代码中还有非ARC的成分,那你准备加班把它转成ARC吧,ARC用着非常舒服)。 简单总结:基本数据类型用assign,...
  • 对于单选按钮,勾选框及选择列表选项, v-model 绑定的 value 通常是静态字符串(对于勾选框是逻辑值): <!-- 当选中时,`picked` 为字符串 a --> <input type=radio v-model=picked value=a>...
  • 3、属性的控制修饰符也分为:可访问控制符和非访问控制符两类。 可访问控制符有 4 种:公共访问控制符: public ;私有访问控制符: private ;保护访问控制符: protected ;私有保护访问控制符: private ...
  • IOS中的属性修饰符

    千次阅读 2014-08-13 14:21:14
    strong与weak是由ARC新引入的对象变量属性 ARC引入了新的对象的新生命周期限定,即零弱引用。如果零弱引用指向的对象被deallocated的话,零弱引用的对象会被自动设置为nil。
  • Java中的类修饰符

    2021-02-13 00:34:00
    之前每次写小测试程序的时候,总是把一个类放在一个Java文件...Java语言程序设计中,定义类时除了要使用class 关键字说明所定义的数据类型是类,还可以在 class 之前增加若干类的修饰符来限定所定义类的操作特性,说...
  • ##枚举类型及修饰符总结 一、枚举类型 1、枚举类型相当于特殊的类,经过编译之后同样产生一个class文件。枚举类型中可以定义方法(包括构造方法)、属性、静态的方法和属性、继承接口、重载覆盖等,类似于class。 例...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 255,986
精华内容 102,394
关键字:

属性修饰符