Java 有些类需要实例化,有些不需要..为什么?
在Java中,有些类需要使用Java 有些类需要实例化,有些不需要..为什么?,java,eclipse,selenium,Java,Eclipse,Selenium,在Java中,有些类需要使用new关键字进行实例化 如果我们使用new实例化它们,那么只有eclipse在对象之后显示它们的方法作为建议。但有些类只需键入类名,然后键入类名。建议出现了 区别在哪里?具体来说,我所说的课程是: WebDriverWait-需要实例化 ExpectedConditions-不需要实例化。U应该在java中遍历static关键字 当您将方法定义为静态时,无需创建对象,您可以直接调用className.methodName() 与其他文章中提到的一样,此功能由stati
new
关键字进行实例化
如果我们使用new实例化它们,那么只有eclipse
在对象之后显示它们的方法作为建议。但有些类只需键入类名,然后键入类名。建议出现了
区别在哪里?具体来说,我所说的课程是:
WebDriverWait
-需要实例化
ExpectedConditions
-不需要实例化。U应该在java中遍历static关键字
当您将方法定义为静态时,无需创建对象,您可以直接调用className.methodName()
与其他文章中提到的一样,此功能由static
关键字控制。在面向对象编程中,我们有两种类型的变量/方法,即:
班级
实例级
类级变量/方法在定义时以关键字static
作为前缀,而实例级变量/方法则不是。当我们想要定义在类的不同实例之间没有差异的东西时,我们使用静态变量/方法。我们可以创建类的实例,并使用引用来调用静态方法/变量,但按照惯例,这是可以避免的,因为静态变量/方法属于类而不是特定实例
您可以阅读更多关于static关键字的信息。实际上它非常简单。
每次创建类的对象(即实例化类)时,运行时系统都会为该对象/实例创建所有变量和类方法的副本,这些变量和方法称为实例成员。现在,我们的对象将只使用这些复制成员。要访问这些成员,我们使用obejctname.member
相反,有一种称为类成员的东西。类成员是使用static关键字定义的。这意味着类将只创建这些成员的单个副本,而不管创建了多少实例。要访问这些成员,我们使用classname.staticmember
举个简单的例子:
我们有一个名为Person的班级。它有name、age等实例变量和run()、sleep()等实例方法。类包含一个静态方法salary()
就这些。我希望这能有所帮助。研究静态
和非静态
方法。这是实例方法和静态方法(类方法)之间的区别。我们是否可以在所有方法之前添加静态,以便易于编程?不。你为什么要这样做?1)Java中不是这样定义类的;2) addTwoNumber
不是静态的,因此您必须实例化一个add
来调用它。@AndyTurner哦,我忘了使用thanx来进行更正
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));
}
}
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
}
}