new keyword in numberFormat class


import java.text.NumberFormat;

public class Main {

    public static void main(String[] args) {
	int R = 42;
    String fromR = Integer.toString(R);

    boolean Rb = true;

        long Rl = 100_000;
        NumberFormat formatt = NumberFormat.getNumberInstance();
        String formatted = formatt.format(Rl);
        //with commas instead of underscore


Open in new window


is this an existing class

why do I not need a NEW keyword

numberFormat object=new numberFormat()
Who is Participating?
CPColinConnect With a Mentor Senior Java ArchitectCommented:
NumberFormat is an abstract class, so you can't instantiate it using the new operator.
mccarlConnect With a Mentor IT Business Systems Analyst / Software DeveloperCommented:
And just to expand a little more on the above, the method "getNumberInstance" is a static method of the class. This means that it is a method of the class and not an object, and so you don't NEED an object to call that method. The "new" keyword creates an object of a class, but since you don't need the object, you don't need to use "new".
Jan LouwerensConnect With a Mentor Software EngineerCommented:
getNumberInstance() is what's called a Factory Method. If you'd like to know more information about how these work, there is a ton of information about this design pattern on the web.
Never miss a deadline with

The revolutionary project management tool is here!   Plan visually with a single glance and make sure your projects get done.

mccarlIT Business Systems Analyst / Software DeveloperCommented:

Do you have any further questions on this subject, or are you happy with the above comments?
rgb192Author Commented:
so it is static and what is class under it in the factory
Jan LouwerensSoftware EngineerCommented:
The exact implementation class is unknown. It's only known that it implements the NumberFormat interface (which is what you should be programming to, anyway).
All Courses

From novice to tech pro — start learning today.