• OC学习总结之面向对象和类


    OC学习总结之面向对象和类

     
    Objective-c是c语言的母集合,它的原意就是在原始的c语言的主体上加入面向对象的特性。
    1、面向对象和面向过程
      面向对象和面向过程是编程的两种思考方式。面向对象,简称OOP,它是以事物为中心,参与事件的事物是核心,完成事件只是事物的一个小任务。面向过程,简称OPP,它是以事件为中心,事件是核心,列出了完成事件的每一个步骤,一步一步完成。也就是面向对象侧重于从问题在寻找客体、客体的作用。客体间的关系即“谁”、“做什么”、“怎么做”,面向过程侧重于问题的分解即“事件怎么做”。
    2、类和对象
    (1)类是一组具有相同(特征)属性和行为(功能)的事物的集合(抽象)。对象就是类的具体实现。世间万物皆对象。类其实就是一种数据类型,它的变量就是对象。
    (2)类的定义
    在OC中,类的定义分两部分:接口部分和实现部分;
    接口部分(interface):声明了类与父类的名字、方法是实例变量。接口文件以.h为后缀。
    例如 Student.h        接口文件
    @interface Student : NSObject      //NSObject是继承的父类
    {   
    @public  //访问修饰符
    //以下是实例变量的声明
    NSString * name;   //姓名
    int age;                   //年龄
    NSString * address;//地址
    NSString * hobby; //爱好
    }
    //是方法的声明
    -(void) sayHi;   //打招呼的方法
    -(void) eat;       //吃饭的方法
    -(void) walk;    //走的的方法
    实现部分(implementation):包含了方法的实现,真正意义上定义了类的行为。实现文件以.m为后缀。
    注意:
    编译器不要求将接口文件和实现文件的代码放在不同的文件中。每一个类用一对接口/实现源文件是一个良好的习惯。一个文件中可以声明和定义多个类。
    如果类之间没有什么关系,最好不要把不同的类放在同一个文件书写。
    例如 //Student.m   实现文件
    #import
    @implementation Student
    //以下是方法的实现
    -(void) sayHi   //打招呼的方法
    {
    NSLog(@"我是来自%@的%@,今年%d岁,喜欢%@",address,age,name,hobby);
    }
    -(void) eat       //吃饭的方法
    {
    NSLog(@“%@也得吃饭。”,name);
    }
    (3)对象的创建和使用
    1>对象的创建
    内存分配:为对象动态的分配内存地址。
    初始化:在内存中填上的初始值。
    例如:Student * stu =[[Student alloc] init];
    说明:向类发送alloc消息,就是为该类分配一块足够大内存,用于存放实例变量,同时初始化内存,填上的初始值。
    2>对象的赋值使用
    例如://main函数
    #import "Student.h"
    int main (int argc, const char * argv[])
    {
        @autoreleasepool {
            //创建一个学生对象
            Student * student = [[Student alloc] init];
            student->name = @"孙悟空";//为姓名赋值
            student->age = 500;      //为年龄赋值
            student->address = @"傲来国花果山";//为地址赋值
            student->hobby =@"游山玩水";//为爱好赋值  
            //调用打招呼的方法
            [student sayHi];
    }
    ->赋值必须实例变量的修饰符是@public。实例变量的修饰符还有@protected和@private,系统默认实例变量的类型是@protected,对于这两种类型的实例变量,我们需要调用方法为其赋值或者取值。
    广义上讲为实例变量赋值的方法成为设置器,取出实例变量的方法成为访问器。
    设置器、访问器说明:
    1. 设置器命名: set+首字母大写的实例变量名  如:-(void)setAge:(int)newAge
    2. 设置器参数不要与实例变量重名。
    3. 读取器:与实例变量名同名,并且返回类型与实例类型一致。
    缺点:
    实例变量越多,编写就越麻烦。
  • 相关阅读:
    工作之余
    用MFC如何高效地绘图
    C++运算符优先级
    CentOS5.9下用Kate
    3G门户网(3G.cn) 招聘 软件测试工程师
    深圳市东润信息咨询有限公司招聘职位: 3G无线产品经理
    广州杰赛科技股份有限公司 招聘 技术中心3G协议软件工程师
    3G门户网(3G.cn) 招聘 手机游戏开发工程师
    3G门户网(3G.cn) 招聘 技术支持工程师
    3G工程师:三大热门的3G职业资格培训认证
  • 原文地址:https://www.cnblogs.com/iOS-mt/p/4094241.html
Copyright © 2020-2023  润新知