OC基础语法(1)—类和对象OC基础语法…

来源:互联网 发布:tensorflow api 编辑:程序博客网 时间:2024/06/16 16:39

01-第一个OC程序






//  main.m

#include

 

 

#import

 

#import"One.h"

#import"Two.h"

 

 

 

//OCC语言一样程序一启动都会执行main函数

intmain(int argc, const char * argv[])

{

    

    printf("helloworld\n");

    NSLog(@"ocHello world");

    NSLog(@"222222");

   

//    调用OC源文件中的函数

    test();

//    调用C源文件中的函数

    test2();

    return0;

}

//  One.h

void test();

//  One.m

#import

 

void test()

{

    printf("aaabbbccc\n");

}

//  Two.h

#ifndef_1____OC___Two_h

#define_1____OC___Two_h

 

void test2();

 

#endif

//  Two.c

#include

 

 

void test2()

{

    printf("test2.. ");

}


软件编程实质

       软件编程就是将我们的思维转变成计算机能够识别语言的一个过程

OC基础语法(1)—类和对象OC基础语法(1)—类和对象

 

理解面向对象

       面向对象是相对面向过程而言

       面向对象和面向过程都是一种思想

       面向过程

      强调的是功能行为

      关注的是解决问题需要哪些步骤

       面向对象

      将功能封装进对象,强调具备了功能的对象

      关注的是解决问题需要哪些对象

       面向对象是基于面向过程的。

 


面向对象和面向过程区别

       把衣服放进洗衣机

       打开洗衣机

       放进去衣服

       关闭洗衣机

       洗衣机-打开

       洗衣机-存储

       洗衣机-关闭

 

现实生活中我们是如何应用面相对象思想的

       想打电话\发短信

       去饭店吃饭

       汽车坏了

       买电脑

       包工头

       女朋友

       面试

 

面向对象的特点

       是一种符合人们思考习惯的思想

       可以将复杂的事情简单化

       将程序员从执行者转换成了指挥者

       完成需求时:

      先要去找具有所需的功能的对象来用。

      如果该对象不存在,那么创建一个具有所需功能的对象。

      这样简化开发并提高复用。

补充:面向对象的核心就是对象,那怎么创建对象? OC中创建对象比较复杂首先要理解一个概念叫做类.

现实生活中是根据一份描述,一份模板创建对象,编程语言也一样,也必须先有一份描述,

在这个描述中说清楚将来创建出来的对象有哪些属性和行为

 

类与对象的关系

       使用计算机语言就是不断的在描述现实生活中的事物。

       OC中描述事物通过类的形式体现,类是具体事物的抽象,概念上的定义。

       对象即是该类事物实实在在存在的个体

补充:现实生活的例子:如何创造汽车对象?

需要先有汽车的建造图纸,图纸上描述清楚汽车应该具备的属性和功能

然后再根据图纸上的描述生成汽车

每一辆汽车都是对象,都有自己具体的属性值,都是图纸的实例

图纸是抽象的,房子是具体的。图纸是对房子对象的高度概括

 

类与对象(图例)

OC基础语法(1)—类和对象OC基础语法(1)—类和对象

补充:

OC中的类相当于图纸,用来描述一类事物。也就是说,要想创建对象,必须先有类

OC利用类来创建对象,对象是类的具体存在

因此,面向对象解决问题应该是先考虑需要设计哪些类,再利用类创建多少个对象

 


类的定义

       生活中描述事物无非就是描述事物的名称/属性和行为。

      如:人有身高,体重等属性,有说话,打架等行为。

       OC中用类来描述事物也是如此

      属性:对应类中的成员变量。

      行为:对应类中的成员方法。

       定义类其实在定义类中的成员(成员变量和成员方法)

       一般名词都是类(名词提炼法)

      坦克发射3颗炮弹轰掉了2架飞机

      小明在公车上牵着一条叼着热狗的狗

       拥有相同(或者类似)属性和行为的对象都可以抽像出一个类

补充:

类的设计,只关心3样东西:

事物名称(类名):人(Person

属性:身高(height)、年龄(age

行为(功能):跑(run)、打架(fight

        

找类-三个例子

愤怒的小鸟游戏界面

OC基础语法(1)—类和对象OC基础语法(1)—类和对象

植物大战僵尸

说明: http://img.pconline.com.cn/images/pconline/dlc/dlc_img/20096/11/1244686435517.jpg

超级马里奥

OC基础语法(1)—类和对象OC基础语法(1)—类和对象

找对象-美团

OC基础语法(1)—类和对象OC基础语法(1)—类和对象

类名、属性、行为练习

       僵尸、

       炮弹、

       车、

       学生、

       书本

 

02-第一个OC

// 如何声明类、实现类、定义对象、用对象访问成员及具体细节

// 类中方法的声明和实现

#import

 

 

 

//如何定义一个OC

//完整的定义一个函数分为两部分:函数的声明,函数的实现(函数定义)

//完整的定义一个类分为两部分:类的声明,类的实现

 

typedefenum

{

//    K+ 枚举名称 含义

    kIColorBlack,// 黑色

    KIColorWhite// 白色

}IColor;

 

//1.类的声明

//@interface @end之间写类的声明,@end是用来告知什么时候声明结束

//声明类的属性,行为

//:NSObject为了让类具备创建对象的能力

@interfaceIphone :NSObject

{

//    public是为了让外面的指针能够访问对象中的成员变量

    @public//公开成员变量

//    所有的属性必须写在这个括号当中

//    成员变量有默认的初始化值

    int_cpu;// 手机cup

    float_size;// 尺寸

    IColor_color;// 颜色

}

 

//OC方法的定义

//voidfunction();

//方法名/参数/返回值类型

 

-(void)aboutMyPhone;

 

//收到短信

//char*receiptMessage();

- (char*)recepitMessage;

 

//voidsendSignal(char *number);

//当方法有参数的时候必须在参数类型前面加上一个冒号

//冒号也是方法名的一部分  sendSignal:

//-号不是方法名的一部分

 

//-(void)sendSignal;

-(void)sendSignal:(char *)number;

 

 

// 苹果提倡我们把方法名写的像句子一样

-(void)sendMessageWithNumber:(char *)number andMessageContent:(char*)content;

 

@end//初学者注意一定要有end

 

//2.类的实现

//主要用来实现声明当中的方法,说清楚方法当中要干什么

@implementation Iphone

 

-(void)aboutMyPhone

{

    NSLog(@"查看手机信息");

}

 

- (char*)recepitMessage

{

//    return"老婆今天我去做大宝剑\n";

    return"wife is god\n";

}

 

-(void)sendSignal:(char *)number

{

    NSLog(@"拨打电话给 %s\n", number);

}

 

-(void)sendMessageWithNumber:(char *)number andMessageContent:(char*)content

{

    NSLog(@"发短信给 %s ,内容是 %s", number, content);

}

@end

 

intmain(int argc, const char * argv[])

{

 

//    OC当中如果想执行一些行为,就立刻写上[类名/对象 方法名称 [方法调用者 方法名称]

//    >用类名调用的是类方法

//    >用对象调用的是对象方法

    

//    指针类型 *指针变量名称

//    定义了一个指针变量p指向了Iphone类型的对象

//    保存了对象指针地址的变量,我们就可以把它叫做某个对象

    Iphone*p;//p 是局部变量

      =[Iphone new];// new操作它会在堆内存中分配存储空间

   

//    要给对象中的成员变量赋值和结构体一样

//    OC中想要操作一个对象的属性或者行为(方法),必须通过指针类操作

    p->_cpu= 2;

    p->_size= 3.7;

    p->_color= kIColorBlack;

   

//    取出p指向对象中的属性

//    intnumber = p->_cpu;

//    printf("number= %d\n", number);

    

//    NSLog(@"cpu= %d, size = %.1f, color = %d", p->_cpu, p->_size,p->_color);

   

   

//    new一次都会重新开辟一块存储空间

//    互不干扰,一份类可以创建无数个对象

     Iphone*p2;

     p2= [Iphone new];

   

    p2->_cpu= 4;

    p2->_size= 4;

    p2->_color= KIColorWhite;

   

//    利用对象调用对象方法

//    调用方法再OC当中称之为"发送消息"

//    [p2  aboutMyPhone];

   

//    char*message = [p2 recepitMessage];

//    NSLog(@"%s",message);

//   

//    NSLog(@"123");

   

//    [p2sendSignal:"12306"];

   

//    [p2sendMessage:"10010" :"xxoo"];

   

//    [p2sendMessage:

0 0
原创粉丝点击