以下类中每个表达式的术语是什么:
例如:
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"));
}
}
据我所知a
是字段,boo
是参数,b
和image
是局部变量。
使用的术语是什么
new Thread().sleep()
JOptionPane.showMessageDialog()
ImageIO.read()
new File()
InterruptedException
答案 0 :(得分:6)
new Thread()
是一个构造函数调用。您立即在实例上调用sleep
。这很奇怪,因为sleep
是一个静态方法,因此您只需Thread.sleep(1000)
进行静态调用(确保捕获并处理InterruptedException
。
JOptionPane.showMessageDialog()
是一个静态方法调用ImageIO.read()
。 new File()
是一个构造函数调用,它返回一个File
对象。
关于命名约定的一句话:字段名称(不是static final
常量),变量名称和方法名称应为camelCase
,而类名称应为PascalCase
。< / p>
答案 1 :(得分:1)
你可能还需要注意程序的顶部,你会发现String,Thread(你通常可能看不到那两个),JOptionPane,ImageIO和BufferedImage是从某个地方导入的。
为了更好地编程,您需要遵循命名约定,请查看:http://www.oracle.com/technetwork/java/codeconventions-135099.html
另外请将修饰符放在类变量和方法前面
答案 2 :(得分:1)
new Thread().sleep()
: 这是一个由两部分组成的表达。第一部分,即new Thread()
实际上在Java Language Specification (JLS)中记录为非限定类实例创建表达式:
类实例创建表达式有两种形式:
非限定类实例创建表达式以 关键字new。
可以使用非限定类实例创建表达式 创建一个类的实例,无论该类是否为 顶级(§7.6),成员(§8.5,§9.5),本地(§14.3)或匿名 class(§15.9.5)。
当您说Thread
时,您基本上会创建new Thread()
课程的实例。该语句的第二部分是.sleep()
,它被称为方法调用。
new File()
: 这也是一个非限定类实例创建表达式,就像表达式new Thread()
一样,但创建了File
类的实例,而不是Thread
类。
JOptionPane.showMessageDialog()
: 如果您查看JOptionPane.showMessageDialog方法的源代码,您会发现该方法是static
方法。此外,JLS解释了如何访问静态方法:
始终在不引用特定对象的情况下调用类方法。
JLS间接表示的是,您可以使用类的名称访问定义它的类之外的static
方法。
这里要理解的另一个重要事实是,有明确定义的Java命名约定。
XyzAbc
形式的任何文字时,请假设它是class
或interface
。例如,JOptionPane
和Image
是类名。 doSomething
,getSomething
,setSomething
,showMessageDialog()
等文字时,您应该知道它是一种方法。 将所有这些理解结合在一起,我们可以推断JOptionPane.showMessageDialog()
从static
调用JOptionPane
方法。
InterruptedException
: 如果您了解上述命名约定,那么您现在应该知道InterruptedException
是class
。它与Java
中任何其他类的不同之处在于它可以使用throw
子句抛出,然后使用try-catch
语句捕获。您可以在Oracle文档中阅读有关异常处理的更多信息。