黑马程序员——OC知识点总结(一)
来源:互联网 发布:网站建设搜索优化 编辑:程序博客网 时间:2024/06/09 13:08
黑马程序员——OC基础---基础语法(一)
------- android培训、ios培训、期待与您交流! ----------
内容概括:
1、点语法的使用。
2、成员变量的作用域。
3、@property和@synthesize的使用。
4、简化语法,和万能指针。
5、构造方法。
一、点语法
实质:点语法的本质就是方法调用。
例:创建一个person类,这个类有age属性,用它声明一个变量p,可用如下表示方法。
#import <Foundation/Foundation.h>@interface Person :NSObject@property int age;@end@implementation Person@endint mani(){ P.age = 18; // 等价于[ p setAge:18 ]; int a = p.age; // 等价于 int a = [p age]; }
注意:在set方法或get方法中使用同样含义的点语法,将导致死循环。
点语法只可调用set方法和get方法,其余不可调用。
二、成员变量的作用域
1、private 只能在当前类的实现@implementation中直接访问。
2、@protect 可以在当前类及子类的实现@implementation中直接访问。
3、@public 在任何地方都可以直接访问。
4、@package 同一个“体系”内可以直接访问,介于@private和@protect之间。
三、@property和@synthesize 的使用。
@property int age;
1、语句自动生成getter和setter的声明。
2、句中的age不是成员变量名,而是方法名。
@synthesize age = _age;
1、语句自动生成getter和setter的实现。
2、隐含的set实现语句_age = age,隐含的get实现语句 return _age。
3、语句中的_age是成员变量名。
示例:
#import <Foundation/Foundation.h>@interface Person : NSObject{ int _no; @public // 在任何地方都能直接访问对象的成员变量 int _age; @private // 只能在当前类的对象方法中直接访问 int _height; @protected // 能在当前类和子类的对象方法中直接访问 int _weight; int _money;}
注意:
1、声明在@interface中的成员变量默认作用域是@protect。
2、声明在@implementation中的成员变量默认作用于是@private。
3、在@interface中和@implementation中不可声明同名变量。
4、上述代码所说直接访问是指 p->age的方式直接访问。
四、简化写法,和万能指针
#import < foundation/foundation.h >@interface Dog : NSObject@property int age;@end;
上述代码完成了三件事。
1、声明了一个名为_age的成员变量。
2、对_age的get方法和set方法做了声明。
3、对_age的get方法和set方法做了实现。
弊端:这种写法成员变量的作用于默认为private。
注意:Xcode特性
1、@synthesize age;语句没有声明访问的变量时,默认为访问与该名称一致的变量,如果这个变量不存在,就自动生成这个变量。
2、Xcode特性
@implementation
@end
1.没有set方法和get方法会自动生成该方法,并返回下划线开头的成员变量。
2.手动写了方法,或设置了变量,采用手动写的,否则自动生成。
万能指针;id:能指向\操作任何OC对象,相当于(NSObject *)。
总结:可用于指向所有类型的对象,应用于返回不同类型对象的函数。
- 黑马程序员——OC知识点总结(一)
- 黑马程序员--集合知识点总结(一)
- 黑马程序员————OC基础学习重要小知识点总结
- 黑马程序员————OC的构造方法与分类知识点总结
- 黑马程序员——Objective-C语言知识点总结之OC特有语法
- 黑马程序员——JAVA 面向对象知识点总结(一)
- 黑马程序员——java基础----集合框架知识点总结(一)
- 黑马程序员——OC总结
- 黑马程序员—OC语言小知识点及示例
- 黑马程序员—OC—面向对象(一)
- 黑马程序员——OC语言(一)--基本语法
- 黑马程序员——OC内存管理(一)
- 黑马程序员-OC-Foundation框架总结一
- 黑马程序员——Java面向对象知识点(一)
- 黑马程序员--I/O流知识点总结(一)
- 黑马程序员--面向对象知识点总结(一)
- 黑马程序员 知识点总结-Java IO(一)
- 黑马程序员——OC语言(三)--易错知识点(包含@private @protected @public)
- POJO与JavaBean
- iOS开发UI篇—xib的简单使用
- Coursera Algorithm, Part2 Week1: Undirected Graph & Directed Graph
- UVA - 10986 Sending email (Dijkstra邻接表+优先队列优化)
- 手动破解的 Linux下的Maltab 2014b
- 黑马程序员——OC知识点总结(一)
- Mac下 wine 打开程序中文乱码,亲测可用,故转载。
- 分布式缓存GemFire架构介绍
- 装了php(php-fpm)和nginx却无法显示php页面
- 黑马程序员——面向对象思想、设计类与创建对象、对象与函数、方法与函数、合理设计类
- c之排序问题---冒泡排序
- 偏爱MySQL,Nifty使用4个Web Server支撑5400万个用户网站
- 叠片过滤器:全自动叠片盘式过滤器介绍
- ASp.NET 自定义session