#import <Foundation/Foundation.h> //import和include不同,import是include的一个改进,在于import防止文件重复包含,两者都是引入头文件.
@interface Person:NSObject //用@interface来声明一个类 声明形式为:@interface 类名:要继承的类名 (要以@end做结束)
{
@public; // (@public;)声明这是公有的一组属性,可以由main函数中new的对象对其进行初始化 形式为:对象名->=值(字符串前要加@"")
int age; //定义属性
NSString *name; // 字符串形式,定义为*形式;(之后的初始化一定要用@""形式)
char se;
NSString *addr;
}
-(void)ssr; //声明方法(-(void)名字)之前的-号为对象方法的意思,由对象来调用,形式为:[对象名字 方法名字] (这里只是声明)
-(void)eat;
-(void)sleep;
@end //类声明的结束符.表示该声明完毕(和@interface总是成对儿出现)
@implementation Person //定义类,包括定义在声明中声明的方法等:定义形式为:@implementation 类名
-(void)ssr{ // 方法的定义(对之前方法声明的一个实现),其形式和声明形式相同,内容实现其功能(-表示其方法由对象实现)
NSLog(@"我要启动了?"); //OC的输出控制语句:其表示可以换行 还可以输出相应的日志信息 其参数(输出字符串)是一个NSSstring的对象(可以打印对象)而C的printf只能是字符串的常量指针.(以%@来控制输出字符串信息)
}
-(void)eat{
NSLog(@"我会吃饭!");
}
-(void)sleep{ //每个方法定义实体都在大括号中定义
NSLog(@"我也会睡觉!");
}
@end //同类的声明一样,都要以@end来结束.类的声明用 @interface来实现,定义用@implementation来定义
int main(int argc, const char * argv[]) {
@autoreleasepool { //内存问题(以后)
// insert code here...
NSLog(@"Hello, World!");//用NSLog输出语句,其字符串之前都要有@"";形式
Person *pp=[Person new]; //为将要实例化的对象分配一定的内存空间(此空间在内存的栈中存在,先进后出) 为对象实例化,按照声明定义的类中的属性和方法等! 定义成指针形式,原因是实例化对象之后,返回一个实例的地址形式,由这个地址形式(对象)来操作其具体的属性和方法.
pp->age=1000;//用指针的而形式初始化对象属性元素 形式为:对象->=值
pp->se='m';
pp->name=@"nn";//用@的形式来初始化字符串
pp->addr=@"帝都";
[pp ssr]; //调用对象方法,用[对象名 对象方法名]的形式.
NSLog(@"我的年龄:%d,我的名字:%@,我的性别:%c,我的地址:%@",pp->age,pp->name,pp->se,pp->addr);//输出属性,运用对象名->值的形式,输出字符串前加@.(输出指针字符串用%@的形式)
[pp eat];
[pp sleep];
}
return 0;
}
|
|