黑马程序员——OC学习——面向对象

来源:互联网 发布:linux下刻录数据光盘 编辑:程序博客网 时间:2024/06/05 17:30

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

1. 实例变量修饰符——@public  @protected  @private

实例变量作用域

  • @public修饰的实例变量可以在任意程序集访问
  • @protected修饰的实例变量在当前类及其派生类中可以访问
  • @private修饰的实例变量只在当前类中可以访问
2. OC中的私有变量

在.m文件中定义的变量,私有变量只能在当前类中使用不能被子类继承也不能被子类使用,而@private修饰的实例变量可以被子类继承但是不能被子类使用

3. OC中私有方法

在.h文件中没有声明但是在.m文件中实现的方法是OC中的私有方法,父类的私有方法不能被子类继承,通过关键字self访问私有方法

示例代码如下;

#import <Foundation/Foundation.h>//类的声明@interface Car:NSObject-(void)test;@end//类的实现@implementation Car//定义一个私有方法-(void)run{    NSLog(@"车在跑");}-(void)test{    //使用self调用私有方法    [self run];}@end//main方法int main(int argc, const char * argv[]) {    @autoreleasepool {        Car *car=[Car new];        //通过调用类对外公开的方法调用私有方法        [car test];    }    return 0;}


4. description方法介绍

以%@打印一个对象时调用了一个对象的description方法,打印结果是<类名 对象地址>

以%@打印一个类对象时,调用的是类的description方法,打印出类的信息

示例代码如下:

#import <Foundation/Foundation.h>#import "Dog.h"int main(int argc, const char * argv[]) {    @autoreleasepool {                Dog *d=[Dog new];        //调用对象的description方法打印一个对象        NSLog(@"%@",d);        //调用类的description方法打印类的信息        NSLog(@"%@",[d class]);    }    return 0;}

5. 类的本质

类的本质也是一个对象,类对象代表类,class代表类对象,类方法属于类对象。

eg: Person *p=[Person new]; Person是一个类对象,是class类型,p是一个类类型的变量,是一个实例变量

获取类对象的方法:

  • 通过实例对象获取   eg:Dog *dog=[Dog new];  Class d1=[dog class];
  • 通过类名获取          eg:Dog *dog=[Dog new];  Class d2=[Dog class];
类对象的使用

使用类对象创建对象:Dog *dog1=[d1 new];

调用类方法:[d1 run];


0 0
原创粉丝点击