Documentation Center

  • Trial Software
  • Product Updates

Importing Classes

Related Information

See Packages Create Namespaces for information about packages.

Syntax for Importing Classes

You can import classes into a function to simplify access to class members. For example, suppose there is a package that contains a number of classes, but you need to use only one of these classes in your function, or perhaps even just a static method from that class. You can use the import command as follows:

function myFunc
   import pkg.cls1 
   obj = cls1(arg,...); % call cls1 constructor
   obj.Prop = cls1.StaticMethod(arg,...); % call cls1 static method

Note that you do not need to reference the package name (pkg) once you have imported the class (cls1). You can also import all classes in a package using the syntax pkg.*, where * indicates all classes in the package. For example,

function myFunc
   import pkg.* 
   obj1 = cls1(arg,...); % call pkg.cls1 constructor
   obj2 = cls2(arg,...); % call pkg.cls2 constructor
   a = pkgFunction();  % call package function named pkgFunction

Importing Package Functions

You can use import with package functions:

function myFunc
   import pkg.pkfcn 
   pkfcn(arg,...); % call imported package function

Package Function and Class Method Name Conflict

Suppose you have the following folder organization:

+pkg/timedata.m % package function
+pkg/@myclass/myclass.m % class definition file
+pkg/@myclass/timedata.m % class method

Now import the package and call timedata on an instance of myclass:

import pkg.*
myobj = pkg.myclass;

A call to timedata finds the package function, not the class method because MATLAB® applies the import and finds pkg.timedata first. Do not use a package in cases where you have name conflicts and plan to import the package.

Clearing Import List

You can not clear the import list from a function workspace. To clear the base workspace only, use:

clear import
Was this topic helpful?