黑马程序员:OC基本语法


----------- android培训java培训、java学习型技术博客、期待与您交流! ------------


OC基本语法

 

#import的两个用途

1.    跟#include一样,拷贝文件的内容

2.    可以自动防止文件的内容被拷贝多次

 

主头文件:最主要的头文件,每个主头文件的名称和其框架名称是一样的

只要包含Fundation 框架的主头文件,就可以使用整个框架的东西

 

#运行过程

1>  编写OC源文件:.m .c

2>  编译: cc –c   XXX.m XXX.c

3>  链接: cc  xxx.o xxx.o –framework Foundation

(只有用到了Foundation框架才需要加上–framework Foundation)

 

4>  运行: ./a.out

 

#常用术语

1>  面向对象Procedure Oriented

2>  面向对象 ObjectOriented

3>  面对对象编程 ObjectOriented Programing

 

 

//因为使用了NSObject

#import <Foundation/Foundation.h>

#完整描述一个函数需要有两个步骤:函数的声明和定义(实现)

#完整描述一个类需要有两个步骤:类的声明和实现

1>  类的声明:用来声明对象的属性、行为(方法)

// : NSObject 目的是:让Car 这个类具有创建对象的能力

@interface Car : NSObject

{ //用来声明对象属性(成员变量:成员变量分配内存时会做初始化,默认情况下值为0)

//@public可以让外部的指针间接访问对象内部的成员变量

        @public

        int wheels; //轮胎个数

        int speed;  //时速

}

 

// 方法(行为):方法名、参数 、返回值(声明、实现)

//只要是OC对象的方法,必须以减号- 开头

//OC方法中任何数据类型都必须用小括号()括住

//OC方法中的小括号就一个作用:括住数据类型

-(void)run;

@end(告诉编译器类的声明到此为止)

2>  类的实现

@implementation Car
//方法的实现(说清楚方法里面有声明代码)
 
-(void)run
{
    NSLog(@”车子跑起来了”);
}
@end
 
int main()
{
  //在OC中,想执行一些行为,就写上一个中括号[行为执行者行为名称]
  //利用类来创建对象
  //执行了Car这个类的new行为来创建对象
 //定义了一个指针变量p,p将来指向的是Car类型的对象
 //[Car new]会创建出一个新对象,并且会返回新对象本身(新对象的地址)
Car *p = [Car new ];
 
Car *p2 = [Car new];
 
//给p所指向对象的wheels属性赋值
p->wheels = 4;
 
p->speed = 240;
 
p2->wheels = 5;
 
p2->speed = 300;
 
//给p所指向对象发送一条run消息
[p run]
  
return 0;
}

 

/*

类型:person

属性(行为变量\实例变量):weight 、age

行为(方法):walk 、

*/

//1.类的声明

        *成员变量

        *方法的声明

#import <Foundation/Foundation.h>
@interface  (person)类名 :NSObject
{
    @public
    int  age;
    double  weight;
}
 
方法声明;
- (void) walk;
 
@end
 
//2.类的实现
@implementation (person)类名
 
//实现@interfac中声明的方法
-(void)walk
{
    NSLog(@”走一段路”)
 
}
@end
//在使用类创建对象之前,会将类加载进内存,每一个对象内部有一个isa指针指向分装在类里面的方法
int main()
{
    Person *p = [Person new];
       
    p->weight =50.0;
    p->age =20;
       
    [p walk];
       
    return 0;


 

 

                    

 

#OC方法和函数的区别

*方法

1.对象方法都是以减号-开始

2.对象方法的声明必须写在@interface和@end之间;对象方法的实现必须写在@implementation和@end之间

3.对象方法只能由对象来调用

4.对象方法归类\对象所有

*函数

1.函数能够写在文件的任意位置(@interface和@end之间除外),函数归文件所有

2.函数调用不依赖于对象


----------- android培训java培训、java学习型技术博客、期待与您交流! ------------

详情请查看:http://edu.csdn.net/heima

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值