📜  MATLAB 中的用户定义类

📅  最后修改于: 2022-05-13 01:54:26.623000             🧑  作者: Mango

MATLAB 中的用户定义类

在本文中,我们将了解 MATLAB 中的用户定义类。

面向对象编程:

面向对象的程序设计包括:

  • 确定您要构建的系统或应用程序的组件。
  • 分析和识别模式以确定哪些组件被重复使用或共享特征。
  • 根据异同对组件进行分类

面向对象编程的基本元素是:对象、类、继承、抽象、多态和封装。其中对象和类是面向对象编程的两个基本原则。

类和对象:

对象是我们在我们周围看到的真实世界的实体。每个对象都有其属性和方法(特征和行为)。例如,考虑一辆汽车。汽车是具有颜色、大小、型号名称等属性或特征的对象。以及驱动、施加喇叭、施加中断等方法。

类是对象或对象集合的蓝图。我们知道对象包含一些特征和行为,也称为属性和方法。通过使用Class,我们可以使用属性和方法。用户自定义类是用户根据自己的需要定义的类。以下是创建用户定义类的语法:

句法:

classdef userdefinedClassName
   properties
   end
   methods
   end
end

classdef是 Matlab 中用于定义用户自定义类的关键字。需要注意的重要一点是文件名和类名应该匹配。在下面的示例中,我们将创建一个名为 geeksforgeeks.m 的新文件,并使用名称 geeksforgeeks 定义类。

示例 1:

Matlab
% MATLAB code for user-defined class 
classdef geeksforgeeks
  properties
    courses
    practice_session
    contest
  end
  methods
  end
end


Matlab
% MATLAB code for user-defined class 
classdef geeks
  properties
    courses
    practice_session
  end
  methods
  end
end


Matlab
% MATLAB code for create object in class
geeks = geeksforgeeks  //here geeks is an object
//dot notation to access the attributes
geeks.practice_session = "Microsoft Interview";
display(geeks.practice_session);
display(geeks.courses);


Matlab
% MATLAB code for object creation
geeks.courses = "DSA Preparation";
display(geeks.courses);


Matlab
classdef anime
  properties(constant)
    name
  end
  methods
    function obj = anime()
      obj.name = "One Piece"
    end
  end
end


输出:

=> 
courses: []
practice_session: []
contest: []

示例 2:

MATLAB

% MATLAB code for user-defined class 
classdef geeks
  properties
    courses
    practice_session
  end
  methods
  end
end

输出:

invalid classdef definition, the class name must match the filename

在上面的示例课程中, practice_session 是使用类属性初始化的类属性。

创建类对象:

一旦我们定义了类,我们就可以通过创建类的实例或对象来访问类属性。这是创建对象并使用其属性的语法。

句法:

object_name = classname
object_name.property

示例 3:

MATLAB

% MATLAB code for create object in class
geeks = geeksforgeeks  //here geeks is an object
//dot notation to access the attributes
geeks.practice_session = "Microsoft Interview";
display(geeks.practice_session);
display(geeks.courses);

输出:

Microsoft Interview
[](0x0)

示例 4:

MATLAB

% MATLAB code for object creation
geeks.courses = "DSA Preparation";
display(geeks.courses);

输出:

DSA Preparation

创建构造函数:

到目前为止,我们已经讨论了如何处理属性,现在我们将了解如何处理用户定义类中的方法。方法用于改变定义为类函数的类属性的行为。构造函数被描述为具有类名的确切名称的方法名。例如,在下面的示例中,anime() 是一个构造函数

创建一个新文件并用文件名命名类名。

示例 5:

MATLAB

classdef anime
  properties(constant)
    name
  end
  methods
    function obj = anime()
      obj.name = "One Piece"
    end
  end
end

输出:

ans= One Piece