zoukankan      html  css  js  c++  java
  • OC

    交互层:cocoa touch

    操作系统层:ios

    底层:硬件

    #include 完成头文件的导入,可能会导致头文件的相互引用和函数的重复定义。

    #import   不仅完成头文件的导入,并且防止头文件的相互引用。

    @在OC中一般表示一个对象@“hello”

    也通常用于OC的一些关键字@end 

    %@表示输出一个对象类型

    NSString *name = @"yql";

    NSLog (@"%@",name);

    NSArray *array = @[@"yql",@"2"];

    NSLog(@"%@",array);

    *

    在C语言中表示指针变量或者是取某个地址里面的值

    在OC中只需要明白在定义一个OC的对象类型前面添加一个*就可以了

    int  age = 20;

    NSString *name = @"yql";

    NSLog(@"my name is %@ age is %d",name,age);

    类和对象

    1.类与对象的概念

    类是现实世界活思维世界中的实体在计算机中的反映、它将数据以及这些数据上的操作封装在一起。

    对象是具有类类型的变量。类和对象是面向对象编程技术中的最基本的概念。

    2.类与对象的关系

    类是对象的抽象,而对象是类的具体实例

    类是抽象的不占用内存,而对象是具体的,占用存储空间的

    类是用于创建对象的蓝图,它是一个定义包括在特定类型的对象中的方法和变量的软件模板

    3.类的声明与实现

    新建一个类

      new file  ->cocoa class  (父类NSObject)

      .h文件 用来定义属性和方法

      .m文件 用来具体实现

    //成员变量的声明

    @interface (表示类的开始)Person(这个类的别名) :NSObject(这个类的父类){

    //成员变量的声明(注意不能初始化!)-----------方法是暴露给外部访问的 

    NSString * name;

    int age;

    }

    //方法的声明

    @end

    //类的实现部分

    @implementation Person 

    @end

    -:实例方法instance method

    必须实例化这个类的一个对象 用这个对象调用的方法

    +:类方法 class method

    无需实例化一个对象,这个类本身就可以调用的方法

    写得好的方法名,就是一个完整的句子

    -(void)(返回值类型)setName(方法名):(NSString *)(第一个参数类型)aName(参数别名) adnAge(标签:说明这个参数的作用):(int)aAge(第二个参数);

    @interface Person :NSObject {

    //成员变量的声明 注意不能初始化---成员变量默认为私有的,只在本身这个类中可以使用

    NSString * name;

    int age;

    }

    -(void)setName:(NSString *)aName;//只有一个参数的方法

    -(void)setName:(NSString *)aName andAge:(int )aAge;//多个参数

    @end

    @implementation Person

    -(void)setName:(NSString *)aName{

    _name = aName;

    }

    -(void)setName:(NSString *)aName andAge:(int)aAge{

    _name = aName;

    _age =aAge;

    }

    @end

    //类的实例化

    Person *jack = [[Person alloc] init];

    //

    Person *jack = [[Person alloc] init];

    [jack setName:@"Jack"andAge:25];

    头文件(.h文件)

     @interface Person : NSObject{

    //data 成员变量

    NSString *name;

    int age;

    NSString *address;

    }

    //方法的声明 行为动作 提供给外部访问的

    //声明一个没有参数的方法,这个方法没有返回值

    -(void)useTools;

    //声明一个拥有一个参数的方法,参数类型是一个字符串对象

    -(void)setName:(NSString *)aName;

    //声明拥有两个参数的方法

    -(void)setName:(NSString *)aName age:(int)aAge;

    +(void)doSomeThing;

    @end

    2.  方法的实现 

    #import '' Person.h''

    @implementation Person

    -(void)useTools{

    NSLog(@"人类可以使用工具");

    }

    -(void)setName:(NSString *)aName age:(int)aAge{

     name = aName;

    age = aAge;

    }

    +(void)doSomeTing{

    NSLog(@"这个方法是类方法");

    }

    @end

    .m文件实现

    #import <Foundation/Foundation.h>

    #import "Person.h"

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

        @autoreleasepool {

            //定义小王

            //1. 为这个对象分配一片内存空间

            Person *xiaoWang = [Person alloc];

            

            //2. 初始化这个片内存空间

            xiaoWang = [xiaoWang init];

            

            //实例化一个对象

            Person *zs = [[Person alloc] init];

            

            //调用对象里面的方法

            [zs setName:@"zhangsan" age:23];

            [zs useTools];

            

            //访问类方法

            [Person doSomeThing];

        }

        return 0;

    }

  • 相关阅读:
    Go语言基础之包
    Go语言基础之结构体
    Go语言基础之指针
    Goland debug失败
    Geymotion 中安装 arm
    Linux 常用的目录及作用
    CentOS7使用YUM安装Adobe Flash Player
    XShell 连接 VirtualBox CentOS7
    机械键盘的修理方法是什么
    CentOS7网络配置
  • 原文地址:https://www.cnblogs.com/yangqinglong/p/5053408.html
Copyright © 2011-2022 走看看