OC

交互层:cocoa touch

操作系统层:ios

底层:硬件

#include 完成头文件的导入,可能会导致头文件的相互引用和函数的重复定义。

#import   不仅完成头文件的导入,并且防止头文件的相互引用。

@在OC中一般表示一个对象@“hello”

也通常用于OC的一些关键字@end 

%@表示输出一个对象类型

NSString *name = @"yql";

NSLog (@"%@",name);

NSArray *array = @[@"yql",@"2"];

NSLog(@"%@",array);

 

*

在C语言中表示指针变量或者是取某个地址里面的值

在OC中只需要明白在定义一个OC的对象类型前面添加一个*就可以了

int  age = 20;

NSString *name = @"yql";

NSLog(@"my name is %@ age is %d",name,age);

 

类和对象

1.类与对象的概念

类是现实世界活思维世界中的实体在计算机中的反映、它将数据以及这些数据上的操作封装在一起。

对象是具有类类型的变量。类和对象是面向对象编程技术中的最基本的概念。

2.类与对象的关系

类是对象的抽象,而对象是类的具体实例

类是抽象的不占用内存,而对象是具体的,占用存储空间的

类是用于创建对象的蓝图,它是一个定义包括在特定类型的对象中的方法和变量的软件模板

3.类的声明与实现

新建一个类

  new file  ->cocoa class  (父类NSObject)

  .h文件 用来定义属性和方法

  .m文件 用来具体实现

//成员变量的声明

@interface (表示类的开始)Person(这个类的别名) :NSObject(这个类的父类){

//成员变量的声明(注意不能初始化!)-----------方法是暴露给外部访问的 

NSString * name;

int age;

}

//方法的声明

@end

//类的实现部分

@implementation Person 

@end

-:实例方法instance method

必须实例化这个类的一个对象 用这个对象调用的方法

+:类方法 class method

无需实例化一个对象,这个类本身就可以调用的方法

写得好的方法名,就是一个完整的句子

-(void)(返回值类型)setName(方法名):(NSString *)(第一个参数类型)aName(参数别名) adnAge(标签:说明这个参数的作用):(int)aAge(第二个参数);

@interface Person :NSObject {

//成员变量的声明 注意不能初始化---成员变量默认为私有的,只在本身这个类中可以使用

NSString * name;

int age;

}

-(void)setName:(NSString *)aName;//只有一个参数的方法

-(void)setName:(NSString *)aName andAge:(int )aAge;//多个参数

@end

@implementation Person

-(void)setName:(NSString *)aName{

_name = aName;

}

-(void)setName:(NSString *)aName andAge:(int)aAge{

_name = aName;

_age =aAge;

}

@end

//类的实例化

Person *jack = [[Person alloc] init];

//

Person *jack = [[Person alloc] init];

[jack setName:@"Jack"andAge:25];

 

 

头文件(.h文件)

 @interface Person : NSObject{

//data 成员变量

NSString *name;

int age;

NSString *address;

}

//方法的声明 行为动作 提供给外部访问的

//声明一个没有参数的方法,这个方法没有返回值

 

-(void)useTools;

//声明一个拥有一个参数的方法,参数类型是一个字符串对象

-(void)setName:(NSString *)aName;

//声明拥有两个参数的方法

-(void)setName:(NSString *)aName age:(int)aAge;

+(void)doSomeThing;

@end

2.  方法的实现 

#import '' Person.h''

@implementation Person

-(void)useTools{

NSLog(@"人类可以使用工具");

}

-(void)setName:(NSString *)aName age:(int)aAge{

 name = aName;

age = aAge;

}

+(void)doSomeTing{

NSLog(@"这个方法是类方法");

}

@end

.m文件实现

#import <Foundation/Foundation.h>

#import "Person.h"

 

int main(int argc, const char * argv[]) {

    @autoreleasepool {

        //定义小王

        //1. 为这个对象分配一片内存空间

        Person *xiaoWang = [Person alloc];

        

        //2. 初始化这个片内存空间

        xiaoWang = [xiaoWang init];

        

        //实例化一个对象

        Person *zs = [[Person alloc] init];

        

        //调用对象里面的方法

        [zs setName:@"zhangsan" age:23];

        [zs useTools];

        

        //访问类方法

        [Person doSomeThing];

    }

    return 0;

}

 

posted @ 2015-12-17 19:38  蜗牛才是大牛  阅读(238)  评论(0编辑  收藏  举报