<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ --> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Object Oriented Programming (GNU Octave (version 5.1.0))</title> <meta name="description" content="Object Oriented Programming (GNU Octave (version 5.1.0))"> <meta name="keywords" content="Object Oriented Programming (GNU Octave (version 5.1.0))"> <meta name="resource-type" content="document"> <meta name="distribution" content="global"> <meta name="Generator" content="makeinfo"> <link href="index.html#Top" rel="start" title="Top"> <link href="Concept-Index.html#Concept-Index" rel="index" title="Concept Index"> <link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> <link href="index.html#Top" rel="up" title="Top"> <link href="Creating-a-Class.html#Creating-a-Class" rel="next" title="Creating a Class"> <link href="Audio-Data-Processing.html#Audio-Data-Processing" rel="prev" title="Audio Data Processing"> <style type="text/css"> <!-- a.summary-letter {text-decoration: none} blockquote.indentedblock {margin-right: 0em} blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} blockquote.smallquotation {font-size: smaller} div.display {margin-left: 3.2em} div.example {margin-left: 3.2em} div.lisp {margin-left: 3.2em} div.smalldisplay {margin-left: 3.2em} div.smallexample {margin-left: 3.2em} div.smalllisp {margin-left: 3.2em} kbd {font-style: oblique} pre.display {font-family: inherit} pre.format {font-family: inherit} pre.menu-comment {font-family: serif} pre.menu-preformatted {font-family: serif} pre.smalldisplay {font-family: inherit; font-size: smaller} pre.smallexample {font-size: smaller} pre.smallformat {font-family: inherit; font-size: smaller} pre.smalllisp {font-size: smaller} span.nolinebreak {white-space: nowrap} span.roman {font-family: initial; font-weight: normal} span.sansserif {font-family: sans-serif; font-weight: normal} ul.no-bullet {list-style: none} --> </style> <link rel="stylesheet" type="text/css" href="octave.css"> </head> <body lang="en"> <a name="Object-Oriented-Programming"></a> <div class="header"> <p> Next: <a href="GUI-Development.html#GUI-Development" accesskey="n" rel="next">GUI Development</a>, Previous: <a href="Audio-Processing.html#Audio-Processing" accesskey="p" rel="prev">Audio Processing</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html#Concept-Index" title="Index" rel="index">Index</a>]</p> </div> <hr> <a name="Object-Oriented-Programming-1"></a> <h2 class="chapter">34 Object Oriented Programming</h2> <p>Octave has the ability to create user-defined classes—including the capabilities of operator and function overloading. Classes can protect internal properties so that they may not be altered accidentally which facilitates data encapsulation. In addition, rules can be created to address the issue of class precedence in mixed class operations. </p> <p>This chapter discusses the means of constructing a user class, how to query and set the properties of a class, and how to overload operators and functions. Throughout this chapter real code examples are given using a class designed for polynomials. </p> <table class="menu" border="0" cellspacing="0"> <tr><td align="left" valign="top">• <a href="Creating-a-Class.html#Creating-a-Class" accesskey="1">Creating a Class</a>:</td><td> </td><td align="left" valign="top"> </td></tr> <tr><td align="left" valign="top">• <a href="Class-Methods.html#Class-Methods" accesskey="2">Class Methods</a>:</td><td> </td><td align="left" valign="top"> </td></tr> <tr><td align="left" valign="top">• <a href="Indexing-Objects.html#Indexing-Objects" accesskey="3">Indexing Objects</a>:</td><td> </td><td align="left" valign="top"> </td></tr> <tr><td align="left" valign="top">• <a href="Overloading-Objects.html#Overloading-Objects" accesskey="4">Overloading Objects</a>:</td><td> </td><td align="left" valign="top"> </td></tr> <tr><td align="left" valign="top">• <a href="Inheritance-and-Aggregation.html#Inheritance-and-Aggregation" accesskey="5">Inheritance and Aggregation</a>:</td><td> </td><td align="left" valign="top"> </td></tr> <tr><td align="left" valign="top">• <a href="classdef-Classes.html#classdef-Classes" accesskey="6">classdef Classes</a>:</td><td> </td><td align="left" valign="top"> </td></tr> </table> </body> </html>