zoukankan      html  css  js  c++  java
  • OC基础第一讲

    面向对象思想

    opp:面向对象编程

    1.面向对象核心:类和对象

    2.面向对象的特点:封装、继承、多态

    3.全动态语言

    4.优点:(1)可重用性(以五子棋为例,有三个对象:旗手,棋盘,规则,若需要改为围棋游戏,只需要修改规则对象)

         (2)可扩展性(给棋盘对象添加悔棋功能)

    类和对象

    类:具有相同特征和行为的事物的抽象。

    对象:对象是类的实例,类是对象的类型;

    定义类 —创建对象—使用对象

    类的定义:接口部分(.h)和实现部分(.m)

    接口部分(@interface...@end):声明类的实例变量(特征)和方法(行为)

    包含:类名、父类名、实例变量

    实现部分(@implementation...@end)实现方法                             

    创建对象:申请内存—初始化    

    (1)初始化方法1:初始化方法init中实现

    (2)初始化方法2:用public修饰符修饰的实例变量,可以直接通过 对象名->实例变量  访问

    具体代码

    Person.h接口文件

    //  接口部分标志 @interface...@end

    @interface Person : NSObject//  类名Person 继承父类NSObject

    {

        // @public 修饰实例变量,让实力变量可以被外界访问

        @public

        NSString *_name;        //  姓名

        int _age;               //  年龄

        NSString *_gender;      //  性别

    }

    //  声明一个打招呼的方法,-实例方法,由对象调用,+类方法,由类调用

    - (void)sayHi;              //  '-'方法类型  ‘(void)’返回值类型 ‘sayHi’方法名称

    - (void)eat;

    @end

    Person.m文件 方法实现

    // 引入Person.h文件

    #import "Person.h"

    //  实现文件标志@implementation...@end

    @implementation Person

    //  初始化方法

    - (id)init

    {

        // 给实例变量赋值

        _name = @"小王";

        _age = 20;

        _gender = @"男";

        

        //  返回当前对象

        return self;

    }

    //  实现sayHi方法

    - (void)sayHi

    {

        NSLog(@"我叫:%@ 年龄:%d 性别:%@", _name, _age, _gender);

    }

    //  实现eat的方法

    -(void)eat

    {

        NSLog(@"吃饭了");

    }

    @end

    主函数 .m文件

    #import <Foundation/Foundation.h>

    #import "Person.h" 

    int main(int argc, const char * argv[])

    {

        @autoreleasepool {

            //  创建一个对象

            //  1.申请内存

            Person *p = [Person alloc]; //  alloc是类方法 init实例方法

            //  2.初始化

            p = [p init];

            //  不用在init方法中初始化的方法

            p->_name = @"kitty";

            p->_age = 22;

            p->_gender = @"女";

            //  3.使用对象

            [p sayHi];          //  给对象p的sayHi方法发送消息(通俗讲就是调用对象p的sayHi方法)    

        }

        return 0;

    }

     

  • 相关阅读:
    【云速建站】表单应用
    【云速建站】页面产品维护简述
    Forrester:华为云容器是容器混合云最佳选择
    AI如何驱动软件开发?华为云DevCloud 权威专家邀你探讨
    完美数据迁移-MongoDB Stream的应用
    补习系列(3)-springboot中的几种scope
    补习系列(2)-springboot mime类型处理
    关于Python的随机数模块,你必须要掌握!
    【Java】实战Java虚拟机之五“开启JIT编译”
    Jetty实战之 嵌入式Jetty运行Servlet
  • 原文地址:https://www.cnblogs.com/liuyu521/p/3678814.html
Copyright © 2011-2022 走看看