一、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. phpDoc使用说明

    技术文档可以使人们更好得使用他人的代码库,然而,作为开发人员,编写文档确是一件让人头疼的事情.PHPDoc是PHP文档注释的一个标准,它可以实现为代码生成API文档. PHPDoc注释规范: 块注释的 ...

  2. PagedList.MVC分页

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

  3. 华为OJ平台——输出最小的k个数

    输入n个整数,输出其中最小的k个. 详细描述: 接口说明 原型: bool GetMinK(unsignedint uiInputNum, int *pInputArray, unsignedint ...

  4. Oracle 学习系列之一(表空间与表结构)

    create tablespace user3 datafile 'e:\test\user3_data.dbf' size 20M --表空间初始大小为: 20Mautoextend on next ...

  5. UITableView 详解 ()

    (原本取至D了个L微信公众号) UITableView 详解 一.建立 UITableView DataTable = [[UITableView alloc] initWithFrame:CGRec ...

  6. Java 对字符反转操作。

    //把一段字符串反转后大小写互换位置 public class test_demo { public static void main(String[] args)throws Exception { ...

  7. Win8系统安装NET Framework 3.5的方法

    1)找到下载过的Win8系统盘,解压到某个目录下,例如 F:, 找到解压的系统盘目录中"sources\sxs"文件夹 2)以管理员身份运行cmd命令,执行下面的命令: dism. ...

  8. vim的.vimrc文件设置

    set nocompatibleset autowriteset autoreadset nobackupset noswapfile " --- syntax and indent --- ...

  9. HTTP状态

    HTTP状态码 当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求.当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应 ...

  10. 在peopletools里面测试文件上传

    Using the PeopleTools Test Utilities Page Select selectPeopleTools, then selectUtilities, then selec ...