iOS之02-第一个OC的类
OC是一门面向对象的语言,因此它也有类、对象、静态\动态方法、成员变量的概念。这讲就来创建第一个OC的类。
第一个类的源码:
/*
人
类名:Person
属性(成员变量\实例变量):体重、年龄
行为(方法):走路、吃
*/ #import <Foundation/Foundation.h> //1.类的声明
@interface Person : NSObject
{
@public
int age;
double weight;
} - (void) walk;
- (void) eat;
@end // 2.类的实现
@implementation Person
// 实现interface中声明的方法
- (void) walk {
NSLog(@"%d岁、%.2lf公斤的人走一段路", age, weight);
} - (void) eat {
NSLog(@"%d岁、%.2lf公斤的人在吃东西", age, weight);
}
@end int main() {
// 在使用类创建对象之前,会将类加载进内存
Person *p = [Person new];
p->age = ;
p->weight = 77.0; [p eat];
[p walk];
return ;
}
1.类的声明(代码11-20行):声明对象的属性和行为
10 //1.类的声明
11 @interface Person : NSObject
12 {
13 @public
14 int age;
15 double weight;
16 }
17
18 - (void) walk;
19 - (void) eat;
20 @end
代码第11行 : NSObject 目的是:让Car这个类具备创建对象的能力
代码第12-16行 用来声明对象属性(实例变量/成员变量,默认会初始化为0)
声明对象属性必须在 {...} 之间
@public让后面所有变量都可以被外部的指针间接访问对象内部的成员变量
成员变量的常用作用域有3种:
1> @public 全局都可以访问
2> @protected 只能在类内部和子类中访问
3> @private 只能在类内部访问
代码18、19行 是方法的声明
方法(行为):方法名、参数、返回值(声明、实现)
只要是OC对象的方法,必须以减号 - 开头
OC方法中任何数据类型都必须用小括号 (...) 括住
OC方法中的小括号():括住数据类型
2、类的实现(代码23-32行):用来实现@interface中声明的方法
22 // 2.类的实现
23 @implementation Person
24 // 实现interface中声明的方法
25 - (void) walk {
26 NSLog(@"%d岁、%.2lf公斤的人走一段路", age, weight);
27 }
28
29 - (void) eat {
30 NSLog(@"%d岁、%.2lf公斤的人在吃东西", age, weight);
31 }
32 @end
方法的声明请参考 视频iOS之04方法的声明和实现
3、主函数(代码34-43行)
34 int main() {
35 // 在使用类创建对象之前,会将类加载进内存
36 Person *p = [Person new];
37 p->age = 20;
38 p->weight = 77.0;
39
40 [p eat];
41 [p walk];
42 return 0;
43 }
在OC中想执行一些行为,就写上一个中括号[行为执行者 行为名称]
代码36行 利用类来创建对象
执行了Car这个类的new行为来创建新对象
定义了一个指针变量p,p将来指向的是Car类型对象
[Car new]每次都会创建出一个新对象,并且会返回新对象本身(新对象的地址)
代码37、38行 给p所指向对象的属性赋值
代码37、38行 给p所指向对象发送一条run信息
每个对象中都有一个isa的指针,这个指针就指向对象所对应的类
4、OC对象方法和函数的区别
方法
1> 对象方法都是以减号'-'开头
2> 对象方法的声明必须写在@interface和@end之间
对象方法的实现必须写在@implementation和@end
3> 对象方法只能由对象调用
4> 对象方法归对象所有
函数
1> 函数能写在文件中的任意位置(除了在对象声明部分(@interface和@end之间)),函数归文件所有
2> 函数调用不依赖于对象
3> 函数内部不能直接通过成员变量访问某个对象的成员变量
iOS之02-第一个OC的类的更多相关文章
- 第一个OC的类
来源:http://www.cnblogs.com/mjios/archive/2013/04/06/3002814.html 本文目录 一.语法简介 二.用Xcode创建第一个OC的类 三.第一个类 ...
- 【Objective-C】0-第一个OC的类
OC是一门面向对象的语言,因此它也有类.对象.静态\动态方法.成员变量的概念.这讲就来创建第一个OC的类. 一.语法简介 1.类 在Java中,我们用1个.java文件就可以描述清楚一个类:在OC中, ...
- 【Objective-C】05-第一个OC的类
OC是一门面向对象的语言,因此它也有类.对象.静态\动态方法.成员变量的概念.这讲就来创建第一个OC的类. 一.语法简介 1.类 在Java中,我们用1个.java文件就可以描述清楚一个类:在OC中, ...
- 02第一个OC程序
一.打开XCode4.6.3,新建项目 二.选择Application下的命名行项目 三.输入项目名称,选择Foundation框架创建项目,点击Next 四.二话不说.点击Run.启动我们创建的项目 ...
- IOS开发——01_第一个OC程序
本文目录 一.新建Xcode项目 二.运行项目 注:建议先学习C语言, 如果你还没有编程经验,看不懂的地方可以在评论区提出,本文使用的为Xcode6.1版本,与之前版本会有所差异,但总体不变. 另:还 ...
- 05_传智播客iOS视频教程_第一个OC程序
Cocoa Application开发的是带界面的程序. OC是完全兼容C语言的,但是C语言里面是不能写OC的东西的. OC和C的第一个区别,就是源文件的后缀名的区别.OC程序的源文件的后缀名是.m, ...
- 第一个OC类、解析第一个OC程序
01第一个OC 类 本文目录 • 一.语法简介 • 二.用Xcode创建第一个OC的类 • 三.第一个类的代码解析 • 四.添加成员变量 • 五.添加方法 • 六.跟Java的比较 • 七.创建对象 ...
- ios开发之OC基础-类和对象
本系列的文章主要来自于个人在学习前锋教育-欧阳坚老师的iOS开发教程之OC语言教学视频所做的笔记,边看视频,边记录课程知识点.建议大家先过一遍视频,在看视频的过程中记录知识点关键字,把把握重点,然后再 ...
- 李洪强iOS开发之OC语言类的深入和分类
OC语言类的深入和分类 一.分类 (一)分类的基本知识 概念:Category 分类是OC特有的语言,依赖于类. 分类的作用:在不改变原来的类内容的基础上,为类增加一些方法. 添加一个分类: 文件 ...
随机推荐
- python基础——定制类
python基础——定制类 看到类似__slots__这种形如__xxx__的变量或者函数名就要注意,这些在Python中是有特殊用途的. __slots__我们已经知道怎么用了,__len__()方 ...
- android SDK 更新问题完美解决 http://dl-ssl.google.com refused
现在由于GWF,google基本和咱们说咱见了,就给现在在做Android 或者想学习Android 的朋友带来了诸多的不便,最简单的就是Android SDK Manager 你无法更新了. 现在 ...
- iOS - property,strong,weak,retain,assign,copy,nomatic 的区别及使用
1:ARC环境下,strong代替retain.weak代替assign,xcode 4.2(ios sdk4.3和以下版本)和之前的版本使用的是retain和assign,是不支持ARC的.xcod ...
- 四、优化及调试--网站优化--Yahoo军规下
21.根据域名划分页面内容 很显然, 是最大限度地实现平行下载 22.尽量减少iframe的个数 考虑即使内容为空,加载也需要时间,会阻止页面加载,没有语意,注意iframe相对于其他DOM元素高出1 ...
- service(启动方式)
- Python 实现发送、抄送邮件功能
发送邮件 问题 在web.py中,如何发送邮件? 解法 在web.py中使用web.sendmail()发送邮件. web.sendmail('cookbook@webpy.org', 'user@e ...
- iOS - 线程管理
iOS开发多线程篇—GCD的常见用法 一.延迟执行 1.介绍 iOS常见的延时执行有2种方式 (1)调用NSObject的方法 [self performSelector:@selector(run) ...
- history 清空历史记录 或 history不记录历史命令
# vi ~/.bash_history 清空里面的记录,并退出当前shell # exit(一定要退出当前shell) # history 1 vi ~/.bash_history 2 histor ...
- JAVA中this用法小结
Java关键字this只能用于方法方法体内.当一个对象创建后,Java虚拟机(JVM)就会给这个对象分配一个引用自身的指针,这个指针的名字就是 this.因此,this只能在类中的非静态方法中使用,静 ...
- NBU官方Doc網址https://www.veritas.com/support/en_US/article.DOC5332
NBU(NetBackup) 7.0之後的版本官方文檔鏈接地址: https://www.veritas.com/support/en_US/article.DOC5332