zoukankan      html  css  js  c++  java
  • 进击的Objective-C--------Objective-C基础(-)

    1.面向过程和面向对象
    (面向对象三大特性:封装 继承 多态)
    面向对象编程:分析解决问题组成的对象,从中抽象出类,调用方法(协调对象间的联系与通信),解决问题.
    面向过程编程:分析解决问题的步骤,实现函数,一次调用
    2类和对象:类和对象是面向对象的核心
    类:具有相同特征和行为的事物的抽象
    定义类包含两个部分:接口部分和实现部分.
                  1.接口部分:对外声明类的特征和行为
    #import <Foundation/Foundation.h>
    // 接口部分 新建的类继承于NSObject
    @interface Grilfriend : NSObject{
    // NSObject 是所有类的基类或父类
        // 特征:实例变量
    @public// 实例变量的可见度
        NSString *_name;
        NSString *_gender;// 实例变量起名字是加上_
        NSInteger _age;// 基本数据类型或标量OC 别加*}
    /***********行为*************/
    - (void)eat;
    - (void)spendMoney;
    - (void)watchMovies;
    - (instancetype)init;//(instancetype)=(id)
    @end
                  2.实现部分:对内实现行为
    #import "Grilfriend.h"
     
    @implementation Grilfriend
    //类的实现部分
    -(void)eat
    {
        NSLog(@"你就知道吃,吃了100块的麻辣烫了");
    }
    -(void)spendMoney{
        NSLog(@"你就知道花钱,都花了100块了");
    }
    -(void)watchMovies{
        NSLog(@"你就知道看电影,都看了100部电影了");
    }
    @end
    对象:对象是类的实例,类是对象的类型.
     // 对象
        Grilfriend *g1 = [[Grilfriend alloc]init];
        // 第一步 开辟空间
        // 第二步 初始化 在发送消息的时候使用方括号
        Grilfriend *g2 = [[Grilfriend alloc]init];
        // +号开头是类方法 只能用类调用 -号开头是实例方法 由实例调用
        // 调用
        [g1 eat];
        [g2 spendMoney];
        [g1 watchMovies];
    // 实例变量的访问
       
        NSLog(@"%@ %@ %ld",g1->_name,g1->_gender,g1->_age);
        g1->_name = @"宋慧乔";
        g2->_age = 18;
        g1->_gender = @"女";
        NSLog(@"%@",g1->_name);
        NSLog(@"%@",g1->_gender);
        NSLog(@"%ld",g2->_age);
    初始化
    Grilfriend *g1 = [[Grilfriend alloc]init];
    -(instancetype)init{
        _name = @"宋慧乔";
        _gender = @"女";
        _age = 16;
        return self;// self就是指向自己的一个指针
    }
     
     
     
    NSLog
    要输出的格式化占位:
     
    %@ 对象
    %d, %i 整数
    %u   无符整形
    %f 浮点/双字
    %x, %X 二进制整数
    %o 八进制整数
    %zu size_t
    %p 指针
    %e   浮点/双字 (科学计算)
    %g   浮点/双字
    %s C 字符串
    %.*s Pascal字符串
    %c 字符
    %C unichar
    %lld 64位长整数(long long)
    %llu   无符64位长整数
    %Lf 64位双字
     
    NSLog定义在NSObjCRuntime.h中,如下所示:
    void NSLog(NSString *format, …);
     
     
    NSLog (@”this is a test”);
    NSLog (@”string is :%@”, string);
    NSLog (@”x=%d, y=%d”, 10, 20);
     
    但是下面的写法是不行的:
    int i = 12345;
    NSLog( @”%@”, i );
     
    原因是, %@需要显示对象,而int i明显不是一个对象,要想正确显示,要写成:
    int i = 12345;
    NSLog( @”%d”, i );
  • 相关阅读:
    css 实现换肤几种方式
    vue 使用中的小技巧 (一)
    GitLab集成Jenkins、Harborn构建pipeline流水线任务
    GitLab数据迁移
    Jenkins更换国内插件源以及Jenkins更新(Jenkins部署在Docker中)
    docker-compose安装JenKins
    docker-compose安装Nexus
    docker-compose安装GitLab
    安装Harbor并修改默认使用的80端口
    在CentOS7.5中基于docker-compose安装mysql5.7
  • 原文地址:https://www.cnblogs.com/sharkHZ/p/4984033.html
Copyright © 2011-2022 走看看