A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zxm-it 中级黑马   /  2015-8-14 22:09  /  739 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

2 个回复

倒序浏览
不  错!
回复 使用道具 举报
不错   很细心
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马