一、OC语言的特点:封装,继承,多态;包含一个运行时系统;类库丰富。
二、面向对象
     1、概述
     OOP(Object Oriented Programming)面向对象编程。
     面向对象以事物为中心,完成某件事情都需要哪些事物来参与,参与该事件的事物都有哪些功能,完成该事件需要这些事物相互协作共同完成,并且完成该事件只是所有事物功能中其中的一个小功能。
    2、特点
     分析该问题需要参与的对象,各个对象的作用,完成该事件需要多个对象协同完成该任务。
     3、侧重点
     对象的设计。
     4、优点
     (1)面向对象具有良好的可扩展性和重用性;
     (2)面向对象可以降低我们代码的耦合度,提高代码的可移植性;
     (3)面向对象接近于日常生活和自然的思考方式,可以提高我们软件开发的效率和质量。
     5、面向对象编程的核心是转变考虑问题的⽅式。
三、类和对象的概念和区别
     1、类:具有相同特征和行为的事物的抽象。
     2、对象是类的实例,万事万物皆对象。 类是对象的类型。
四、类和对象的定义
     1NSLog:OC中的输出函数,输出内容会包括日期,时间,工程名,输出内容,内容输出完成后自动换行。
     2、@“”:OC中用来表示字符串
     3、.h文件里
     @interface…@end:类的接口部分(声明部分),成对出现。用来声明类的实例变量(特征)和方法(行为)。
     @interface     Person :NSObjcet (Person表示类名,:表示继承关系,:后面的类名表示父类名,NSObject 基类)。
     4、.m文件里     
     @implementation和@end成对出现,类的实现部分。
     @implementation Person (Person 表示类名)。实现Person类中定义的方法
     5、面向对象的核心思想是类和对象。
     6、OC中类的定义分为两个部分:接口部分和实现部分。
     7、 声明实例变量,命名以下划线开头。OC中的类型,声明实例变量的时候后面加*,C语言中的基本数据类型,类型后面不需要加*,首字母小写,遵循驼峰命名法。
     8、定义方法:OC中的方法分为两类:
     第一种,’+’ 号方法(类方法) 由类名调用;第二种,’-’ 号方法(对象方法或者称为实例方法)由对象调用;定义时将返回值类型用()括起来
     9、创建对象
    (1)定义类
     (2)开辟存储空间
     (3)初始化
           第一种
         Person *person1 = [Person alloc];
    person1 = [person1 init];
    第二种
         Person *person2 = [[Person alloc] init];(最常用的)
       第三种
       Person *person3 = [Person new];  (new 等同于 alloc 和 init)
       (OC中使用[ ]给方法发送消息)
        [person1 eat]; ( 使用对象名去调用对象方法)
        [person2 sleep];
        [Person study]; (使用类名去调用类方法)
     10、instancetype和id的区别(instancetype 实例对象)
          (1)instancetype可以返回和方法所在类相同类型的对象,id只能返回位置类型的对象。
          (2)instancetype只能作为返回值和参数,id还可以用来定义变量
          (3)instancetype会告诉编译器当前的类型,但id对于编译器却是无类型的,
调用任何方法都不会给出错误提示。
          (4)对于init方法,id和instancetype是没有区别的。因为编译器会把id优化成instancetype。当明确返回的类型就是当前Class时,使用instancetype能避免id带来的编译不出的错误情况。 
          (5)id和instancetype都可以作为方法的返回值类型,都表示任意类型的对象
五、实例变量的操作
     1、@public 公共的 外界可以直接访问,可以被子类继承
     2、@protectde 受保护的 外界无法访问,可以被子类继承
     3、@private 私有的 外界无法访问,不可以被子类继承
     4、实例变量没有指定可见度的情况下,默认是@protected
六、方法
     1、setter方法(设置器)
          (1)作用:提供一个方法给外界设置成员变量,可以在方法里面对参数进行相应的过滤。
          (2)命名规范
               1)方法名必须以set开头;
               2)set后面跟上成员变量的名称,成员变量的首字母必须大写;
               3)返回值一定是void;
               4)一定要接收一个参数,而且参数类型和成员变量类型一致;
               5)形参的名称不能跟成员变量名一样。 
     2、getter方法(访问器)
          (1)作用:返回对象内部的成员变量。
          (2)命名规范
               1)肯定有返回值,返回类型肯定与成员变量类型一致;
               2)方法名为成员变量名去掉下划线_,成员变量在定义时,一般以下划线_开头;
               3)不需要接收任何参数
     3、定义实例变量的setter和getter方法:实例变量如果是受保护类型的,外界无法直接访问,外界如果要访问实例变量,需要本类提供方法,外界访问的话直接调用相应的方法即可。外界操作实例变量通常对实例变量赋值和取值操作:setter:本类提供的用来给实例变量赋值的方法;getter:本类提供的用来给实例变量取值的方法
     4、多个参数的方法名
          setHobby: ()hobby weight: ()weight address: ()address isMarried:()isMarried;

iOS学习之Object-C语言类和对象的更多相关文章

  1. iOS学习08之C语言内存管理

    本次主要学习和理解C语言中的内存管理 1.存储区划分 按照地址从高到低的顺序:栈区,堆区,静态区,常量区,代码区 1> 栈区:局部变量的存储区域 局部变量基本都在函数.循环.分支中定义 栈区的内 ...

  2. iOS学习07之C语言指针

    本次随笔主要是为了学习和理解C语言中的指针,指针树状图如下: 1.访问数据的两种方式 1> 直接访问:定义变量后,直接访问变量 ; printf("a = %d\n", a) ...

  3. 零基础入门学习Python(36)--类和对象:给大家介绍对象

    知识点 Python3 面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. 如果你以前 ...

  4. C++学习43 输入输出有关的类和对象

    输入和输出是数据传送的过程,数据如流水一样从一处流向另一处.C++形象地将此过程称为流(Stream).C++的输入输出流是指由若干字节组成的宇节序列,这些宇节中的数据按顺序从一个对象传送到另一对象. ...

  5. C++学习日记(一)————类与对象

     C++远征之封装篇(上)笔记 所有内容都是听课笔记,愿课堂视频如下: C++远征之封装篇(上)-慕课网http://www.imooc.com/learn/382 类和对象 1 什么是类,什么是对象 ...

  6. Java学习笔记(二)——类和对象

    [1]类是模子,确定对象将会拥有的特征(属性)和行为(方法). [2]类的特点:类是对象的类型: 具有相同属性和方法的一组对象的集合. [3]属性:对象具有的各种特征(每个对象的每个属性都拥有特定值) ...

  7. Java学习笔记【四、类、对象、接口】

    编程语言的发展 机器语言 过程语言 面向对象编程--封装.继承.多态 关键字 extends implements override overload super this static abstra ...

  8. Python学习笔记(六)——类和对象

    1.self的用法 全面理解self 2. 继承 子类继承父类,自动拥有父类的全部方法 >>> class Animal: def run(self): print('Animal ...

  9. python学习笔记(24)-类与对象

    #类与对象 #python类的语法 关键字 class #class 类名 类名的规范是:数字字母下划线组成,不能以数字开头 首字母大写 驼峰命名 #类属性 放在类里面的变量值 #类方法 放在类里面的 ...

随机推荐

  1. ubuntu 开发环境搭建 lisp gcc python perl mysql

    一: lisp sudo apt-get install emacs sudo apt-get install sbcl sudo apt-get install slime emacs里 Alt+x ...

  2. No.008 String to Integer (atoi)

    8. String to Integer (atoi) Total Accepted: 112863 Total Submissions: 825433 Difficulty: Easy Implem ...

  3. Avl树的基本操作(c语言实现)

    #include<stdio.h> #include<stdlib.h> typedef struct AvlNode *Position; typedef struct Av ...

  4. iPad用户使用Mac和Windows应用软件-记Parallels Access使用体验

    iPad用户使用Mac和Windows应用软件-记ParallelsAccess使用体验 用ipad远程连接win系统已不是新鲜事情,我们可以使用TeamViewer和OnLiveDesktopPlu ...

  5. 开源项目:DolphinPlayer

    Dolphin Player是一款基于FFmpeg解码视频播放器,支持大多数的音频和视频格式. 项目主页:http://code.google.com/p/dolphin-player/ 源代码Git ...

  6. .net HttpClient类(System.Net.Http) c#并发使用测试、压测

    .net HttpClient类(System.Net.Http) c#并发使用测试.压测

  7. .NET中 使用数组的注意事项

    1.初始值问题 对于int.double.float等一些值类型数组,没有赋值的情况下, 默认值是0: 而对于String 等引用类型,初始值为null. 2.IndexOutOfRangeExcep ...

  8. C++获取得到图片的坐标和rgb

    #include <iostream> #include <fstream> #include <string> #include <windows.h> ...

  9. mac 下 svn ignore 操作

    如何在svn中设备忽略的文件或者文件夹 1.如果你还没有对你的文件夹进行版本控制,则可以直接图形操作上进行ignore,或者在命令中运行 svn propedit svn:ignore 文件夹名 . ...

  10. apache和IIS共享80端口问题

    使用apache代理功能和IIS共享80端口的解决办法. 第一步:把iis所发布的网站默认端口由80改为8080: 第二步:修改apache的httpd.conf配置文件.  首先,要让apache支 ...