oc基础语言
来源:互联网 发布:js全栈开发 编辑:程序博客网 时间:2024/05/11 14:23
基 础 语 法
Objective-c是c语言的母集合,就是面向对象的。
1、面向对象和面向过程
面向对象和面向过程是编程的两种思考方式。
面向对象,简称OOP,是完成一项工作需要那些步骤。
面向过程,简称OPP,是完成工作的每一步是怎么完成的,注重过程。
2、类和对象
(1)类是一组具有相同(特征)属性和行为(功能)事物的集合。
对象就是类的具体实现。世间万物皆对象。
(2)类的定义
在OC中,类的定义分两部分:声明部分和实现部分;
声明部分(@interface):声明了类与父类的名字、方法是实例变量。声明文件以.h为后缀。.h用来声明类的变量和函数。
声明类时,成员变量要声明在大括号中,方法声明在大括号外。
如果是对象方法要写-开头。
类方法要写+开头。
所有在.h文件当中声明的方法都是公共方法,凡是类型,都要写括号。在方法名后,一个参数要一个括号,
实现部分(@implementation):包含了方法的实现,真正意义上定义了类的行为。实现文件以.m为后缀。.m文件负责实现。
实现类时,首先要导入.h的声明
OC中最根本的类叫NSObject,OC是单继承的。声明类以@interface开头,以@end结尾,实现类用@implementation开头,以@end结尾。
注意:一个声明对应一个类。
3、对象的创建和使用
1>对象的创建
内存分配:为对象动态的分配内存地址。
初始化:在内存中初始化成员变量的值。
对象的创建需要调用类的类方法alloc分配内存,调用类方法要写[ ],里面是类名和方法名,返回值需要用指针来接收,也就是说OC中的对象都要写个*。
比如:调用了Student的一个类方法alloc分配内存,并返回了一个指针来接收,其实alloc方法返回的是id类型,万能指针类型:
这与我们后面将要学习的,是构造类型的前身。Student *stu = [Student alloc] init]; 先分配内存空间,然后初始化。就是把new方法 拆分出来。
2>对象的使用其实就是赋值。
赋值必须实例变量的修饰符是@public。实例变量的修饰符还有@protected和@private,系统默认实例变量的类型是@protected,对于这两种类型的实例变量,我们需要调用方法为其赋值或者取值。
4、#import<Foundation/Foundation.h>
预处理指令import的两个作用:一是和include一样,完完全全的拷贝文件的内容;
二是可以自动检验头文件有没有被包含过,防止文件内容的重复拷贝(即使文件被多次包含,也只拷贝一份)。
NSLOG是日志输出,OC字符串以@开头,自动换行,int类型的占位符是@i。
OC中几乎所有关键字以@开头有特殊的。@autoreleasepool与内存管理有关。
5、set方法 和 get方法
1>set方法:给外界提供一个能修改内部成员变量属性的方法。可写不可读。
写法:是对象方法 - (void)set成员变量名(首字母大写):(参数类型)变量名;变量名与成员变量名不同。
是类方法:前面用+ 后面一样。
2>get方法:返回值成员变量的属性值。可读不可写。
写法:对象方法 - (类型与成员变量类型相同)原成员变量名;
返回值带下划线的成员变量名。
类方法 + 开头 后面一样。
oc中的小语法:一个参数对应一个冒号,冒号写在参数的前面。冒号也是方法名的一部分。
冒号的作用:分隔方法调用时参数的值,把后面的值传递给前面方法的形参。
- oc基础语言
- OC语言基础 - 01
- OC语言基础
- OC语言--基础语法
- OC语言基础--属性
- OC语言基础
- OC语言--OC语言基础、类
- 黑马程序员-OC语言基础:OC特有语法
- OC语言基础内容 类的定义 第一个OC
- 黑马程序员-OC语言基础学习(一)
- 黑马程序员-OC语言基础学习(二)
- 黑马程序员-OC语言基础学习(三)
- 黑马程序员-OC语言基础学习(四)
- 黑马程序员-OC语言基础学习(五)
- 关于OC语言基础的总结
- 黑马程序员-OC语言基础
- 黑马程序员IOS-OC语言-简介、基础
- OC基础语言学习1:初探
- 1186 -- 方程的解数
- 虚拟键盘整理
- An error occurred while performing 'git pull' on repo 'master'
- IIS7.5上的REST服务的Put操作发生HTTP Error 405.0 - Method Not Allowed 解决方法
- 当return遇到finally
- oc基础语言
- 初学Lua第三篇
- 多线程服务器的常用编程模型——陈硕
- 拷优(CopyU!)mini正式推出供免费使用!
- "java.lang.OutOfMemoryError: PermGen space" with a twist
- iOS学习之UINavigationController详解与使用(一)添加UIBarButtonItem
- layout_weight 小白的理解之我的地盘听我的!(二)
- Qt窗口最小化到托盘,托盘菜单控制
- 获取屏幕属性的工具类