黑马程序员技术交流社区

标题: 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 编辑
  1. //
  2. //  Test1.h
  3. //  test
  4. //
  5. //  Created by admin on 2014/12/6.
  6. //  Copyright (c) 2014年 itcast. All rights reserved.
  7. //

  8. #import <Foundation/Foundation.h>

  9. //在@interface底下用{}包起来,都算私有变量,@interface不论是放在.h or .m都一样
  10. @interface Test1 : NSObject{
  11.     NSString* test; //私
  12. }

  13. @property(assign, nonatomic) int b; //公

  14. @end
复制代码

  1. </blockquote></div><div class="blockcode"><blockquote>//
  2. //  Test1.m
  3. //  test
  4. //
  5. //  Created by admin on 2014/12/6.
  6. //  Copyright (c) 2014年 itcast. All rights reserved.
  7. //
  8. #import "Test1.h"
  9. //在.m的@interface里面,不管宣告什么东西都是私有
  10. @interface Test1(){
  11.     int c; //私
  12. }
  13. @property(assign, nonatomic) int a; //私
  14. @end
  15. @implementation Test1
  16. @end
复制代码

不知道这样解释算不算清楚:o





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2