在Java中,某些类需要使用new
关键字进行实例化。
如果我们使用new来实例化它们,那么只有eclipse
在对象之后显示其methods
作为建议。但是有些类只输入类名,然后输入类名。建议发生。
区别在哪里?特别是我正在谈论的课程是:
WebDriverWait
- 需要实例化
ExpectedConditions
- 不需要实例化。
答案 0 :(得分:0)
与其他帖子中提到的一样,此功能受static
关键字的约束。在面向对象编程中,我们有两种类型的变量/方法,即:
类级变量/方法在定义时由关键字static
作为前缀,而实例级变量/方法则不是。当我们想要定义在类的不同实例之间没有差异的事物时,我们使用静态变量/方法。我们可以创建类的实例并使用引用来调用静态方法/变量,但是按照惯例,这是避免的,因为静态变量/方法属于类而不是特定的实例。
您可以阅读有关静态关键字here的更多信息。
答案 1 :(得分:0)
其实很简单。
每当创建类的对象,即实例化类时,运行时系统就会为该对象/实例创建所有变量和类方法的副本,这些变量和方法称为实例成员。现在我们的对象将只使用这些复制成员。要访问这些成员,我们使用 obejctname.member
相比之下,有一种叫做类成员的东西。使用 static 关键字定义类成员。这意味着类将只创建这些成员的单个副本,而不管创建了多少个实例。要访问这些成员,我们使用 classname.staticmember 。
举一个简单的例子:
我们有一个名为 Person 的类。它有实例变量,如名称,年龄和实例方法,如run(),sleep()。类包含一个静态方法salary()。
public class Person {
//Instance Members
private String name;
private int age;
public void run() {
}
public void sleep() {
}
//Class Member
public static void salary() {
}
public static void main(String[] args) throws IOException {
Person person1 = new Person();
Person person2 = new Person();
//accessing instance members
String person1NameInMain = person1.name;
int person1AgeInMain = person1.age;
person1.run();
person2.sleep();
Person.salary(); // accessing static member
}
}
这就是全部。我希望这会有所帮助。
答案 2 :(得分:-1)
U应该通过java中的static关键字。
当你将方法定义为static时,不需要创建对象,你可以直接调用className.methodName()。
public class add{
public static class addTwoNumber(int a, int b) {
return a+b;
}
}
public class staticTest{
public static void main(String args[]) {
system.out.println(add.addTwoNumber(2,2));
}
}