Java 如何调用类/静态方法
在阅读时,我了解到,类方法是在与类同名的对象上调用的 我发现objective-c在a中也做了类似的事情。这里的类恰好是元类的实例 作为另一种主要的面向对象语言,我想知道Java是如何实现的 编辑Java 如何调用类/静态方法,java,class,oop,object,Java,Class,Oop,Object,在阅读时,我了解到,类方法是在与类同名的对象上调用的 我发现objective-c在a中也做了类似的事情。这里的类恰好是元类的实例 作为另一种主要的面向对象语言,我想知道Java是如何实现的 编辑 我感谢大家的回答。但我的问题不是如何调用类方法。很多答案都在回答这个问题。如果我的问题框架不好或给了你一个错误的想法,我深表歉意。静态方法或变量是使用类本身调用的。 e、 g 如果在类Employee中有一个静态成员作为public static Integer age,则使用Employee.age
我感谢大家的回答。但我的问题不是如何调用类方法。很多答案都在回答这个问题。如果我的问题框架不好或给了你一个错误的想法,我深表歉意。静态方法或变量是使用类本身调用的。 e、 g 如果在类
Employee
中有一个静态成员作为public static Integer age
,则使用Employee.age
方法也是如此。e、 g.Employee.paySalary()代码>
让我们考虑一个例子。
public class StaticDemo {
public static void methodToPrintSomething(){
System.out.println("printing any crap");
}
public static void main(String[] args) {
StaticDemo.methodToPrintSomething();
StaticDemo obj = new StaticDemo();
obj .methodToPrintSomething();
}
}
这里使用obj.methodToPrintSomething()
调用方法。您可以找到另一个有趣的语句obj.methodToPrintSomething()
。我们正在创建一个对象来调用静态方法,但这并不意味着我们正在对该对象调用methodToPrintSomething()
。由于它是静态的,所以在内部,语句obj.methodToPrintSomething()
将被视为StaticDemo.methodToPrintSomething()
使用类本身调用静态方法或变量。
e、 g
如果在类Employee
中有一个静态成员作为public static Integer age
,则使用Employee.age
方法也是如此。e、 g.Employee.paySalary()代码>
让我们考虑一个例子。
public class StaticDemo {
public static void methodToPrintSomething(){
System.out.println("printing any crap");
}
public static void main(String[] args) {
StaticDemo.methodToPrintSomething();
StaticDemo obj = new StaticDemo();
obj .methodToPrintSomething();
}
}
这里使用obj.methodToPrintSomething()
调用方法。您可以找到另一个有趣的语句obj.methodToPrintSomething()
。我们正在创建一个对象来调用静态方法,但这并不意味着我们正在对该对象调用methodToPrintSomething()
。由于它是静态的,所以在内部,语句obj.methodToPrintSomething()
将被视为StaticDemo.methodToPrintSomething()
在Java中,我们可以使用类名调用静态方法。如
ClassName.staticMethod(args);
请记住,它们是类级别的方法和变量,并且超出了任何对象的范围,因此它们被称为类名。
编译任何有错误的java程序时,您都可以通过JVM看到它的实时演示,因为main
也是一种静态方法
public class TradingSystem {
String description = "electronic trading system";
public static void main(String[] args) {
description = "commodity trading system";
}
}
无法对非静态字段描述进行静态引用
at TradingSystem.main(TradingSystem.java:8)
另请参见
和在Java中,我们可以用类名调用静态方法
ClassName.staticMethod(args);
请记住,它们是类级别的方法和变量,并且超出了任何对象的范围,因此它们被称为类名。
编译任何有错误的java程序时,您都可以通过JVM看到它的实时演示,因为main
也是一种静态方法
public class TradingSystem {
String description = "electronic trading system";
public static void main(String[] args) {
description = "commodity trading system";
}
}
无法对非静态字段描述进行静态引用
at TradingSystem.main(TradingSystem.java:8)
另请参见
和这里是参考:
类方法总是在不引用特定对象的情况下被调用
当Java虚拟机调用类方法时,它会根据对象引用的类型选择要调用的方法,对象引用的类型在编译时总是已知的,静态(早期)绑定。请参阅:
类方法总是在不引用特定对象的情况下被调用
当Java虚拟机调用类方法时,它会根据对象引用的类型选择要调用的方法,对象引用的类型在编译时总是已知的,静态(早期)绑定
静态方法的声明中包含静态修饰符,应该使用类名调用,而不需要创建类的实例,如
此外,静态方法是通过在其前面加上类名来调用的,例如Math.max(i,j);。奇怪的是,它也可以被一个对象限定,这个对象将被忽略,但对象的类将被使用
静态方法的声明中包含静态修饰符,应该使用类名调用,而不需要创建类的实例,如
此外,静态方法是通过在其前面加上类名来调用的,例如Math.max(i,j);。奇怪的是,它也可以被一个对象限定,这个对象将被忽略,但对象的类将被使用
在java中,静态方法属于类而不是该类的对象。因此,静态方法按类名调用,如下所示:
ClassName.staticMethod();
在java中,静态方法属于类而不是该类的对象。因此,静态方法按类名调用,如下所示:
ClassName.staticMethod();
在Java语言中,对类而不是对象调用静态方法,例如System.currentTimeMillis
。从概念上讲,这与Ruby、ObjC、Smalltalk等非常相似
与Ruby和Objective C不同,这些方法没有被调用的对象实例:Java字节码有一个调用静态方法的特殊字节码指令;此字节码指令不使用堆栈中的对象指针:
INVOKESTATIC "java/lang/System" "currentTimeMillis" "()J"
当使用反射时,静态方法的这种特殊处理表现为不需要指定调用该方法的对象。相反,您可以提供null
作为调用的目标。在Java语言中,对类而不是对象调用静态方法,例如System.currentTimeMillis
。从概念上讲,这与Ruby、ObjC、Smalltalk等非常相似
与Ruby和Objective C不同,这些方法没有被调用的对象实例:Java字节码有一个调用静态方法的特殊字节码指令;这个字节码指令是doe