Reputation: 959
What is the terminology for each expression in the following class :
for e.g :
class Test {
int a=0;
void method(boolean boo){
String b="";
try
{
new Thread().sleep(1000);
}
catch(InterruptedException e){}
JOptionPane.showMessageDialog(null,"test");
BufferedImage image=ImageIO.read(new File("C:\\file.png"));
}
}
From what i know a
is a field, boo
is a parameter, b
and image
are local variables.
What is the terminology used for
new Thread().sleep()
JOptionPane.showMessageDialog()
ImageIO.read()
new File()
InterruptedException
Upvotes: 0
Views: 533
Reputation: 15212
new Thread().sleep()
:This is a two-part expression. The first part i.e, new Thread()
is actually documented in the Java Language Specification (JLS) as an unqualified class instance creation expression :
Class instance creation expressions have two forms:
Unqualified class instance creation expressions begin with the keyword new.
An unqualified class instance creation expression may be used to create an instance of a class, regardless of whether the class is a top level (§7.6), member (§8.5, §9.5), local (§14.3), or anonymous class (§15.9.5).
You basically create an instance of the Thread
class when you say new Thread()
. The second part of the statement is .sleep()
which is known as a method call.
new File()
:This is also an unqualified class instance creation expression just like the expression new Thread()
but creates an instance of the File
class instead of the Thread
class.
JOptionPane.showMessageDialog()
:If you take a look at the source code for the JOptionPane.showMessageDialog method, you will see that the method is a static
method. Also, the JLS explains how to access static methods :
A class method is always invoked without reference to a particular object.
What the JLS indirectly says is that you can access a static
method outside the class in which it is defined using the name of the class.
Another important fact to understand here is that there are well defined Java naming conventions.
XyzAbc
, assume that it is either a class
or an interface
. For example, JOptionPane
and Image
are class names. doSomething
, getSomething
, setSomething
, showMessageDialog()
.. you should know that it is a method. Putting all this understanding together, we can deduce that JOptionPane.showMessageDialog()
calls a static
method from JOptionPane
.
InterruptedException
:If you understood the naming conventions explained above, you should know by now that InterruptedException
is a class
. How it differs from any other class in Java
is that it can be thrown around using the throw
clause and then caught using a try-catch
statement. You can read more about exception handling in the Oracle documentation.
Upvotes: 1
Reputation: 549
You might also need pay attention to the top of the program, you will find that String, Thread (you usually may not see those two),JOptionPane , ImageIO and BufferedImage are imported from somewhere.
For being programming better, you need follow the naming convention please look at this:http://www.oracle.com/technetwork/java/codeconventions-135099.html
Also please put modifiers in front of your class variables and methods
Upvotes: 1
Reputation: 41281
new Thread()
is a constructor call. You are immediately calling sleep
on the instance. This is odd, since sleep
is a static method, so you can just do Thread.sleep(1000)
for a static call (making sure to catch and handle InterruptedException
.
JOptionPane.showMessageDialog()
is a static method call as is ImageIO.read()
. new File()
is a constructor call that returns a File
object.
Just a word on naming conventions: Field names (that aren't static final
constants), variable names, and method names should be camelCase
while class names should be PascalCase
.
Upvotes: 6