@private、@protected与@public三者之间的区别

简介:

@private、@protected与@public三者之间的区别

 

类之间关系图

 

@private只能够使用在声明的类当中,其子类也不能够使用用@private声明的实例变量

 

@protected只能在声明的类当中使用,但其子类具有使用@protected声明变量的资格

 

@public可以全局使用,属性是具有全局属性的

 

实例变量其实是支持KVO的,如果你帮实例变量写了setter,getter方法

 

相关源码


#import <UIKit/UIKit.h>

@interface TitleView : UIView {

@private
    int        _count;    // 只能在当前类中使用
    
@protected
    NSString  *_title;    // 当前类与子类可以使用
    
@public
    NSString  *_subTitle; // 任何地方都可以使用
}

@property (nonatomic, strong) NSString  *info;

@end


#import "TitleView.h"

@implementation TitleView

- (instancetype)initWithFrame:(CGRect)frame {
    
    self = [super initWithFrame:frame];
    if (self) {
        
        _count = 4;
        
        _title = @"Title";
        
        _subTitle = @"SubTitle";
    }
    
    return self;
}

@end


#import "TitleView.h"

// MoreTitleView 继承自 TitleView
@interface MoreTitleView : TitleView

@end


#import "MoreTitleView.h"

@implementation MoreTitleView

- (instancetype)initWithFrame:(CGRect)frame {
    
    self = [super initWithFrame:frame];
    if (self) {
        
    }
    
    return self;
}

@end

即时没有写setter,getter方法,也是可以使用KVO的哦,只需要自己手动触发即可


目录
相关文章
|
17天前
|
Java 数据安全/隐私保护
java中public、private、protected作用范围
该内容是关于Java中访问修饰符的范围总结:`public`(全局访问)、`protected`(同包及子类访问)、默认(同包访问)、`private`(仅本类访问)。
30 6
|
5月前
|
存储 Cloud Native Linux
C++ 关键字override,final的作用
C++ 关键字override,final的作用
|
8月前
|
Java
Java 权限修饰符(private、protected、public、默认、final、static)
Java 权限修饰符(private、protected、public、默认、final、static)
111 0
|
12月前
|
JavaScript 小程序 Java
Controller中的请求方法,private和public有什么区别?
Controller中的请求方法,private和public有什么区别?
|
存储 Java 程序员
深入理解Java中的三个修饰符(抽象(abstract)、静态(static)和最终的,不可变(final))【配视频】
🍅程序员小王的博客:程序员小王的博客 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 如有编辑错误联系作者,如果有比较好的文章欢迎分享给我,我会取其精华去其糟粕 🍅java自学的学习路线:java自学的学习路线
271 0
深入理解Java中的三个修饰符(抽象(abstract)、静态(static)和最终的,不可变(final))【配视频】
|
编译器
public final static搭配的好处
final 和 static 往往搭配使用,效率更高,不会导致类加载.底层编译器做了优化处理
147 0
public final static搭配的好处
|
PHP 开发者
最终类 final|学习笔记
快速学习最终类 final,前面说的 PHP 是可以继承的,类是可以继承的,类有我可以继承子类,再往后类又可以继承孙子类,类可以无无限继承,现在确定一个问题,类继承的多了,代表类的重用性增加了,但是系统的解析复杂程度会增加,随之而来的是效率的降低。 那如果有些类已经达到最小的程度,无法再扩展时,或者不需要继续扩展了,这个时候就要使用最终类 final。现在了解一些什么是最终类,掌握 final 关键字的最终作用和实际应用场景。
128 0
最终类 final|学习笔记
|
Web App开发 自然语言处理 C++
学习C++,学习类,那override和final你用过没?
学习C++,学习类,那override和final你用过没?
84 0
学习C++,学习类,那override和final你用过没?
|
安全 Java 数据安全/隐私保护
面试官:private 可以通过反射访问,那么 private 的意义是什么?
Java,在一个类中,为了不让外界访问到某些属性和方法,通常将其设置为private,用正常的方式(对象名.属性名,对象名.方法名)将无法访问此属性与方法,但有没有其他方法可以访问呢?
160 0