如何计算构造函数被调用的次数?

时间:2020-09-23 01:57:40

标签: matlab class oop constructor

我在下面有此Python代码。下面是我尝试将其转换为MATLAB代码的尝试。我是import java.util.Scanner; import java.util.Queue; import java.util.LinkedList; public class BinarySearchTree<T extends java.lang.Comparable<? super T>> { private static class BinaryNode<T> { private T element; // The data in the node private BinaryNode<T> left; // Left child private BinaryNode<T> right; // Right child // Constructors BinaryNode( T theElement ) { this( theElement, null, null ); } BinaryNode( T theElement, BinaryNode<T> lt, BinaryNode<T> rt ) { element = theElement; left = lt; right = rt; } } private BinaryNode<T> root; //root node of the tree // Constructor public BinarySearchTree( ) { root = null; } /*************************************************** * FUNCTION isEmpty: isEmpty * * checks if the tree is empty * * INPUT PARAMETERS: none * * none * * OUTPUT: boolean * * true if the tree is empty, false otherwise * ****************************************************/ public boolean isEmpty( ) { return root == null; } private BinaryNode<T> findMin( BinaryNode<T> t ) { if( t == null ) return null; else if( t.left == null ) return t; return findMin( t.left ); } /*************************************************** * FUNCTION insert: insert * * inserts an item into the tree * * INPUT PARAMETERS: x * * x - the item to be added to the BST * * OUTPUT: none * * none * ****************************************************/ public void insert( T x ) { root = insert( x, root ); } /*************************************************** * FUNCTION insert: insert helper method * * inserts an item into the tree * * INPUT PARAMETERS: x, t * * x - the item to be added to the BST, subtree to be inserted in * * OUTPUT: BinaryNode<T> * * node to be set * ****************************************************/ public BinaryNode<T> insert( T x, BinaryNode<T> t ) { if( t == null ) return new BinaryNode<T>( x, null, null ); int compareResult = x.compareTo( t.element ); if( compareResult < 0 ) { t.left = insert( x, t.left ); } else if( compareResult > 0 ) { t.right = insert( x, t.right ); } else ; // Duplicate; do nothing return t; } /*************************************************** * FUNCTION insertList: Option 1 * * parses a string and insert the values contained in it * * INPUT PARAMETERS: csv * * csv - comma seperated list of integers * * OUTPUT: none * * none * ****************************************************/ public void insertList(String csv) { String[] inputValues = csv.split(",") ; // Numbers are seperated by comma as instructed for (String x : inputValues) { int y = Integer.parseInt(x); insert(y); } } } 的新手,我正在练习进行转换。 classdef的问题(想计算我调用构造函数的次数),并且希望得到有关如何纠正转换的反馈。

Python版本:

counter

我尝试进行MATLAB转换:

 class Test:
    counter = 0
    def __init__(self, id):
        self.id = id
        Test.counter += 1

1 个答案:

答案 0 :(得分:0)

我找到了解决方案

classdef Test
    properties
        id;
    end
    methods
        function self= Test(id)
            self.id = id;
        end
    end
    methods (Static)
        function c= counter
            persistent Count;
            if isempty(Count)
                Count = 1;
            else
                Count = Count + 1;
            end
            c = Count;
        end
    end
end