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