CircleArea
класс показывает синтаксис типичного определения класса. Этот класс хранит значение для радиуса круга и вычисляет область круга, когда вы запрашиваете эту информацию. CircleArea
также методы реализаций к графику, отображению, и создают объекты класса.
Использовать CircleArea
класс, скопируйте этот код в файл с именем CircleArea.m
и сохраните этот файл в папке, которая находится на MATLAB® path.
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 |