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

#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(@"车子跑起来啦");
}
@end

int 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值