Not really, no. In general, if you don't want a method to change class member values, you write it so it doesn't... and you can declare a method 'final' so it can't be overrridden in a subclass.

It depends on your exact requirements, but there are a variety of ways to get similar effects with mutable and immutable instances, although they tend to involve subclasses or wrapper classes.

Did you have some particular situation in mind?

Programs must be written for people to read, and only incidentally for machines to execute...
H. Abelson and G. Sussman