OC学习 description方法重写【入学准备】【学习笔记】
2015-07-24 16:31
225 查看
以上是根据黑马程序员推荐的基础视频跟着做得 ,下面写下学习笔记
description方法是打印的时候%@来打印对象的时候NSObject就有的
子类可以重写这个方法,重写对象方法,调用的时候用对象就可以直接调用
重写类方法,调用的时候 用【对象,class】的方式读取这个类,然后调用类方法
再次重复,写方法的时候-号是对象方法,+号是类方法,写的时候要注意
这次的视频前面主要是介绍public protect private 这些在方法和属性中对子类的影响
protect 是可以被子类使用
private 可以被继承但是不能被使用
public是都可以
视频中还介绍了在m文件中声明一些方法,这些方法都是私有方法,只能在当前m文件中使用
因为.h文件并没有声明它所以其他函数调用这个头文件的时候不能调用这个方法,如果继承这个类,也不能调用这个方法,因为.h文件没有,只能通过.h声明的方法来调用!!!
main
Dog.h
Dog.m
#import "Dog.h"
@implementation Dog
-(void)run
{
NSLog(@"
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(@"
相关文章推荐
- 欧几里得算法
- Android 无障碍服务一 让应用具有辅助性服务
- 计算机网络热门问题
- 孤儿进程与僵尸进程
- CSDN在线公开课日历【十月】
- 表单元素input、button、submit、submit()、onsubmit()详解
- java 如何获取得到两个list中不同的数据
- 自己写一个快速开发android模板
- Python Network Programming
- 合服导致 globalserver 起不来的问题
- FreeSWITCH在会议室中持续播放音频文件
- Android笔记之四种方式实现计时器
- zoj1949
- [基本实验] %00截断攻击的探索
- Android学习笔记【一】Android学习感言(包含学习见解、学习方法)
- 【暴力搜索】[POJ 1011]Sticks
- java 执行Sql文件
- java学习笔记--Exception
- mysql函数计算地表两点间距离
- go语言使用protobuf