黑马程序员——OC类和对象

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


一、基本语法

 

1、第一个oc程序:

#import的用途:和#include一样,拷贝文件内容。可以自动防止文件内容被重复拷贝

#import(Foundation/ Foundation.h)
int main()
{
   // NSLog输出内容会自动换行
   NSLog(@"第二个oc程序!");
   return 0;
}

如果要链接两个.o文件,方法和c语言中一样。一个c一个oc也可以一起,例如:cc one.mtwo.c  

如果里面用到Foundation框架则:cc one.m two.c –framework Foundation


BOLL类型的使用:

<span style="font-size:18px;">#import<Foundation/Foundation.h>

BOOL test()
{
  return NO;
}
int main()
{
BOOL b = YES;
BOOL b2 = NO;
BOOL b3 = 1;  // 也就是YES
NSLog(@"%i", b);
NSLog(@"%d", test()); // 调用函数
return 0;
}</span><span style="font-size:24px;">
</span>


类和对象:

类:对所有对象共同属性的概括,相当于房子的图纸。      

对象:相当于房子

如何设计类:

1、类名(第一个手写字母必须大写,且不能有 _ 下划线)

2、属性

3、行为(功能)。


例如植物大战僵尸的僵尸类:

1、僵尸  类名:Zoobie

2、属性:(生命值)life, gongjili

3、行为:walk ,bite(咬),die

 

雷电中的飞机:

类名:Plane

属性:life,gongjili ,speed

行为:fly ,bomb(放炸弹),shoot

 

第一个oc的类

<span style="font-size:18px;">// 1、类的声明:声明对象的属性、行为

</span>
<span style="font-size:18px;">// 因为使用了NSObject
#import<Foundation/Foundation.h>
// : NSObject目的是:让Car这个类具备创建对象的能力

</span>
<span style="font-size:18px;">@interface Car : NSObject
{ // 声明对象属性(即成员变量/实例变量,默认为0)
     @public   // 可以让外部指针间接访问内部成员变量
     int wheels; // 轮胎个数
     int speed; // 时速
}

</span>
<span style="font-size:18px;">// 方法(行为):方法名、参数、返回值(声明和实现),和函数类似
// 这里只做简单声明
- (void) run;   //只要是oc对象的方法 必须以“减号”开头;
<span style="white-space:pre">		</span>// 任何数据类型都必须用小括号括住。作用:只是括住数据类型,run后没有传数据类型,所以不加括号
@end</span><span style="font-size:24px;">
</span>


<span style="font-size:18px;">// 2、类的实现

</span>
<span style="font-size:18px;">// 用来实现@interface 中声明的方法

</span>
<span style="font-size:18px;">@implementation Car <span style="white-space:pre">	</span> // 方法的实现:说清楚方法里面有什么代码
-(void) run
{
  NSLog(@"车子跑起来了");
}
@end

</span>
<span style="font-size:18px;">// 主函数

</span>
<span style="font-size:18px;">int main()
{
<span style="white-space:pre">	</span>// 利用类创建对象。在oc中想执行行为,就写一个中括号[ 行为执行者 行为名称];
<span style="white-space:pre">	</span>// 定义一个指针变量p,p将来指向的是Car类型的对象
<span style="white-space:pre">	</span>// [Car new];会创建一个新对象,并且会返回新对象本身(新对象的地址)
Car *p = [Car new]; <span style="white-space:pre">	</span>// 执行了Car这个类的new行为来创建新对象,固定写法(new)
   Car *p2 = [Car new];  // 又创建一个新对象
p->wheels = 4; <span style="white-space:pre">		</span>// oc中只能用指针间接赋值
  p->speed = 250;
 
  [p run ];<span style="white-space:pre">		</span>// 给p所指向对象发送一条run消息,这句有输出的(车子跑起来了)

  NSLog(@"车子的轮胎%d, 时速:%dkm/h", p->wheels, p->speed);
return 0;
}</span>


类与对象

第二个类:

/*

类名:Person

属性(成员变量/实例变量):体重、年龄

行为(方法):走路

*/

/*1、类的生命  

*成员变量

*方法的声明

*/

#import <Foundation/Foundation.h>
// 加上NSObject才能创建对象

@interface Person :NSObject 
{
@public      // 这样才能调用变量
<span style="white-space:pre">		</span>// 成员变量
int age:
double weight;
}

// 方法声明
- (void)walk;
@end

// 2、类的实现
@implementation 类名

//实现@interface中声明的方法

- (void) walk
{
NSLog(@"%d岁、%f斤的人走了一段路", age, weight);
}
@end

int main()
{
   // 在使用创建对象之前会将类加载进内存,类内只有对方法的声明
Person *p = [Person new ];
   p->age = 20;
   p->weight = 50.0;
   // 调用方法
[p walk];
Person *p2 = [Person new ];
   p2->age = 30;
   p2->weight = 60.0;
[p2 walk];

return 0;    // 运行 输出20岁、50.000000斤的人走了一段路
            //           30岁、60.000000斤的人走了一段路
}












  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值