I don't understand the meaning of the keyword static when I import System class:
import static java.lang.System.*
I'm reading the book about Java and it's written there:
Any import declaration that doesn't use the word
staticmust start with the name of a package and must end with either of the following:
- The name of a class within that package
- An asterisk (indicating all classes within that package)
For example, the declaration import
java.util.Scanner;is valid becausejava.utilis the name of a package in the Java API, andScanneris the name of a class in thejava.utilpackage.Here’s another example. The declaration
import javax.swing.*;is valid becausejavax.swingis the name of a package in the Java API, and the asterisk refers to all classes in thejavax.swingpackage.
And I have the following code:
public class Addition {
   public static void main(String[] args) {
      double num;
      num = 100.53;
      num = num + 1000;
      // So when I want to import the whole package java.lang as written in the book, it doesn't work:
      // import java.lang.*;
      // or like this:
      // import static java.lang.*;
      // NetBeans in both cases doesn't see these abbreviated names `out` and throws errors. Why?
      out.print("The result is ");
      out.print(num);
      out.println(" .");
   }
}
And it works when I import this way:
import static java.lang.System.out;
import static java.lang.System.*
But doesn't work when I try do this:
import java.lang.System.out;
import java.lang.System.*
What's the meaning of the static keyword in this particular case?
And why import java.lang.*; doesn't import the whole package with System class in it?
 
     
     
     
    