黑马程序员_iso入门基础学习_OC语言day1

来源:互联网 发布:李明 沈超 linux 视频 编辑:程序博客网 时间:2024/05/29 17:24
#import <Foundation/Foundation.h>//1.类的声明:例如Car类//声明对象的属性和行为@interface Car :NSObject//继承NSObject 使Car类实现具有创建对象的能力{//成员变量默认初始化为0    @public      //@public 后面的成员变量可以被外部指针间接的访问int wheels;  //轮子个数int speed;   //时速}//方法的声明只能写在interface代码块中,并且写在声明成员变量的大括号外面// 方法(行为):方法名、参数、返回值(声明、实现)// 只要是OC对象的方法,必须以减号 - 开头// OC方法中任何数据类型都必须用小括号()扩住// OC方法中的小括号():括住数据类型- (void) run;@end//2.类的实现  只用来实现方法@implementation Car- (void) run{    //方法的具体实现    NSLog(@"车子跑起来啦");}@endint main(){    // 在OC中,想执行一些行为,就写上一个中括号[行为执行者 行为名称]    // 利用类来创建对象    // 执行了Car这个类的new行为来创建新对象    Car *p;   //定义一个Car类型的指针变量p,只能够指向Car类型的对象    p=[Car new];//创建一个Car类的对象,并且返回对象本身地址给了p指针。    //以上也可以合并成一句Car *p=[Car new];    p->wheels=5;   //需要在定义成员变量的前面加上@public才能够访问。    p->speed=120;    [p run];      //向指针变量p所指向的Car的对象发一条run的指令或者说消息    NSLog(@"%p",p);    NSLog(@"这辆车有%d个轮子,时速是%dkm/h",p->wheels,p->speed);    return 0;}

objective-c相对于C语言:

1.源文件 后缀为m或者mm

完全兼容C语言的语法,也就是C语言可以直接写在m或者mm的文件中编译。

2.目标文件,编译后的目标文件都是.o文件

3.链接后产生的可执行文件默认都是a.out

4.屏幕输出语句:

C语言:printf   需要#include <stdio.h>

OC语言:NSLog  需要#import <Foundation/Foundation.h>

Foundation是一个框架,所以如果OC代码中有包含了这个框架,则编译的时候加上-framework Foundation。

NSLog接收OC字符串,格式@"字符串"。NSLog在输出完毕后会自动换行,而printf不会。

其中#import相当于C语言当中的#include,但是#import可以防止文件内容被多次拷贝。

5.OC相对于C多了一个BOOL类型

BOOL两种取值:

YES NO  都是大写 ,也可以当整数,YES 为1 ,NO 为0

BOOL的本质是signed char:typedef signed char BOOL

/* 设计人类 类名:Person 属性:体重 年龄 行为: 走路 *//* 1.类的声明 { 声明成员变量 } 声明方法 */#import <Foundation/Foundation.h>@interface Person : NSObject{    @public    int age;    double weight;}- (void)run;@end/* 2.类的实现,方法的实现 */@implementation Person- (void)run{    NSLog(@"%d岁的人走路",age);}@end/* 3.创建对象 */int main(){    Person *p=[Person new];    p->age=20;    p->weight=70;    [p run];    return 0;}/* 对象中的成员变量是每个对象独占一份的。 方法是多个对象共有的。 每个对象默认都有一个指向该对象所属类的指针isa。 当程序法一条消息给某个对象,让它执行某个功能的时候,这个对象会根据isa指针指向的类中去 查找是否有这个方法,并且执行。 */




0 0
原创粉丝点击