Класс CircleArea
показывает синтаксис типичного определения класса. Этот класс хранит значение для радиуса круга и вычисляет область круга, когда вы запрашиваете эту информацию. CircleArea
также реализует методы к графику, отображению, и создайте объекты класса.
Чтобы использовать класс CircleArea
, скопируйте этот код в файл с именем CircleArea.m
и сохраните этот файл в папке, которая находится на пути MATLAB®.
classdef CircleArea properties Radius end properties (Constant) P = pi end properties (Dependent) Area end methods function obj = CircleArea(r) if nargin > 0 obj.Radius = r; end end function val = get.Area(obj) val = obj.P*obj.Radius^2; end function obj = set.Radius(obj,val) if val < 0 error('Radius must be positive') end obj.Radius = val; end function plot(obj) r = obj.Radius; d = r*2; pos = [0 0 d d]; curv = [1 1]; rectangle('Position',pos,'Curvature',curv,... 'FaceColor',[.9 .9 .9]) line([0,r],[r,r]) text(r/2,r+.5,['r = ',num2str(r)]) title(['Area = ',num2str(obj.Area)]) axis equal end function disp(obj) rad = obj.Radius; disp(['Circle with radius: ',num2str(rad)]) end end methods (Static) function obj = createObj prompt = {'Enter the Radius'}; dlgTitle = 'Radius'; rad = inputdlg(prompt,dlgTitle); r = str2double(rad{:}); obj = CircleArea(r); end end end
Создайте объект с помощью диалогового окна:
ca = CircleArea.createObj
Добавьте значение для радиуса и нажмите OK.
Запросите область заданного круга:
ca.Area
ans = 164.2202
Вызовите перегруженный метод графика:
plot(ca)
Код определения класса начинается с ключевого слова |
classdef CircleArea |
Задайте свойство |
properties Radius end |
Задайте свойство |
properties (Constant) P = pi end |
Задайте свойство |
properties (Dependent) Area end |
methods % Begin defining methods |
Метод конструктора класса |
function obj = CircleArea(r) if nargin > 0 obj.Radius = r; else obj.Radius = 0; end end |
Поскольку свойством |
function val = get.Area(obj) val = obj.P*obj.Radius^2; end |
Метод |
function obj = set.Radius(obj,val) if val < 0 error('Radius must be positive') end obj.Radius = val; end |
Класс |
function plot(obj) r = obj.Radius; d = r*2; pos = [0 0 d d]; curv = [1 1]; rectangle('Position',pos,'Curvature',curv) line([0,r],[r,r]) text(r/2,r+.5,['r = ',num2str(r)]) axis equal end |
Класс |
function disp(obj) rad = obj.Radius; disp(['Circle with radius: ',num2str(rad)]) end |
end
methods (Static) |
Класс |
function obj = createObj prompt = {'Enter the Radius'}; dlgTitle = 'Radius'; rad = inputdlg(prompt,dlgTitle); r = str2double(rad{:}); obj = CircleArea(r); end |
Конец
блока |
end end |