开启Objective-C

一、Objective-C简述

Objective-C通常写作ObjC和较少用的Objective C或Obj-C,是扩充C的面向对象编程语言。Objective-C主要用于:编写iOS操作系统(如:iPhoneiPod touchiPad 等苹果移动终端设备 )应用程序和Mac OS X操作系统应用程序的利器。 Objective-C的流行当归功于iPhone的成功,因为Objective-C被用于编写iPhone应用程序。

Objective-C是非常实际的语言。它是一个用C写成、很小的运行库,只会令应用程序的尺寸增加很小,和大部分OO系统使用极大的VM执行时间会取代了整个系统的运作相反。Objective-C写成的程序通常不会比其原始码大很多。而其函式库(通常没附在软件发行本)亦和Smalltalk系统要使用极大的内存来开启一个窗口的情况相反。因此,Objective-C它完全兼容标准C语言C++对C语言的兼容仅在于大部分语法上,而在ABI(Application Binary Interface)上,还需要使用extern "C"这种显式声明来与C函数进行兼容),而在此基础上增加了面向对象编程语言的特性以及Smalltalk消息机制。

OC是C语言的超集,允许在OC中使用C语言源代码,编译器兼容C语言程序,具有完善的面向对象特征、包含一个运行时系统、类库丰富等特点。

虽然Objective-C是C的超集,但它也不视C的基本型别为第一级的对象。和C++不同,Objective-C不支援运算子多载(它不支持ad-hoc多型)。亦与C++不同,但和Java相同,Objective-C只容许对象继承一个类别(不设多重继承)。

二、面向对象

面向对象编程 OOP(Object Oriented Programming,面向对象程序设计)是一种计算机编程架构

面向对象的语言:C++,Java,C#

面向对象具有三大特征:封装、继承、多态。

封装:隐藏内部实现,稳定外部接口

继承:子类可以直接复用父类中的成员

多态:不同对象对同一个消息的不同相应

三、类和对象

面向对象的核心是类和对象

  (一)什么是类

类是一组具有相同(特征)属性和行为(功能)的事物的集合,类名是标示符的一种,需要符合规范,通常类名的第一个字母大写,且不能有下划线,如果有多个单词则使用驼峰标识,在对方法进行类的划分中,一般采取的做法是谁最熟悉这个方法就把这个方法划分给谁。在OC中,对象对方法的调用称为消息机制,即向既定的对象发送了什么消息。

  (二) 什么是对象

时间万物皆对象,即哲学的“客观存在”。在生活中,可能是一辆车,一只笔,或者是一张京东订单,工商银行的一张卡等等都是对象。对象描述了一个物体的特性值和行为实现

 (三) 类和对象的关系

类和对象的关系就像是狗类和具体的狗的关系一样。

类是对象的抽象,是概念或者模板,而对象是类的具体实现,属于类

类描述这些类事物应该具体哪些行为和特征:而对象真正去实现行为和特征

(四)面向对象编程中使用对象完成程序

开发中:先定义类,再创建对象,然后使用对象

定义类包含两个部分:借口部分和实现部分,分开写

1、接口部分:对外声明类的特征和行为。(类似于说明书)h文件中

2、实现部分:对内实现行为。(内部的具体实现)m文件

接口部分(h文件)

接口部分标志:@interface·······@end

作用:声明类的实例变量和方法,即特征行为

包含内容:类名、父类名、实例变量、方法等

实现部分(m文件)

实现部分标志:@implementation·······@end

作用:实现方法,即实现类的行为

例如:创建一个AudiCar类

类的接口部分:

类的实现部分如下:

类的调用部分如下:


      (五)常见的错误

(1)@interface  @end和@implementation  @end不能嵌套包含

(2)只有类的声明没有类的实现

(3)漏写@end

(4)两个类的声明嵌套(可以把顺序打乱)

(5)成员变量没有写在{}里

(6)方法的声明写在了{}里面

(7)在声明时对类的成员变量进行初始化,请注意成员变量不能脱离对象而独立存在

(8)方法无法像函数那样的调用

(9)成员变量和方法不能用static等关键字修饰,不要和c语言混淆

(10)类的实现可以写在mian函数后面,在使用之前只要有声明就可以

四、OC对象与函数

      OC对象与函数有着本质的区别:

(1)方法的实现只能写在@implementation··@end中,对象方法的声明只能写         在@interface···@end中间

(2)对象方法都以-号开头,类方法都以+号开头

(3)对象方法只能由对象来调用,类方法只能由类来调用,不能当做函数一样调用

(4)函数属于整个文件,可以写在文件中的任何位置,包括@implementation··@end中,但写在@interface···@end会无法识别,函数的声明可以再main函数内部也可以在main函数外部。

(5)对象方法归类\对象所有

(6)函数调用不依赖与对象

(7)函数内部不能直接通过成员变量名访问对象的成员变量

时间: 2024-10-16 12:54:28

开启Objective-C的相关文章

iOS开发核心语言Objective C —— 全部知识点总结

本分享是面向有意向从事iOS开发的伙伴及苹果产品的发烧友,亦或是已经从事了iOS的开发人员,想进一步提升者.假设您对iOS开发有极高的兴趣,能够与我一起探讨iOS开发.一起学习,共同进步.假设您是零基础.建议您先翻阅我之前分享的iOS开发分分钟搞定C语言系列,然后在開始Objective C语言的学习,假设您遇到问题也能够与我探讨.另外将无偿分享自己整理出来的大概400G iOS学习视频及学习资料,都是干货哦.能够新浪微博私信?关注极客James,期待与您的共同学习和探讨! ! 由于时间有限,每

Objective C block背后的黑魔法

前言 block在Objective C开发中应用非常广泛,我们知道block会捕获外部对象,也知道使用block要防止循环引用. "知其然而不知其所以然"是一件很痛苦的事情,那么block这套机制在OC中是如何实现的呢?本文通过从C/C++到汇编层面分析block的实现原理. Clang clang是XCode的编译器前端,编译器前端负责语法分析,语义分析,生成中间代码(intermediate representation ). 比如当你在XCode中进行build一个.m文件的时

刨根问底Objective-C Runtime

http://chun.tips/blog/2014/11/05/bao-gen-wen-di-objective%5Bnil%5Dc-runtime-(2)%5Bnil%5D-object-and-class-and-meta-class/ 刨根问底Objective-C Runtime(1)- Self & Super 刨根问底Objective-C Runtime(2)- Object & Class & Meta Class 刨根问底Objective-C Runtime(

开启Objective-C --- OC基础知识

一.Objective-C简述 Objective-C通常写作ObjC和较少用的Objective C或Obj-C,是扩充C的面向对象编程语言.Objective-C主要用于:编写iOS操作系统(如:iPhone.iPod touch.iPad 等苹果移动终端设备 )应用程序和Mac OS X操作系统应用程序的利器. Objective-C的流行当归功于iPhone的成功,因为Objective-C被用于编写iPhone应用程序. Objective-C是非常实际的语言.它是一个用C写成.很小的

Objective-C

1.Objective-C语言特性 2.static __block const 3.Object-C的内存管理 4.RunLoop 5.iOS消息传递机制 6.iOS程序生命周期 7.MVC设计模式MVVM 8.UIView CALayer Frame 与bounds 9.根类 NSObject 10.多线程简介 11.数据持久化 12.JSON和XML HTML 自定义报文 13.网络编程 HTTP TCP/IP Socket  ASI AFNetwork 14.AppStore上传 及远程

安装oracle11g 并且开启APEX 安装

1.Windows下Oracle安装图解----oracle-win-64-11g 详细安装步骤 - souvc - 博客园 oracle 11g 下载网址 一. Oracle 下载 官方下地址 http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html win 32位操作系统 下载地址: http://download.oracle.com/otn/nt/oracle11g/112010/

CentOS7和CentOS6怎样开启MySQL远程访问

CentOS6开启MySQL远程访问 1.开放MySQL访问端口3306 修改防火墙配置文件 vi /etc/sysconfig/iptables  加入端口配置      -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT 重新加载规则 service iptables restart   2.修改mysql库里的host 登录mysql: use mysql update user set host='%' w

让linux开机默认开启小键盘

linux默认开机不开启数字键盘numberlock,每次输入开机密码还得劳烦自己去点亮指示灯,让此灯开机自动点亮,需要一个软件才行,就是numlockx了,可以通过yum安装:yuminstall-ynumlockx在安装好之后可以讲下述语句写入/etc/rc.local中:if[-x/usr/bin/numlockx];then/usr/bin/numlockxonfi在这里,我们直接写一句:numlockx也可以,因为在终端中运行这一句就会把小键盘打开. 但是ubuntu里面没有此文件,解

zabbix开启web界面中文支持(中文乱码问题)

1.开启web界面中文支持 #vi /var/www/zabbix/include/locales.inc.php 将这一行修改为'zh_CN' => array('name' => _('Chinese(zh_CN)'),        'display' => true) 2.中文字体乱码问题 替换 /var/www/zabbix/fonts/DejaVuSans.ttf即可