本系列内容为《MATLAB面向对象编程–从入门到设计模式》学习笔记,特此说明。
public、protected和private权限
从面向过程到面向对象,最显著的区别是,把数据和函数捆绑在一起形成了类,数据变成了属性,函数变成了类的成员方法。
就数据而言,并不是所有被捆绑的数据都有必要提供给外部访问,所以需要对访问权限进行控制。
就程序设计而言,为了尽量避免一个类中的某个行为干涉同一系统中其他类,应该让类仅公开必须让外部知道的内容,而隐藏其他一切不必要的内容,这也叫封装。
Matlabt提供了关键词 “Access = private , protected , public”来声明哪些属性和方法是可以公开访问的、受保护的、或者不可以公开的,也就是私有的。
classdef SomeClass < handle
properties(Access = private) %类的私有属性
prop_private
end
properties(Access = protected) %类的保护属性
prop_protected
end
properties %默认情况下是公有(public)的属性
prop_public
end
methods(Access=private or protected or public)
function result = SomeFunction(obj)