Objective-C语言-面向对象—封装

一、面向对象和封装

面向对象的三大特性:封装(成员变量)、继承和多态

在OC语言中,使用@interface和@implementation来处理类。

@interface就好像暴露在外面的时钟表面,像外界提供展示以及接口。@implementation就好像隐藏在时钟内部的构造实现,把具体的实现封装了起来。

二、Set方法

在开发过程中,考虑到安全性要求,我们一般不在成员变量名前面使用@public、@protected等关键字修饰,而是使用Set方法来为对象提供成员变量的值。在set方法的内部也可以对一些不合理的赋值进行筛选过滤。

Set方法的作用:为外界提供一个设置成员变量值的方法

命名规范:

(1)方法名必须以set开头

(2)Set后面跟上成员变量的名称,首字母大写

(3)返回值一定是void

(4)一定要接收一个参数,而且参数类型需要和成员变量的类型一致

(5)形参名不能喝成员变量名一样(苹果官方推荐成员变量名前加_以示区分)

Set方法的好处:

(1)不让数据暴露在外,保证了数据的安全性

(2)对设置的数据进行过滤

Set方法使用示例:

Set方法的声明:

Set方法的实现:

测试程序:

三、Get方法

Get方法的作用:为调用者返回对象内部的成员变量

命名规范:

(1)一定有返回值,返回值的类型和成员变量的类型一致

(2)方法名和成员变量名一样

(3)不需要接收任何参数

Get方法使用示例:

Get方法的声明:

Get方法的实现:

测试程序:

注意1:在实际的开发中,不一定set和get方法都会提供,如果内部的成员变量比如学生的学号这样的数据只允许外界读取,但是不允许修改的情况,则通常只提供get方法而不提供set方法。

注意2:成员变量名的命名以下划线开头,get方法名不需要带下划线,使用下划线开头有两个好处:(1)与get方法的方法名区分开来;(2)可以喝一些其他的局部变量区分开来,下划线开头的变量,通常都是类的成员变量。

四、Self关键字

Self是一个指针,谁调用了当前方法,self就指向谁

【出现在对象方法中,就代表着当前对象,出现在类方法中,就代表着当前类】

Self的用途:

(1)可以利用self->成员变量名访问当前对象内部的成员变量(仅在对象方法中)

(2)[self 方法名];可以调用其他的对象方法或者是类方法

五、练习

要求:设计一个成绩类

实现:

测试程序:

时间: 2024-08-01 22:40:02

Objective-C语言-面向对象—封装的相关文章

c语言面向对象编程

#include <stdio.h> #include <stdlib.h> /*  *  *   1.  简单实现模拟虚函数表实现c语言面向对象的设计  *   2.  为实现:  函数注册调用  *   3.            通过文件实现函数注册调用  */ //封装 typedef struct _Shape Shape; //模拟虚函数表 struct ShapeClass {     void (*construct)(Shape* self); //构造函数   

c语言实现封装、继承和多态

1.  概述 C语言是一种面向过程的程序设计语言,而C++是在C语言基础上衍生来了的面向对象的语言,实际上,很多C++实现的底层是用C语言实现的,如在Visual C++中的Interface其实就是struct,查找Interface的定义,你可以发现有这样的宏定义: #ifndef Interface #define Interface struct #endif C++在语言级别上添加了很多新机制(继承,多态等),而在C语言中,我们也可以使用这样的机制,前提是我们不得不自己实现. 本文介绍

Go语言开发(四)、Go语言面向对象

Go语言开发(四).Go语言面向对象 一.结构体和方法 1.结构体的定义 在结构体中可以为不同项定义不同的数据类型.结构体是由一系列具有相同类型或不同类型的数据构成的数据集合.结构体定义需要使用type和struct语句.struct语句定义一个新的数据类型,结构体有中有一个或多个成员.type语句设定了结构体的名称.结构体的格式如下: type struct_variable_type struct { member definition; member definition; ... mem

区块链技术语言(二十三)——Go语言面向对象:方法

封装是面向对象三大特性之一.封装的好处,一个是增加代码内聚性,就是将数据和对数据的操作封装在一起,提高可复用性和可维护性:还有就是信息隐藏,就是把不该暴露的信息藏起来,通过访问控制来隐藏数据,不被外界干扰.也就是说,一个对象就是一个封装了数据和操作这些数据的代码的逻辑实体.Go语言没有封装这个名词,但它通过方法实现了封装的特性. 一.Go语言方法 方法,本质上是一个函数.与普通函数的格式有一点不同,它在关键字 func 和方法名中间加入了一个特殊的接收器类型.其格式如下: 注: a. 接收者t的

python学习 面向对象封装

from collectoins import namedtuplePoint=namedtuple('point',['x','y'])t1=Point(1,2)print(t1.x)print(t1.y)没有方法的类属性不会发生变化    定义简单 不能改变面向对象封装私有属性!!!私有方法!!!用装饰器描述的几个方法@property !!!@classmethod!!@staticmethod! 封装:class Teacher:     def __init__(self,name,p

OC面向对象封装

OC面向对象封装 一.面向对象和封装 面向对象的三大特性:封装(成员变量),继承,多态 在OC语言中,使用@interface和@implementation来处理类. @interface就好像暴露在外面的时钟表面,像外界提供展示以及接口,@implementation就好像隐藏在时钟内部的构造实现,把具体的实现封装了起来. 二.Set方法 在研发过程中,考虑到安全性要求,我们一般不在成员变量名前面使用@public,@protected等关键字修饰,而是使用Set方法来为对象提供成员变量值,

面向对象 封装 、继承

构造函数: 构造函数 - 创建一个类的函数 每一个类都有构造函数,访问修饰符必须是public的,并且不需要写任何返回值,方法名与类名一致 自己写的类 - 用户自定义类型如果要使用自定义类型产生出来的  对象  必须有一个实例化的过程 实例化格式:类型名  ss = new 构造函数(); 访问修饰符 -  4个 public - 公共的,任何地方都可以访问,但是需要引用 命名空间 private - 私有的,类的内部才可以访问 internal - 内部的,默认的,程序集中可以访问,程序集就是

Java面向对象㈠ -- 封装

Java的面向对象有三大特征:封装.继承.多态.这里主要对封装进行讲解. 封装可以理解为隐藏一个类的成员变量和成员函数,只对外提供需要提供的成员函数. Java的封装主要通过访问权限控制符:private,默认,protected,public来实现.(这四个权限访问控制符的区别网上有很多,建议读者自行搜索学习,切记要亲自练习一下!)最明显的实现就是把类的成员变量私有(private),只能通过类的成员函数来进行访问,并且此时的成员函数公有(public).这就是著名的setter/getter

Atitit usbQb212 oo 面向对象封装的标准化与规范解决方案java c# php js

1.1. 封装性是面象对象编程中的三大特性之一  三个基本的特性:封装.继承与多态1 1.2. 魔术方法 预定义方法2 1.3. 魔术常量(Magic constants) 预定义变量2 1.4. 适用领域 js php java c#2 1.5. 构造函数 __construct( ) vs xxxCls()3 1.6. 析构函数名称必须是__destruct( )  finally()3 1.7. 私有属性 与工友属性3 1.8. $this指针3 1.9. __autoload() 类自动