The 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 |
The |
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 |
The |
function obj = set.Radius(obj,val) if val < 0 error('Radius must be positive') end obj.Radius = val; end |
The |
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 |
The |
function disp(obj) rad = obj.Radius; disp(['Circle with radius: ',num2str(rad)]) end |
end
methods (Static) |
The |
function obj = createObj prompt = {'Enter the Radius'}; dlgTitle = 'Radius'; rad = inputdlg(prompt,dlgTitle); r = str2double(rad{:}); obj = CircleArea(r); end |
Конец |
end end |