OC类与对象 -- 总结

作者: J_coco | 来源:发表于2016-01-20 20:48 被阅读0次

创建一个Person类
Person.h

import<Foundation/Foundation.h>
@interface Person : NSObject
{
    //属性
    NSString *_name;//名字
    int _age;              //年龄
    float _weight;      //体重
}

/*______________________________________________________________________*/
    //方法声明
//set 方法  设置器
- (void)setName:(NSString *)name;
- (void)setAge:(int)age;
- (void)setWeight:(float)weight;

//get方法  访问器
- (NSString *)name;
- (int)age;
- (float)weight;
/*______________________________________________________________________*/

//类方法
+ (void)showPersonMembers;

//实例方法
- (void)setName:(NSString *)name age:(int)age weight:(float)weight;

@end

Person.m

#import"Person.h"
@implementation  Person

//set
- (void)setName:(NSString *)name
{
    _name = name;
}

- (void)setAge:(int)age
{
    _age = age;
}

- (void)setWeight:(float)weight
{
    _weight = weight;
}
/*_______________________________________________________________*/
//get
- (NSString *)name
{
    return _name;
}

- (int)age
{
    return _age;
}

- (float)weight
{
    return _sweight;
}
/*_________________________________________________________________*/
//类方法
+ (void)showPersonMembers
{
    NSLog(@"members : name age sweight");
}

//实例方法
- (void)setName:(NSString *)name  age:(int)age weight:(float)weight
{
    [self setName:name];
    _age = age;
    _weight = weght;

    //调用本类的实例方法  使用 --> self 表示本类的对象
    [self privateMethod];

    //调用本类的类方法  使用  -->  类名
    [Person classPrivateMethod];
}
/*______________________________________________________________________*/
//如果一个方法实现在 .m 文件中,而没有在对应的 .h 文件中声明  那么这是一个私有的方法
- (void)privateMethod
{  
    NSLog(@"私有方法");
}

+ (void)classPrivateMethod
{
    NSLog(@"私有的类方法");
}

/*________________________________________________________________________*/

//description 方法   方法覆写
- (NSString *)description
{
    //决定了  使用%@打印对象时  控制台所展示的内容
    return [NSString stringWithFormat:@"Person:%p name:%@ age:%d weight%,1f",self,_name,_age,_weight];
}
@end

main.m

#import<Foundation/Foundation.h>
#import"Person.h"
int main(int argc,const char *argv[])
{
  @autoreleasepool
  {
     //类 创建 对象
          //1.开辟内存
    Person *xiaoming = [Person alloc];

          //2.初始化
    xiaoming  = [xiaoming init];

          //建议写法:一次完成
    Person *xiaohong = [[Person alloc]init];
/*_____________________________________________________________________*/
    //设置属性
    [xiaohong setName:@"小红"];
    [xiaohong setAge:18];
    [xiaohong setWeight:120];
    [xiaohong setName:@"小红"];
/*_______________________________________________________________________*/
    //访问属性
    NSLog("name = %@ age = %d weight = %f",[xiaohong name],[xiaohong age],[xiaohong weight]);

/*_______________________________________________________________________*/

//类  调用  类方法
[Person showPersonMembers];


NSLog(@"xiaohong  is  %@"xiaohong);
  }
   return 0;
}

相关文章

  • OC类与对象 -- 总结

    创建一个Person类Person.h Person.m main.m

  • [CH2-Q2]Objective-C对象中的isa、super

    上一节Objective-C的对象——实例对象、类对象、元类对象我们总结出:OC中的对象分成三类,分别包括: in...

  • OC对象的本质<二> 实例对象,类对象,元类对象

    OC对象的本质<一> OC对象的分类 OC对象可以分为三类,分别是实例对象,类对象,元类对象。 实例对象(inst...

  • OC:类与对象☀️

    版权声明:本文为博主原创文章,未经博主允许不得转载。 学习目标 1.【理解】对象在内存中的存储 2.【理解】nil...

  • OC :类与对象

    一、面向对象 面向对象以事物为中心,完成某件事都需要哪些事物来参与,参与该事件的事物都有哪些功能,完成该事件需要这...

  • OC重学第一天

    一 . Objective-C基础语法 二. OC 与 C 的对比 三 . 类与对象 1 . 类与对象的区分 2 ...

  • iOS 实例对象,类对象,元类对象(1)

    OC对象的分类 OC对象主要分为三类:instance(实例对象),class (类对象),meta-class(...

  • iOS底层原理--Runtime--Class

    class结构----- __bridge作用:oc指针与void * 相互转换 元类对象和类对象数据结构相同 类...

  • isa 和 superclass

    OC对象的分类OC中的对象,简单来说可以分为三大类:instance 对象(实例对象)、class 对象(类对象)...

  • 四、isa 指针关联类

    主要内容:1.OC对象的本质2.isa 与 类的关联原理3.isa 与 类的关联验证 1.OC对象的本质 先了解编...

网友评论

    本文标题:OC类与对象 -- 总结

    本文链接:https://www.haomeiwen.com/subject/sxslkttx.html