Java 有些类需要实例化,有些不需要..为什么?

Java 有些类需要实例化,有些不需要..为什么?,java,eclipse,selenium,Java,Eclipse,Selenium,在Java中,有些类需要使用new关键字进行实例化 如果我们使用new实例化它们,那么只有eclipse在对象之后显示它们的方法作为建议。但有些类只需键入类名,然后键入类名。建议出现了 区别在哪里?具体来说,我所说的课程是: WebDriverWait-需要实例化 ExpectedConditions-不需要实例化。U应该在java中遍历static关键字 当您将方法定义为静态时,无需创建对象,您可以直接调用className.methodName() 与其他文章中提到的一样,此功能由stati

在Java中,有些类需要使用
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
    
        }
    }