Java培训、Android培训、iOS培训、.Net培训、期待与您交流!

(以下内容是对黑马苹果入学视频的个人知识点总结)

(一)类

1)类的声明

代码编写

①定义一个Car类,拥有2个属性:轮子数、时速,1个行为:跑

②类名\属性的命名规则:标示符的规则

③类名的命名规范:有意义、驼峰标识、首字母大写

 @interface Car : NSObject
{
@public
int wheels; // 多少个轮子
int speed; // 时速
}
- (void)run; // 跑的行为
@end

@public可以让Car对象的wheels和speed属性被外界访问

NSObject的目的是让Car类具备创建对象的能力

常见的错误

①只有类的声明,没有类的实现

② 漏了@end

③ @interface和@implementation嵌套

④ 两个类的声明嵌套

⑤ 成员变量没有写在括号里面

⑥方法的声明写在了大括号里面

2)成员变量

①@interface的大括号{}中声明的变量:wheels、speed

②@interface的大括号和函数的大括号是不一样的

③默认会初始化为0

3)类的实现

 @implementation Car
- (void) run
{
NSLog(@"%i个轮子,%i时速的车子跑起来了", wheels, speed);
}
@end

(二)对象

1)创建多个Car对象

分别只设置wheels、speed属性

 Car *c1 = [Car new];

 c1->wheels = ;

 Car *c2 = [Car new];

 c2->speed = ;

 [c1 run];

2)更加接近人类的思考方式

只需要关注对象,不需要关注步骤

3)对象与函数参数

对象成员变量作为函数参数

指向对象的指针作为函数参数

修改指向指向对象的成员

修改指针的指向

(三)类的声明和实现注意事项

1>方法只有声明,没有实现(经典错误)

2>方法没有声明,只有实现(编译器警告,但是能调用,OC的弱语法)

3>编译的时候:访问没有的成员变量直接报错,访问没有的方法,只是警告

4>OC方法只能声明在@interface和@end之间,只能实现在@implementation和@end之间。也就是说OC方法不能独立于类存在

5>低级错误:方法有声明,但是实现的时候写成了函数

#import <Foundation/Foundation.h>

@interface JiSuanQi : NSObject

// 方法名:pi
- (double)pi; // OC方法中,一个参数对应一个冒号
// 方法名:pingFang:(冒号也是方法名的一部分)
- (int)pingFang:(int)num; //- (int)sum:(int)num1 :(int)num2;
// 方法名:sumWithNum1:andNum2:
- (int)sumWithNum1:(int)num1 andNum2:(int)num2; //- (int)sumWithNum1:(int)num1 andNum2:(int)num2 andNum3:(int)num3;
@end @implementation JiSuanQi - (double)pi
{
return 3.14;
} - (int)pingFang:(int)num
{
return num * num;
} //- (int)sum:(int)num1 :(int)num2
- (int)sumWithNum1:(int)num1 andNum2:(int)num2
{
return num1 + num2;
}
@end int main()
{
JiSuanQi *jsq = [JiSuanQi new]; int a = [jsq sumWithNum1: andNum2:];
//int a = [jsq sum:10 :5]; //int a = [jsq pingFang:10]; //double a = [jsq pi];
NSLog(@"%i", a); return ;
}

黑马程序员——OC语言 类和对象的更多相关文章

  1. 黑马程序员——OC语言基础语法 面向对象的思想

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结)(一)基础语法 1)关键字 @interface.@implementati ...

  2. 黑马程序员——OC语言 核心语法(1)

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)点语法 点语法其实本质上还是方法调用 当使用点语法时,编译器会自动展 ...

  3. 黑马程序员——OC语言 核心语法 (3)

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)分类Category 1) 基本用途 如何在不改变原来类模型的前提下 ...

  4. 黑马程序员——OC语言 三大特性之继承

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) 三大特性之继承 (一)继承的基本用法 先建立个Animal再用Dog继承前 ...

  5. 黑马程序员——OC语言 其他语法

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)ARC的判断准则:只要没有强指针指向对象,就会释放对象 1.ARC特 ...

  6. 黑马程序员——OC语言 内存管理

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)计数器 每个对象内部都保存了一个与之相关联的整数,称为引用计数器,当 ...

  7. 黑马程序员——OC语言 核心语法(2)

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)id 1)简介:万能指针,能指向任何OC对象,相当于NSObject ...

  8. 黑马程序员——OC语言 三大特性之多态

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) 三大特性之一的多态 (一)多态的基本概念 OC对象具有多态性体现在 Per ...

  9. 黑马程序员——OC语言Foundation框架 (2) NSArray NSSet NSDictionary\NSMutableDictionary

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)NSArray 1>NSArray :不可变数组 ①创建方法 ...

随机推荐

  1. 关于mysql中int(1)中int后面的数字

    mysql在建表的时候int类型后的长度代表什么? 是该列允许存储值的最大宽度吗? 为什么我设置成int(1), 也一样能存10,100,1000呢.  当时我虽然知道int(1),这个长度1并不代表 ...

  2. javadoc 生成文档注释

    我们可以通过 javadoc 命令从文档注释中提取内容,生成程序的 API 帮助文档. javadoc -d doc demo.java 文档注释:/******/ @author 标明开发该类模块的 ...

  3. 初试“七牛云”--零基础运用七牛云配合UEditor实现图片的上传和浏览(.NET篇)

    (注册和建立存储空间就不介绍了,网上一把一把的资料,自己试着点点也能明白) 作为一个成熟的菜鸟,如果遇到一个新问题,第一步当然是先百度一下... 看了N个关于七牛云的使用的帖子,表示还是蒙圈的,看懂了 ...

  4. RAM与ROM

    随着对计算机行业的深入了解,很多人开始听到一些RAM和ROM的讨论话题,之前我也不是很清楚,也不知道他和电脑的内存有什么联系.下面就让我们一起来学习一下这个吧. 首先RAM和ROM是什么 RAM和RO ...

  5. zigbee学习之路(十):串口(接收)

    一.前言 上次我们学习了串口的发送,今天我们要学习串口的接收,要实现的功能是接收电脑发来的数据,控制LED 灯闪烁,而且将收到的数据发回给电脑显示出来.而且要采用不占用cpu资源的中断. 二原理与分析 ...

  6. cf 700 B Connecting Universities

    题意:现在给以一棵$n$个结点的树,并给你$2k$个结点,现在要求你把这些节点互相配对,使得互相配对的节点之间的距离(路径上经过边的数目)之和最大.数据范围$1 \leq n \leq 200000, ...

  7. SQL SA密码丢失

    ------------记不清了,以下似乎是这样操作的-----NET STOP MSSQLSERVER Net Start MSSQLServer /m"SQLCMD" 安装并使 ...

  8. Jeff Dean

    "--出自"关于 Jeff Dean 的事实" 其实,"关于 Jeff Dean 的事实"这个G+ 帖中描述的并非是真实的.不过有人大费周折为他建立了 ...

  9. javascript 常用实用函数。。。。。。

    javascript 正则表达式 1.获取屏幕大小尺寸 /* 获取屏幕大小尺寸 */ var getScreen = function () { var screen = { width: 0, he ...

  10. Unity-Animator深入系列---API详解

    回到 Animator深入系列总目录 测试Unity版本为5.2.1 人形动画的接口都有标注 本列表不包含所有标注为过时的方法 1.Vector3 angularVelocity { get; } [ ...