干柴

黑马程序员 Object-c 类、对象、方法

一、OC类的声明

@interface Student : NSObject

{

    //声明实例变量

    NSString *_name;

}

//声明方法

- (id)initWithAge:(NSString *)name;

- (void)eat;

- (void)say:(NSString *)message;

@end

用@interface来声明一个类,冒号表示继承关系,冒号后面是父类。NSObject是所以类的父类,@end关键字表示结束,这与Java的大括号表示类的开始和结束同,OC的大括号内是变量的声明。


  • 类的声明放在“类名.h”文件中,如Student.h
  • 类的实现放在“类名.m”文件中,如Student.m
  • 类的声明主要由实例变量和方法两部分组成


二、实例变量

  • 实例变量可以是任何一种数据类型(包括基本数据类型和指针类型)
  • 在声明实例变量的时候不能为其初始化,系统默认会初始化
  • 实例变量的默认作用范围是整个类及子类

黑马程序员 Object-c 类、对象、方法 - huang_sheng_sen - huang_sheng_sen的博客


三、OC的方法声明 
  • 声明格式:- (void)say:(NSString *)message;
  • “-”表示实力方法,“+”表示类方法(和java的静态方法差不多,都是用类名来调用),返回值类型为空,方法明为“say”,冒号后面是传入参数的类型及名称
  • OC中进行方法调用传入参数时,是按值传递的原则,基本数据类型传递的是该数据值本身,指针类型传递的是对象的指针而非对象本身

四、类的实现

#import "Student.h"

@implementation Student

- (id)initWithAge:(NSString *)name

{

    if (self=[super init]) {

        _name=name;

    }

    return self;

}

- (void)eat

{

    NSLog(@"吃东西");

}

- (void)say:(NSString *)message

{

    NSLog(@"我想说%@",message);

}

@end


五、对象的创建和使用

  • 对象通过指针来声明。如:Student *student;
  • 使用alloc来创建一个对象。系统会给object对象分配一块可用的内存地址,然后调用init方法来初始化对象。

Student *student=[Student alloc];

student=[student init];

也可以用方法嵌套的形式调用

Student *student=[[Student alloc] init];


六、OC中方法的调用

  • 方法的调用或称为发送消息,事实上看成发送消息,更容易理解OC语言的写法。
  • 方法的调用语法:[对象名 方法名];

[student say:@"hello world"];

student为对象名,say为方法名,hello world 为传入的字符串参数。

评论

热度(3)