将项目添加到Matlab类

埃塞姆

我定义了两个类:库和书。图书馆有名称和书籍。本书有一个名字和一个作者。我在图书馆课上有一个方法,可以将书添加到图书馆。他们如下

classdef library
properties
    name
    books=book.empty
end
methods 
    function self=library(val1)
    self.name=val1;
    end
    function addbook(self,item)
        self.books(end+1)=item;
    end
end 

结尾

和那本书

classdef book
    properties 
        author
        title
    end
    methods
        function self=book(val1,val2)
            self.author=val1;
            self.title=val2;
        end
    end    
end

现在我定义

lib1=library('Leib')

book1=book('A','T')

当我想使用我的addbook方法将这本书添加到我的书架中时,它不会出现问题。图书馆空无一人

lib1.addbook(book1)

lib1 = 

  library with properties:

     name: 'Leib'
    books: []

任何帮助将不胜感激。

Matlabgui

首先,您的addbook方法有错误-它不返回self,即

function self = addbook(self,item)
  self.books(end+1)=item;
end

您还看到了句柄类或值类之间的区别,请参见此处获取mathworks的说明。

要解决该问题,请执行以下操作:

 lib1 = lib1.addbook(book1);

或更改您的库类以从句柄类派生

classdef library < handle
   ...
end

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章