[黑马程序员]12[OC语言]OC基本语法部分学习笔记总结

来源:互联网 发布:c语言经典第五版pdf 编辑:程序博客网 时间:2024/06/06 01:51

------- android培训、java培训、IOS培训、期待与您交流! ----------



OC基本语法介绍

 

1.    类与对象

 

OC中的类,什么是类,面向对象思想

 

//,类名:Person

//属性:(成员变量,实例变量):体重,年龄

//行为(方法):走路

 

//1.类的声明

#import <Foundation/Foundation.h>

 

@interface Person :NSObject

{

    //成员变量

@public

    int age;

    double weight;

}

//方法的声明

- (void)walk;

 

@end

 

 

//2.类的实现

 

@implementation Person

//方法的实现

- (void)walk

{

    NSLog(@"%d,%lf公斤的人走了一段路",age,weight);

}

 

@end

 

 

//主函数

int main()

{

    //   Person *p = [Person new];

    //   p->age = 20;

    //   p->weight =70.0;

    //

    //   [p walk];//给指针p指向的对象发一条walk消息

    //

    //   Person *p2 = [Person new];

    //   p2->age = 30;

    //   p2->weight = 80.0;

    //

    //   [p2 walk];

    Person *p =[Personnew];

    p->age =20;

   

    Person *p2=[Personnew];

    p->weight =50.0;

   

    [p walk];

   

   

    return0;

}


 

2.    类与函数

 

类与函数的关系与区别

 

//函数:

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

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

//3.函数内部不能直接通过成员变量名访问某个对象的成员变量

 

@interface Car :NSObject

{

    int wheels;

    int speed;

}

 

-(void)run;

@end

 

@implementation Car

-(void)run

{

    NSLog(@"");

}

@end

 

void test(int w,int s)

{

    w =20;

    s =200;

}

 

void test1(Car *newC)

{

    newC->wheels =5;

}

 

void test2(Car *newC)

{

    Car *c2 =[Carnew];

    c2->wheels =5;

    c2->speed =300;

   

    newC = c2;

    newC->wheels =6;]

}

 

int main()

{

    Car *c =[Carnew];

    c->wheels =4;

    c->speed =250;

   

    test(c->wheels, c->speed);

   

    test1(c);

   

    [c run];

   

    return0;

}

 

3. 类与方法

 

什么是方法,方法的声明与实现

 

//方法:

//1.对象方法都是以减号'-'

//2.对象方法的声明必须写在@interface@end之间

//  对象方法的实现必须写在@implementation@end之间

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

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

 

//计算器类

//方法:

//1>返回π

//2>计算两个整数的和

//3>计算两个整数的平方

 

@interface Calculate :NSObject

{

   

}

@end

 

@implementation Calculate

 

@end

 

//

 

#import <Foundation/Foundation.h>

 

 

@interface JiSuanQi :NSObject

 

-(double)fanHui;

 

-(int)pingFang:(int)num;

 

//-(int)sum:(int)num1:(int)num2;

-(int)sumWithNum1:(int)num1 andNum2:(int)num2;

 

@end

 

@implementation JiSuanqi

 

-(double)fanHui

{

    return3.14

}

 

-(int)pingFang:(int)num

{

    return num*num;

}

 

-(int)sumWithNum1:(int)num1 andNum2:(int)num2

{

    return num1 +num2;

}

 

@end

 

 

int main()

{

    JiSuanQi *jsq =[JiSuanQinew];

   

    double a =[jsqfanHui];

   

    NSLog(@"%f",a);

   

    int b =[jsqpingFang:10];

   

    int c =[jsqsumWithNum1:10andNum2:5];

   

    return0;

}

 

 

4.    对象类型的属性与方法

 

//学生:

//成员变量:性别,生日,体重,最喜欢的颜色,......

//方法;,,遛狗,喂狗.......

typedefenum {

    SexMan,

    SexWoman

} Sex;

 

typedefstruct {

    int year;

    int month;

    int day;

} Date;

 

typedefenum {

    ColorBlack,

    ColorRed,

    ColorGreen

} Color;

 

@interface Dog :NSObject

{

    Sex sex;

    double weight;

    Color CurColor;

}

-(void)eat;

-(void)run;

@end

 

@implementation Dog

-(void)eat

{

    weight +=1;

   

    NSLog(@"吃一次后体重为%d",weight);

}

-(void)run

{

    weight -=1;

   

    NSLog(@"跑一次后体重为%d",weight);

}

@end

 

@interface Student :NSObject

{

@public

    Sex sex;

    Date birthday;

    double weight;

    Color favColor;

    char *name;

   

    Dog *dog;

}

-(void)eat;

-(void)run;

-(void)print;

 

-(void)liuDog;

-(void)weiDog;

@end

 

@implementation Student

 

-(void)liuDog

{

    //让狗跑()调用狗的run方法

    [dogrun];

}

 

-(void)weiDog

{

    [dogeat];

}

 

-(void)eat

{

    weight +=1;

   

    NSLog(@"chiyicizhang%fjin",weight);

}

 

-(void)print

{

    NSLog(@"%d,%d,%s,%d-%d-%d",sex,weight,favColor,birthday.year,birthday.month,birthday.day);

}

 

-(void)run

{

    weight -=1;

   

    NSLog(@"paoyicijian%fjin",weight);

}

 

 

int main()

{

    Student *s =[Studentnew];

    s->weight =50;

   

    Dog *d = [Dognew];

    d->curColor =ColorGreen;

    d->weight =20;

    s->dog = d;

   

    [s liuDog];

   

    [s weiDog];

   

    return0;

}

 

 

匿名对象的声明

 

@interface Car :NSObject

{

@public

    int speed;

}

-(void)run;

@end

 

@implementation Car

 

-(void)run

{

    NSLog(@"");

}

@end

 

 

int main()

{

    //    Car *c;

    //    c =[Car new];

    //    s->speed=250;

   

    [Carnew]->speed =300;

   

    [[Carnew]run];

   

    return0;

}

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 幼儿大班关于环保的手抄报怎么办 捷达车打开丝位子风扇总转怎么办 小班个案分析:好动的孩子该怎么办 孩子突然过于的兴奋不睡觉是怎么办 刚出生的宝宝听力未通过怎么办 孩子多动症被老师打不上学怎么办 小孩在校被学生打家长该怎么办? 8岁儿童好动上课不注意听课怎么办 怀孕第一个月喝了啤酒怎么办 不知道自己怀孕喝了酒怎么办 怀孕一个月不知道喝酒了怎么办 老师说孩子上课不专心听讲怎么办 二年级孩子上课不认真听讲怎么办 二年级的孩子浮躁上课不认真怎么办 三年级的小孩上课不认真听讲怎么办 大班孩子上课不专心听讲玩怎么办 老师跟家长说小孩上课讲话怎么办 别的家长动手打自己的孩子怎么办? 一岁3个月宝宝骨龄偏小怎么办 宝宝9个月了越来越粘人怎么办? 孩子突然说话结巴口吃了怎么办啊 很久不说话了不敢说话了怎么办 宝宝2岁了还不会说话怎么办 2岁的宝宝还不会说话怎么办 小宝宝有四个月了母乳不够吃怎么办 一个月的宝宝吐奶厉害怎么办 新生儿吐奶吐一次吐的特别多怎么办 把孩子打了一次现在说话结巴怎么办 宝宝五岁了口吃越来越严重了怎么办 幼儿把自己的舌头扣破皮了怎么办 6岁宝贝烧到39度怎么办 2岁半的宝宝说话结巴怎么办 2周3宝宝不会说话胆小怎么办 宝宝我2岁多了说话有点结巴怎么办 两岁宝宝说话突然结巴了怎么办 两岁3宝宝叫她名字不理人怎么办 九个月的宝宝身高不达标怎么办 3岁宝宝又吐又拉怎么办 宝宝发烧39度怎么办手脚很烫 两岁宝宝吃什么吐什么怎么办 7岁宝宝吃多了吐怎么办