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

------- 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;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值