Even if its in the same class and though its not advisable, you are allowed to call the static method from a non-static method wherein the reverse case is not true.
It doesn't matter what type of method that is calling the static method is. The calling mechanism is the same. I can't think of a case where the method that gets called should ever care or need to know where the call is coming from.
If you are calling the static method from outsize the class that the static method belongs to, it is NAMEOFCLASS.NAMEOFSTATICMETHOD();
If the call comes from an object from the same class as the static method: NAMEOFSTATICMETHOD() works just fine. However, you can use the class name in the call if you want, like in the second paragraph.
"Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration."- Stan Kelly-Bootle
Did you mean " new MyClass().NonStaticMethod() "? This creates a new instance of MyClass, so if your constructor does some time consuming stuff, it will unnecessary decrease performance. At any rate, this is not a good coding style.