一、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. 复习下 AJAX

    什么是AJAx:Asynchronous Javascript and XML中文意思:异步JavaScript 和XML批一种创建交互式网页应用的网页开发技术.AJAX优点1.Ajax 在本质上是一 ...

  2. Ugly Window 【acm题】

    话说好久没有碰acm题目了.............................. 看到Ugly Window这道题目,没有多想,就直接先找到字母的连续长度和连续高度,并统计该字母的总个数,然后用 ...

  3. 在ASP.NET开始执行HTTP请求的处理程序之前

    using Dscf.Client.Web.Class; using Dscf.Client.Web.DscfService; using Dscf.Client.Web.Handler; using ...

  4. C++多态性——函数的覆盖和隐藏

    1.函数的覆盖 覆盖的条件: 基类函数必须是虚函数(使用Virtual关键字进行声明): 发生覆盖的两个函数必须分别位于派生类和基类中: 函数名称与参数列表必须完全一样: 2.函数的隐藏 隐藏,是指派 ...

  5. C#中常见的委托(Func委托、Action委托、Predicate委托)

    今天我要说的是C#中的三种委托方式:Func委托,Action委托,Predicate委托以及这三种委托的常见使用场景. Func,Action,Predicate全面解析 首先来说明Func委托,通 ...

  6. JavaScript的闭包是什么意思以及作用和应用场景

    JavaScript闭包 1.什么是闭包 百度百科对于闭包的解释是:闭包是指可以包含自由(未绑定到特定对象)变量的代码块:这些变量不是在这个代码块内或者任何全局上下文中定义的,而是在定义代码块的环境中 ...

  7. HTML5高防win8风格

    使用HTML5做了一个高防Win8的页面,大家看看怎么样 Java..NET.PHP.Android.iOS.HTML5,CSS3. web前端.视频资料下载网站  http://51pansou.c ...

  8. 点击后弧形展开的炫酷菜单--第三方开源-- CircularFloatingActionMenu(一)

    CircularFloatingActionMenu在github上项目主页地址:https://github.com/oguzbilgener/CircularFloatingActionMenu ...

  9. PHP中英文字符串截取函数无乱码(mb_substr)和获取中英文字符串字数函数(mb_strlen)

    mb_substr( $str, $start, $length, $encoding ) $str,需要截断的字符串 $start,截断开始处,起始处为0 $length,要截取的字数 $encod ...

  10. ASCII码详解

    ASCII码详解 ASCII码表 ASCII码大致可以分作三部分組成.第一部分是:ASCII非打印控制字符: 第二部分是:ASCII打印字符: 第三部分是:扩展ASCII打印字符. 第一部分:ASCI ...