OC学习 description方法重写【入学准备】【学习笔记】

以上是根据黑马程序员推荐的基础视频跟着做得 ,下面写下学习笔记

description方法是打印的时候%@来打印对象的时候NSObject就有的

子类可以重写这个方法,重写对象方法,调用的时候用对象就可以直接调用

重写类方法,调用的时候 用【对象,class】的方式读取这个类,然后调用类方法

再次重复,写方法的时候-号是对象方法,+号是类方法,写的时候要注意


这次的视频前面主要是介绍public protect private 这些在方法和属性中对子类的影响

protect 是可以被子类使用

private 可以被继承但是不能被使用

public是都可以

视频中还介绍了在m文件中声明一些方法,这些方法都是私有方法,只能在当前m文件中使用

因为.h文件并没有声明它所以其他函数调用这个头文件的时候不能调用这个方法,如果继承这个类,也不能调用这个方法,因为.h文件没有,只能通过.h声明的方法来调用!!!

main  

#import <Foundation/Foundation.h>
#import "Dog.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        Dog *d = [Dog new];
        [d run];
        [d setAge:3];
        d->_color =1;
        //查看对象的地址
        NSLog(@"d=%p",d);
        //查看对象实例变量的值
        NSLog(@"age=%d",[d age]);
        NSString    *str = @"abc";
        //<Dog: 0x100214560> 类名 后面是地址 %p是打印地址  %@是对象
        NSLog(@"%@",d);
        //调用了对象的description方法
        //当我们以%@的格式,打印对象的d,此时调用了对象的description方法
        //对象中如果没有重写父类的description方法,则调用父类的
        
        //%@输出对象的所有的属性信息
        
        //打印类的信息
        //打印类[d class]获取dog类
        //以%@的形式,打印类信息
        NSLog(@"\n%@",[d class]);
    }
    return 0;
}

Dog.h

#import <Foundation/Foundation.h>

@interface Dog : NSObject
{
    int _age;
    @public
    int _color;
}
-(void)run;
-(void) setAge:(int)age;
-(int)age;
@end

Dog.m

#import "Dog.h"

@implementation Dog

-(void)run
{
    NSLog(@"
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值