黑马程序员技术交流社区
标题:
obj-c有私有方法么?私有变量呢
[打印本页]
作者:
251143492
时间:
2014-12-4 23:57
标题:
obj-c有私有方法么?私有变量呢
objective-c -类里面的方法只有两种, 静态方法和实例方法. 这似乎就不是完整的面向对象了,按照OO的原则就是一个对象只暴露有用的东西. 如果没有了私有方法的话, 对于一些小范围的代码重用就不那么顺手了. 在类里面声名一个私有方法 @interface Controller : NSObject { NSString *something; } + (void)thisIsAStaticMethod; - (void)thisIsAnInstanceMethod; @end @interface Controller (private) - (void)thisIsAPrivateMethod; @end @private可以用来修饰私有变量 在Objective‐C中,所有实例变量默认都是私有的,所有实例方法默认都是公有的
作者:
从今以后
时间:
2014-12-5 01:03
实例变量默认应该是@protected吧,方法没有私有公有,只有静态动态。可以把方法写在.m里不对外声明实现“私有”。
作者:
zwcshy
时间:
2014-12-5 09:17
有私有方法和私有变量,不过这些变量都在.m文件中声明
作者:
枫煠
时间:
2014-12-6 18:28
本帖最后由 枫煠 于 2014-12-6 18:29 编辑
//
// Test1.h
// test
//
// Created by admin on 2014/12/6.
// Copyright (c) 2014年 itcast. All rights reserved.
//
#import <Foundation/Foundation.h>
//在@interface底下用{}包起来,都算私有变量,@interface不论是放在.h or .m都一样
@interface Test1 : NSObject{
NSString* test; //私
}
@property(assign, nonatomic) int b; //公
@end
复制代码
</blockquote></div><div class="blockcode"><blockquote>//
// Test1.m
// test
//
// Created by admin on 2014/12/6.
// Copyright (c) 2014年 itcast. All rights reserved.
//
#import "Test1.h"
//在.m的@interface里面,不管宣告什么东西都是私有
@interface Test1(){
int c; //私
}
@property(assign, nonatomic) int a; //私
@end
@implementation Test1
@end
复制代码
不知道这样解释算不算清楚:o
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2