我不知道如何恰当地表达‘财产属于主人’。
例如,我将班级定义为“学生”和“教师”
classdef student < handle
properties
name
homework
end
methods
function obj = student(name)
obj.name = name;
obj.homework= struct;
obj.homework.content='';
obj.homework.mark=[];
end
end
end
classdef teacher < handle
properties
collection_homework
end
end
A=student('A')
A.homework.content='A solution to a math problem'
B=teacher
我的问题是,根据我的设计意图,家庭作业是学生的财产,或者说‘A是他的家庭作业的所有者’。A把他的家庭作业‘发送’给B老师,所以家庭作业成为B的财产,但B不是A家庭作业的‘主人’。老师能做的就是批改作业,然后把作业还给学生。
但是当我试着把A的作业寄给B的时候,B给A的作业打分
B.collection_homework=A.homework % put A's homework into B's collection_homework
B.collection_homework.mark=100
我检查了A,但他的作业仍然是内容,而不是分数
A.homework
ans =
content: 'A solution to a math problem'
这意味着B的集合中的家庭作业不属于A。
除非我把“整个学生”放进老师的收藏中--家庭作业
B.collection_homework=A % put A into B's collection_homework
B.collection_homework.homework.mark=100
这次我可以让B给A的作业打分。检查一下
A.homework.marks
ans =
100
但这与我的设计意图背道而驰,因为A似乎成为了B的子属性。例如,B可以通过以下方式更改A的名称
B.collection_homework.name = 'C'
那么,代码应该是什么样子来实现‘A发送作业给B,B标记它并发送回A’呢?
1条答案
按热度按时间yqkkidmi1#
关键是要把家庭作业定义为另一门课
并改变“学生”的定义
改变“教师”的定义
现在试试看!
似乎学生和老师的作业是一样的。老师给它打分,学生收到它。