A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 251143492 中级黑马   /  2014-12-4 23:57  /  769 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

objective-c -类里面的方法只有两种, 静态方法和实例方法. 这似乎就不是完整的面向对象了,按照OO的原则就是一个对象只暴露有用的东西. 如果没有了私有方法的话, 对于一些小范围的代码重用就不那么顺手了. 在类里面声名一个私有方法  @interface Controller : NSObject { NSString *something; } + (void)thisIsAStaticMethod; - (void)thisIsAnInstanceMethod; @end  @interface Controller (private) - (void)thisIsAPrivateMethod; @end  @private可以用来修饰私有变量  在Objective‐C中,所有实例变量默认都是私有的,所有实例方法默认都是公有的

3 个回复

倒序浏览
实例变量默认应该是@protected吧,方法没有私有公有,只有静态动态。可以把方法写在.m里不对外声明实现“私有”。
回复 使用道具 举报
有私有方法和私有变量,不过这些变量都在.m文件中声明
回复 使用道具 举报
本帖最后由 枫煠 于 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
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马