pragma mark 03-练习2
pragma mark 概念
pragma mark 代码
import <Foundation/Foundation.h>
pragma mark 类
pragma mark main函数
@interface Person : NSObject
{
@public
int age;
double height;
}
- (void)printf;
@end
void text1(int newAge, double newHeight);
void text2(Person *newP);
void text3(Person *newP);
void text4(Person *newP);
int main()
{
Person *p = [Person new];
p->age = 10;
p->height = 1.5f;
text1(p->age, p->height); // 10 1.5f
[p printf]; // 10 1.5f
text2(p); // 指针,地址
[p printf]; // 20, 1.71
warning 主要text3复杂一点 因为内部 开辟了一块新的存储空间 需要看清楚指向谁
text3(p); // 指针,地址
[p printf]; // 20 1.71
text4(p); // 指针,地址
[p printf]; // 33, 1.99
}
@implementation Person
- (void)printf
{
NSLog(@"年龄 = %i,身高 = %f",age,height);
}
@end
void text1(int newAge, double newHeight)
{
newAge = 30;
newHeight = 1.6f;
}
// Person *newP = p
void text2(Person *newP)
{
newP->age = 20;
newP->height = 1.71f;
}
void text3(Person *newP)
{
Person *p2 = [Person new];
p2-> age = 40;
p2-> height = 1.8f;
newP = p2;
newP->age = 30;
}
void text4(Person *newP)
{
Person *p2 = newP;
p2 -> age = 50;
p2 -> height = 1.99f;
newP -> age = 33;
}
一、概念
二、代码
#import <Foundation/Foundation.h>
#pragma mark 类
#pragma 1.查找错误1
/*
@interface Person : NSObject
{
// 1.缺少了 @public
@public
int age;
double height;
// double height = 1.55; // 2.成员变量不能在定义的时候 进行初始化
// - (void)study;
}
- (void)study; // 3.方法只能写在{}外面
// 4.缺少@end
@end
@implementation Person
- (void)study
{
NSLog(@"年龄为%d的人在学习",age);
}
@end
int main()
{
// 地址只能用指针保存
Person *p = [Person new];
p->age = 10;
p->height = 1.77f;
[p study];
return 0;
}
*/
#pragma 2.查找错误2
/*
@interface Test : NSObject
//- (int)addNum1(int)num1 andNum2(int)num2; // 1.缺少:
- (int)addNum1:(int)num1 andNum2:(int)num2;
//- (double)p1:; // 2.多了: 有参数才需要:
- (double)p1;
//- (void)text(); // 3.OC方法中 ()就一个作用, 用来扩住数据类型
- (void)text;
@end
@implementation Test
- (int)addNum1:(int)num1 andNum2:(int)num2
{
return num1 + num2;
}
- (double)p1
{
return 3.14;
}
- (void)text
{
}
@end
int main()
{
return 0;
}
*/
#pragma 3.查找错误3
@interface Car : NSObject
{
@public
int wheels;
}
- (void)run;
- (void)text;
@end
// 1.方法的声明 必须写在类的声明中
//- (void)run;
//- (void)text;
@implementation Car
- (void)text
{
NSLog(@"%i轮子的车跑起来了",wheels);
}
// 2. 方法不能是使用函数, 方法是方法,函数是函数
// 方法是属于一个类, 函数是属于一个文件
//- (void)run()
- (void)run
{
NSLog(@"测试一下 车子 %i",wheels); // 3.不能在函数里面访问类的成员属性
}
// 4.方法的实现 只能写在@implementation
- (void)haha
{
NSLog(@"haha");
}
@end
int main()
{
Car *c = [Car new];
[c run];
// text(); // 方法不能当做函数来调用
[c text];
// haha();
[c haha];
}