kişisel internet günlüğü
Matlab ile de diğer nesne tabanlı programlama dillerinde olduğu gibi sınıf yazılabiliyor. Fakat dikkat edilmesi gereken bir şey var. O da nesneyi oluşturan fonksiyonda (’class constructor’) alanları (’fields’) yazarken sıralarının önemli olması. Eğer
??? Error using ==> class Field names and parent classes for class myclass cannot be changed without clear classes.
hatası ile karşılaşırsanız, bahsettiğim sorunu yaşıyor olabilirsiniz. Çözümü de sırayı tüm yerlerde aynı yapmak.
Örneğin alttaki kodda bahsettiğim problemle karşılaşılır:
function p = myclass(a) if nargin == 0 p.field1 = ''; p.field2 = ''; p = class(p,'myclass'); elseif isa(a,'myclass') p = a; else % eğer a 'myclass' sınıfından değilse p.field2 = a; p.field1 = ''; p = class(p,'myclass'); end
Sorunu yaşamamak için de 9. ve 10. satırları yerdeğiştirmek gerekiyor.
Not: Yukarıdaki kod sadece bir örnek. Normalde yaacağınız sınıf çok daha karmaşıktır ve sırayı da farklı yapmış olabilirsiniz. Benim gibi 2 saat sorunu bulmak için uğraşıp da çözümünü bulunca “yuh be Matlab” demek zorunda kalmamanız dileğiyle…
Yorum Ekle