Objective-C语言是iOS开发的专用语言,虽然现在在逐步被swift语言取代,但是仍可以作为基础学习,学会Objective-C之后入手swift也是相当快速。今天我来简谈一下关于OC中的类。

如果有过C++,Java基础的同学就会对类有了初步的了解。类,是一个抽象的概念,将一个事物抽象后概念的集合放在一起就组成了类,比如说鸟类,鸟类是一个很大种群,各种鸟儿都有,但是这些鸟有没有共同特征呢?肯定是有的,我们把这些共同特征抽象出来就组成一个类,如下图

在上图中,绿色文本中的词语是鸟类的一些属性,就是鸟类的特征,红色文本框中是鸟类都有的行为,是动作。我们在定义一个类的时候,要知道需要定义的属性和要定义的行为,在类中是方法,来做出这些行为。我们来看具体写法

一个类文件,包含.m文件和.h文件(具体见下图)。为了提高可读性,类名与创建类时的文件名要相同,OC中所有的类都直接或间接的继承与NSObject类。声明类以@interface开头,以@end结尾,类的实现以@implementation开头,以@end结尾。类名第一个字母习惯大写。在定义方法时候,有“-”方法和“+”方法,“-”方法是对象方法,实例方法,只能用对象调用的方法,只有对象存在时才可以调用,同时要有内存空间才可以操作。“+”方法是类方法,只有类才能调用,不需要实例化。类方法不分配内存空间,类方法中不可以调用实例方法,因为没有内存空间。

我们来看一段具体代码

这是.h文件,里面放声明类的代码和变量的定义以及方法的定义。

这是.m文件,里面放实现的代码

下面是主函数

在主函数中使用类时需要导入类的头文件。在各图中,代码都有详细注释,易于同学们理解和学习。

我们今天的分享就到这里了,大家有疑问欢迎留言。一起讨论学习。

Objective-C基础知识之“类”的更多相关文章

  1. Python基础知识:类

    初级篇 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强...” 1.面向对象三大特性 ...

  2. java 基础知识九 类与对象

    java  基础知识九  类与对象 1.OO(Object–Oriented )面向对象,OO方法(Object-Oriented Method,面向对象方法,面向对象的方法)是一种把面向对象的思想应 ...

  3. 回顾基础知识,类,fbv,cbv

    一 类中绑定方法的传参,不需要self class Foo(object): def __init__(self,name): self.name = name def foo(self,x): se ...

  4. C/C++基础知识总结——类与对象

    1. 面向对象程序设计的特点 1.1 抽象 1.2 封装 1.3 继承 1.4 多态 (1) 分为:强制多态.重载多态.类型参数化多态.包含多态 (2) 强制多态:类型转换 重载多态: 类型参数化多态 ...

  5. JAVA核心技术I---JAVA基础知识(类的继承)

    一:基本概念同C++一致 二:继承演示 .将共同点提取出来,即形成了父类/基类/超类 –Parent class/Base class/Super class .而其他类则自动成为子类/派生类 –Ch ...

  6. C++基础知识:类的静态成员

    1.普通成员变量通过对象名能够访问public成员变量每个对象都可以有只属于自己的成员变量成员变量不能在对象之间共享 2.从命名空间的角度:类的静态成员只是类这个命名空间中的全局变量和全局函数不同之处 ...

  7. C++基础知识 基类指针、虚函数、多态性、纯虚函数、虚析构

    一.基类指针.派生类指针 父类指针可以new一个子类对象 二.虚函数 有没有一个解决方法,使我们只定义一个对象指针,就可以调用父类,以及各个子类的同名函数? 有解决方案,这个对象指针必须是一个父类类型 ...

  8. C++基础知识-派生类、调用顺序、访问等级、函数遮蔽

    一.派生类的概念 类之间有一种层次关系,有父亲类,有孩子类. 车这个类,当成父类(也叫基类.超类),派生出卡车.轿车,他们属于孩子类(子类.派生类) 继承:有父亲类,有孩子类,构成了层次关系.继承这种 ...

  9. java线程基础知识----SecurityManager类详解

    在查看java Thread源码的时候发现一个类----securityManager,虽然很早就知道存在这样一个类但是都没有深究,今天查看了它的api和源码,发现这个类功能强大,可以做很多权限控制策 ...

随机推荐

  1. Drupal7配置简洁URL(Clear URL)

    参考:Apache Rewrite url重定向功能的简单配置 这两天折腾死了 首先说一下我的环境: Aache2.4.25-x64-vc14-r1;php-7.0.19-Win32-VC14-x64 ...

  2. Android ImageSpan的使用

    编辑框中加图片 代码如下: mSubjectDetailView = (TextView) findViewById(R.id.subject_detail); CharSequence text = ...

  3. 使用拦截器拦截html参数

    公司最新需求:根据传递的参数进行业务判断,如果符合条件则继续后面的业务逻辑,否则跳转到指定的错误页面.有些是请求的controller 使用了spring  aop的方式进行验证:但是有些是html页 ...

  4. 搭建高可用mongodb集群(二)—— 副本集

    在上一篇文章<搭建高可用MongoDB集群(一)--配置MongoDB> 提到了几个问题还没有解决. 主节点挂了能否自动切换连接?目前需要手工切换. 主节点的读写压力过大如何解决? 从节点 ...

  5. Gitlab installtation

    环境:Centos7 安装配置(安装开启http和sshd): 1 yum -y install curl openssh-server postfix 2 systemctl enable sshd ...

  6. 获取当前网页的的url

    如果测试的url地址是http://www.test.com/testweb/default.aspx, 结果如下: Request.ApplicationPath:                / ...

  7. mysql 基础学习1

    安装得方法有很多,这里就不详细介绍了. 进入 mysql 控制台 mysql -uroot -p 查看 有哪些库 show databases; 1.创建一个库 create database tes ...

  8. python基础语法1

    一.基础语法 1.常量 python语言没有真正的常量,它只是字面常量. 2.变量 变量是一个指针,它指向一块内存. 变量的命名规则: 1)只能包含字母.数字和下划线: 2)只能以字母或者下划线开始: ...

  9. java重载

    public class overLaod { public static void main(String[] args) { // TODO Auto-generated method stub ...

  10. eclipse 检测App的内存占用和泄漏【转载】

    前段时间开发的Android应用,每次都是在运行了半个小时左右后突然挂掉了,很是莫名其妙,也不知道哪里出了问题,后来一步步排查,发现问题出在JNI层,一个被频繁调用的函数分配的内存忘记释放,导致内存泄 ...