黑马程序员——Object-C基础(四)方法
来源:互联网 发布:网络招生推广方案 编辑:程序博客网 时间:2024/06/05 15:03
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一、 对象方法
1. 不带参数的方法
1> 设计一个返回PI的方法
// 方法声明
- (double)pi;
//方法实现
- (double)pi
{
return 3.14;
}
2> 方法调用
2. 带一个参数的方法
1> 设计一个计算平方的方法
// 方法声明
- (double)square:(double)number;
//方法实现
- (double)square:(double)number
{
return number * number;
}
2> 方法调用
3. 带多个参数的方法
1> 设计一个计算和的方法
// 方法声明
- (double)sumOfNum1:(double)num1andNum2:(double)num2;
//方法实现
- (double)sumOfNum1:(double)num1andNum2:(double)num2
{
return num1 + num2;
}
2> 方法调用
4. 方法名注意
冒号也是方法名的一部分
同一个类中不允许两个对象方法同名
5. 习题
给Car类设计一个方法,用来和其他车比较车速,如果本车速度快,就返回1,如果本车速度慢,就返回-1,速度相同就返回0
/*设计一个方法,用来和其他车比较车速,返回车速的差距 */#import <Foundation/Foundation.h>@interface Car : NSObject{ @public int speed;}- (int)compareSpeedWithOther:(Car *)other;@end@implementation Car- (int)compareSpeedWithOther:(Car *)other{ // speed // other->speed // 返回当前这辆车和other这辆车的速度差距 return speed - other->speed;}@endint main(){ Car *c1 = [Car new]; c1->speed = 300; Car *c2 = [Car new]; c2->speed = 250; int a = [c1 compareSpeedWithOther:c2]; NSLog(@"a=%d", a); return 0;}
二、 类方法
1. 基本概念
直接可以用类名来执行的方法(类本身会在内存中占据存储空间,里面有类\对象方法列表)
2. 类方法和对象方法对比
1) 对象方法
- 以减号-开头
- 只能让对象调用,没有对象,这个方法根本不可能被执行
- 对象方法能访问实例变量(成员变量)
2) 类方法
- 以加号+开头
- 只能用类名调用,对象不能调用
- 类方法中不能访问实例变量(成员变量)
- 使用场合:当不需要访问成员变量的时候,尽量用类方法
3) 类方法和对象方法可以同名
三、 self关键字
1. 成员变量和局部变量同名
- 当成员变量和局部变量同名时,采取就近原则,访问的是局部变量
- 用self访问成员变量,区分同名的局部变量
2. 使用细节
1) 出现的地方:所有的OC方法中(对象方法\类方法),不能出现在函数
2) 作用
- 使用 "self->成员变量名"访问当前方法调用的成员变量
- 使用 "[self 方法名];"来调用方法(对象方法\类方法)
3. 常见错误
- 低级错误:用self去调用函数
- 类方法中用self调用对象方法,对象方法中用self调用类方法
- self死循环
4. 示例
- 狗在跑之前叫两声
- 计算器类,计算平均值的调用求和方法
0 0
- 黑马程序员——Object-C基础(四)方法
- 黑马程序员——Object-C基础(一)语言简介
- 黑马程序员——Object-C基础(九)内存管理
- 黑马程序员——Object-C基础(十)
- 黑马程序员——IOS学习笔记(Object-c基础)
- 黑马程序员——Object-C基础(八)Object-C常见特性
- 黑马程序员——C语言基础(四)函数
- 黑马程序员—Object c 基础知识
- 黑马程序员-Object-C之构造方法
- 黑马程序员--Object-C 类方法小结
- 黑马程序员--Object-C构造方法
- 黑马程序员—Objective-C基础_构造方法
- 黑马程序员——Object C基础——类的声明、创建
- 黑马程序员——Object-C的基础学习——语言特性
- 黑马程序员——零基础学习iOS开发——12 Object-C block、protocol
- 黑马程序员——Object-C基础(二)什么是面向对象?
- 黑马程序员——Object-C基础(三)定义一个类
- 黑马程序员——Object-C基础(五)面向对象的特性:封装
- 螅袆芅莂袈肂膁莁薇袄肇蒁
- 芆莅螈腿莂薄薇肂莈蚃衿肄
- Ubuntu14.04安装Hadoop2.5.2(单机模式)
- 莀莆蒄罿膃节蒃肂羆薁蒂螁
- 关于View的学习点 和onInterceptTouchEvent()与onTouchEvent()的机制:
- 黑马程序员——Object-C基础(四)方法
- 蚈羁罿薅螇袀芅膈薃蚀芇芄
- 螄羂莇薁螀羁蕿袇聿羀艿虿
- 薃袄肇莈螅袆膃蒇蚄衿芈芄
- 艿莁蒅肇芈蒄螁羃芇薆薄衿
- JavaScript 操作JSON总结
- 薁螄羆聿蒄螀螂芁蒆袆袁膁
- 蒀蚄膆莆薂衿肂莅蚄蚂羈蒄
- 蚀羁莇葿螅肀芇袄袁艿蕿螇