Ваше описание не очень хороший дизайн.
Переменные класса должны иметь инварианты класса, которые являются истинными до и после любого (и всех) вызовов метода. Порядок звонков не должен иметь значения. То, как вы описали это, звучит так, что будут случаи, когда это не будет верно, например, если m1 еще не вызывается и m2 - это.
Более того, с точки зрения дизайна, классы должны заключать в себе (скрывать) внутренние зависимости. Тот, кто использует классовые услуги (методы), не должен заботиться о порядке вызова, например.
Мой совет: вы должны указать (явно как комментарии) эти инварианты, а затем рассуждать о том, как вы оставляете их истинными (единственный раз, когда они могут быть ложными, это во время вызова метода). Это может помочь вам меньше зависеть от порядка звонков.
Это может привести к слиянию некоторого кода из методов или сделать m2 вспомогательной функцией, которая вызывается из m1 , но не вызывается извне.