Эй, я сейчас изучаю классы.Классы Matlab, путаница
Я не думаю, что мое понимание классов - это 100%, чтобы быть честным, но я не могу хорошо понять это из заметок лекций. Если бы кто-нибудь мог дать мне какие-то намеки относительно того, что я делаю неправильно, это было бы хорошо оценено.
мне нужно, чтобы получить некоторые, что с входом:
man = Dumbo('Fred', 10);
fprintf('%s is %d years old.\n', man.name, man.age);
olderMan = man.olderBy(5); % Get a new older man
fprintf('Older %s is %d years old.\n', ...
olderMan.name, olderMan.age);
Чтобы получить выход:
Фред 10 лет. Старшему Фреду 15 лет.
До сих пор он у меня работает, чтобы произвести первую линию, но она не работает для второго, подходя с ошибкой, говоря:
Ошибка с помощью Дамбо/olderBy
Слишком много входные аргументы.
Вот мой код:
classdef Dumbo
%used to find details of a man and an older man
properties
name = 'noName'
age= 0
end
methods
function man=Dumbo(name,age)
man.name = name;
man.age = age;
end
function olderMan = olderBy(years)
olderMan.name = man.name
olderMan.age = man.age + years
end
end
end
Любые предложения в том, что я не прав, что я мог сделать вместо этого, и причины этого?
Спасибо!
Тщательное @rayryeng. Несмотря на то, что ваш код работает, чтобы дать результат, который требуется в вопросе OP, 'oldMan' не (который, как мне кажется, можно ожидать) является объектом класса' Dumbo', это структура. Вы можете поместить строку 'oldMan = man;' перед изменением имени и возраста. –
@SamRoberts очень и очень верно. Я не обратил на это внимания. Я изменю сообщение, когда смогу. Большое спасибо за определение! – rayryeng