Objective-C( 语法一)

点语法

点语法的本质是方法调用

成员变量的作用域

@public : 在任何地方都能直接访问对象的成员变量

@private : 只能在当前类的对象方法中直接访问(@implementation中默认是@private)

      子类如果想访问通过setter  getter方法访问

@protected : 可以在当前类及其子类的对象方法中直接访问

       (@interface中默认是@protected)

@package : 只要处在同一个框架中,就能直接访问对象的成员变量

      一般用不到,直接用系统自带框架

@interface和@implementation中不能声明同名的成员变量

在@implementation中也能写成员变量,不用声明,可直接写set get方法

@implementation  Class : NSObject

{

int _a;// 默认是私有

}

- (void)setA:(int)a

  _a = a;

-(int)a

{

  return  _a;

}

@end

@property 可以自动生成某个成员变量的setter和getter的声明

@interface  Class : NSObject

{

int  _a;

double  _b;

}

@property int a;

@property double b;

@end

@synthesize:自动生成a的setter和getter的实现并且访问_a这个成员变量

会访问_a这个成员变量,如果这个成员变量不存在,就自动生成@private类型的_a变量

@implementation Class

@synthesize  a = _a;

@synthesize  b = _b;

@end

Xcode 4.4版本后,@property就独揽了@synthesize功能,就是说@property可以同时声成setter和getter的声明和实现

默认情况下 setter 和getter方法的实现,会访问下划线_开头的成员变量

id类型

id:万能指针,能指向/操作任何OC对象  id ==NSObject *

注意id后面不要加*

 

构造方法:用来初始化对象的方法,是个对象方法

重写构造方法目的:让创建出来的对象里的成员变量有一些固定的值

重写init方法:

// 1.一定要调用super的init方法:初始化父类中声明的一些成员变量和其他属性

例  - (id)init

{

    self = [super init]; // 当前对象 self

// 2.如果对象初始化成功,才有必要进行接下来的初始化

    if (self != nil)

    {

      _age = 10;

    }

    return self;

}

在@implementaion  类名

- (id)init

{

  if (self = [super init])

  {

    _age = 10;

  }

  return self

}

@end中重写

自定义构造方法:

规范:

1.一定是对象方法,一定以 _ 开头

2.返回值id类型

3.方法名以initWith开头

1.声明在@interface  中 @end上面

例 @interface Person :NSObject

@property NSString *_name;

- (id)initWithName:(NSString *)name;

@end

2.实现在@implementation 中 @end 上面

例 @implementation Person

- (id)initWithName:(NSString *)name

{

  if (self = [super init])

  {

    _name = name;

  }

    return self;

}

@end

main.m文件中:

int main()

{

  Person *p = [[Person alloc] initWithName:@"rose"]

  return 0;

}

时间: 2024-10-04 14:30:20

Objective-C( 语法一)的相关文章

初学Objective - C语法之代码块(block)

一.block声明 1.无参数,无返回值: void (^sayHi)(); 2.有参数,有返回值: NSInteger (^operateOfValue)(NSInteger num); block的声明:返回值类型(^block变量名)(参数列表) 脱字符(^)是块的语法标记 二.block实现 block变量名 = ^返回值类型(参数列表) 1.  sayHi = ^{ NSLog(@"你好"); }; 2. operateOfValue = ^ NSInteger (NSInt

《黑马程序员》 NSArray和NSMutableArray的使用(Objective - c语法)

------- <a href="http://www.itheima.com" target="blank">Windows Phone 7手机开发</a>.<a href="http://www.itheima.com" target="blank">.Net培训</a>.期待与您交流! ------- 1 NSArray 的使用方法 • Foundation中数组(NSAr

iOS开发——语法篇OC篇&amp;高级语法精讲二

Objective高级语法精讲二 Objective-C是基于C语言加入了面向对象特性和消息转发机制的动态语言,这意味着它不仅需要一个编译器,还需要Runtime系统来动态创建类和对象,进行消息发送和转发.下面通过分析Apple开源的Runtime代码(我使用的版本是objc4-646.tar)来深入理解Objective-C的Runtime机制. Runtime数据结构 在Objective-C中,使用[receiver message]语法并不会马上执行receiver对象的message方

iOS 版本更新摘要(三)iOS 8.x

[What's New in iOS 8.x](https://developer.apple.com/library/ios/releasenotes/General/WhatsNewIniOS/Articles/iOS8.html#//apple_ref/doc/uid/TP40014205-SW1 "What's New in iOS 8.x") ####iOS 8.0 #App Extensions iOS 8.0 提供了 app 扩展点,让你可以在系统的选择区域扩展选择区域.

Pentaho BI server 中 CCC table Component 的使用小技巧

我使用的版本 Pentaho BI Server 5.3.0.0.213 CDE/CDF/CDA/CCC 15.04.16 stable Q: 如何设置表格中各种提示文字的语言(默认为英语)? CDE -> table Component -> Advanced Properties -> oLanguage,编辑该属性,语法需满足 JavaScript Objective 的语法,可以设置的参数如下: { "sProcessing": "Processin

iOS开发核心语言Objective C —— 面向对象思维、setter和getter方法及点语法

本分享是面向有意向从事iOS开发的伙伴们.或者已经从事了iOS的开发人员.假设您对iOS开发有极高的兴趣,能够与我一起探讨iOS开发.一起学习,共同进步.假设您是零基础,建议您先翻阅我之前分享的iOS开发分分钟搞定C语言系列.然后在開始Objective C语言的学习,假设您遇到问题也能够与我探讨,另外将无偿分享自己整理的大概400G iOS学习视频及学习资料.都是干货哦.能够新浪微博私信?关注极客James.期待与您的共同学习和探讨.! 由于时间有限,每天在工作之余整理的学习分享.难免有不足之

Objective - C中属性和点语法的使用

一.属性 属性是Objective—C 2.0定义的语法,为实例变量提供了setter.getter方法的默认实现能在一定程度上简化程序代码,并且增强实例变量的访问安全性 OC中的属性机制提供了便捷的设置和获取实例变量的方式,或者说属性提供了一个默认的设置器和访问器的实现:属性提供的方法是现实可配置的,属性的好处:相当于自己编写这一对方法,属性提供了一系列清晰分明的说明参数来定义设置器和访问器的行为,编译器可以根据你设置的说明参数为你生成相应的方法,减少你的代码量和维护工作量 设置器(sette

iOS开发——语法OC篇&amp;Objective-C新特性的总结

Objective-C新特性的总结 1.nonnull nonnull : 标示当前属性不为空,让外界放心用,只做标示用,即使为空,也木有办法    相当于swift里面的 ! 号 @property (nonnull, nonatomic, strong) NSString *name; 2.nullablenullable : 标示当前属性可能为空,让外界使用时注意    相当于swift里面的 ? 号 @property (nullable, nonatomic, strong) NSSt

Objective - C setter,getter与实例变量的关系, 属性, 点语法

什么时setter,getter, 在OC里, 为实例变量赋zhi的方法称作setter(设置器) 读取实例变量值的方法称作getter(访问器) 我们之前写的那些赋值取值的方法都可以称作setter和getter setter.getter的书写格式 OC里规定里setter和getter的书写格式 如果一个实例变量是 int age: 或者int_age: setter的书写格式如下 - (void)setAge:(int)age;即set+首字母大写的实例变量名(忽略下划线) getter

[好程序员训练营]Objective-C学习笔记---点语法

<A href="http://www.goodprogrammer.org/" target="blank">ios培训</A>------我的OC语言笔记,期待与您交流! 在java等面向对象的语言中,常常会用到obj.方法,或者用到obj.属性来调用对象的方法和属性.OC为了使使用其他语言的程序设计者更好学习OC,所以OC也引入了点语法,但是从根本上讲,OC的点语法和java等语言的点语法还是有一定区别的,下面我们就来看看怎么使用OC的