面向对象(类和对象)

来源:互联网 发布:java 将对象转成json 编辑:程序博客网 时间:2024/05/01 17:10

类和对象

定义类

面向对象的程序设计过程中有两个重要概念:类(class)对象(object,也称为实例,instance),其中类是某一批对象的抽象,可以把类理解成某种概念;对象才是一个具体存在的实体。
Objective-C中定义类需要分为两个步骤

接口部分:定义该类包含的成员变量和方法。实现部分:为该类的方法提供实现。

类接口部分的语法
类接口部分的语法


声明方法的语法格式
声明方法的语法格式

  • 方法类型标识符:该标识符要么是+,要么是-,其中,+代表该方法是类方法直接用类名调用即可;-代表该方法是实例方法,必须用对象才能调用。
  • 方法返回值类型:返回值类型可以是Objective-C允许的任何数据类型,包括基本类型、构造类型和各种指针类型。如果声明了方法返回值类型,则方法体内必须有一个有效的return语句,该语句返回一个变量或一个表达式,这个变量或者表达式的类型必须与此处声明的类型匹配。除此之外,如果一个方法没有返回值,则必须使用void来声明没有返回值。
  • 方法签名关键字:Objective-C的方法签名关键字由方法名、形参标签和冒号组成。方法命名规则与成员变量命名规则基本相同,但不需要以下画线开头,通常建议方法名以英文动词开头。除第一个形参外,Objective-C建议为后面的每个形参都指定一个“形参标签”,该形参标签可以很好地说明该形参的作用——虽然Objective-C允许省略形参标签,但这并不是一种好的编程习惯,因此建议保留形参标签。一旦在定义方法时制定了形参列表,调用该方法时就必须传入对应的参数值——谁调用方法,谁负责为形参赋值。

对象的产生和使用

定义变量的语法格式为:

类名 * 变量名;

创建对象的语法格式为:

[[类名] alloc] 初始化方法];一般都有一个默认的初始化方法:init

Objective-C调用方法的语法格式为:

[调用者 方法名:形参 形参标签:参数值...];

对象和指针

main()函数的动态存储区保存的指针变量并不是真正存储对象里的成员变量数据,而指针变量仅仅是指向该对象。
当一个对象被创建成功之后,这个对象将保存在堆内存中,Objective-C不允许直接访问堆内存中的对象,只能通过该对象的指针变量来访问该对象。也就是说,所有的对象都只能通过指针变量来访问他们。
如果堆内存里的对象没有任何变量指向该对象,那么程序将无法再访问该对象,Objective-C要求程序员释放该对象所占用的内存,否则就会造成内存泄漏。

self关键字

self关键字总是指向该方法的调用者(对象或类),当self出现在实例方法中时,self代表调用该方法的对象;当self出现在类方法中时,self代表调用该方法的类。
在局部变量和成员变量重名的情况下,局部变量会隐藏成员变量。为了在方法中强行引用成员变量,也可以使用self关键字进行区分。

例:self -> _name = _name;self -> _age = _age;

self作为对象或类本身的默认引用使用时,程序可以像访问普通指针变量一样访问这个self引用,甚至可以把self当成普通方法的返回值。

0 0
原创粉丝点击