Welcome to Software Development on Codidact!
Will you help us build our independent community of developers helping developers? We're small and trying to grow. We welcome questions about all aspects of software development, from design to code to QA and more. Got questions? Got answers? Got code you'd like someone to review? Please join us.
Comments on What are the disadvantages of using static methods in Java?
Parent
What are the disadvantages of using static methods in Java?
I was using static method few moments ago. But I noticed that I was returning a variable using that static method. According to the article,
Static is a keyword that identifies the class-related thing. It means the given Method or variable is not instance-related but Class related. It can be accessed without creating the instance of a Class.
I think I can access the static method without caring of class, isn't it? Is there something special of static method? static method can helps to decrease amount of source code. So Is it better to use static method? Or is there any limit of it?
Post
I think I can access the static method without caring of class, isn't it?
No. A static method is still a class method, and you still care about the class. The difference is that static methods aren't used with an instance of a class (an object).
static method can helps to decrease amount of source code.
True. As you pointed out in comment (putting it here too for better visibility): import static com.classes.Car.numCars();
means that you can simply invoke it as numCars();
So Is it better to use static method? Or is there any limit of it?
Opinions differ. The main thing is that you can't access object members in a static method, only static members.
For example, you might have a Car
class, with a fuel
member and a drive()
method that makes fuel
go down. You might also have a private static int numCars
member, and a static printNumCars()
method.
When accessing your static method, you still care about the class. It's still going to be Car.numCars()
. numCars()
has no way to access the fuel
member, and that makes sense (which car's fuel would we be talking about?). On the other hand, "how many cars are there" isn't a property of any one specific car at all, it's a property of cars in general, as a whole category.
That's what static members are for - things that are relevant to the entire class, rather than any individual object.
1 comment thread