Java中,类不实例化就能调用方法吗?

初学Java不久,刚才在读Thinking in java时,发现一段代码很奇怪,P类可以不用实例化就直接调用方法,我感觉是需要先用new实例化一个对象再调用方法才对啊,哪位高手能指点一下?
*下面是书中的代码

//: com:bruceeckel:tools:P.java
// The P.rint & P.rintln shorthand.
package com.bruceeckel.tools;

public class P {
public static void rint(String s) {
System.out.print(s);
}
public static void rintln(String s) {
System.out.println(s);
}
} ///:~
你可以使用这个便捷工具来打印String,无论它是否需要换行(P.rintln( ))。
你可以猜到,这个文件的位置一定是在某个以一个CLASSPATH位置开始,然后接着是
com/bruceeckel/tools的目录下。编译完之后,你就可以用import语句在你系统
上的任何地方使用P.class文件了。
//: c05:ToolTest.java
// Uses the tools library.
import com.bruceeckel.tools.*;
import com.bruceeckel.simpletest.*;

public class ToolTest {
static Test monitor = new Test();
public static void main(String[] args) {
P.rintln("Available from now on!");
P.rintln("" + 100); // Force it to be a String
P.rintln("" + 100L);
P.rintln("" + 3.14159);
monitor.expect(new String[] {
"Available from now on!",
"100",
"100",
"3.14159"
});
}
} ///:~

Java中,类不实例化是可以调用方法的,这种方法叫做静态方法,也叫做类方法。

类的静态方法不属于类的对象,而属于类本身,在该类首次使用的时候加载到系统的方法区中,一般可以使用类名直接调用类的静态方法,而不需要实例化对象。由于静态方法并不属于对象,因此在静态方法中无法操作类的普通成员变量,只能操作类的静态成员变量。(因为普通成员变量依附于类的对象存在,而类的静态方法并不属于类对象,在类对象被实例化之前静态方法就已经存在,故在静态方法中操作普通成员变量,相当于在无对象的情况下对其中的成员变量进行操作,这是无意义的,同时也不符合面向对象的思想。)

至于静态方法有什么用,上面已经提到在静态方法中可以操作类的静态属性,而静态属性是类的属性,可以作为一次程序运行期间的全局变量来使用,因此我认为静态方法的主要作用就是对类中静态属性的初始化或者根据静态属性实现一定的业务逻辑。
温馨提示:内容为网友见解,仅供参考
第1个回答  2006-10-02
注意static 关键字.静态方法不依赖实例的状态,无需实例化.
调用一个静态方法就是“类名.方法名”,静态方法的使用很简单如你所示。一般来说,静态方法常常为应用程序中的其它类提供一些实用工具所用,在Java的类库中大量的静态方法正是出于此目的而定义的。本回答被提问者采纳

Java中,类不实例化就能调用方法吗?
Java中,类不实例化是可以调用方法的,这种方法叫做静态方法,也叫做类方法。类的静态方法不属于类的对象,而属于类本身,在该类首次使用的时候加载到系统的方法区中,一般可以使用类名直接调用类的静态方法,而不需要实例化对象。由于静态方法并不属于对象,因此在静态方法中无法操作类的普通成员变量,只能...

静态方法和实例方法的区别是什么
1、静态方法属于整个类所有,不需要实例化,可以直接调用。2、实例方法必须先实例化,创建一个对象,才能进行调用。3、静态方法只能访问静态成员,不能访问实例成员。调用方法分为静态方法和实例方法两种,静态方法通过类静态方法调用,而实例方法需要创建对象后,通过对象.实例方法使用。在使用上,实例方法内...

请问在java中为什么能不实例化Double类,就能直接调用其方法,如:double...
这个是一个静态方法,也就是说这个方法是属于类的,不属于对象。没必要实例化后去调用

Java 中为什么主类不实例化就能够运行程序
不错哈,有static关键字的方法叫静态方法,不用实例化成对象就可以被类调用,所以他也叫类方法,一般而言,方法都要显式地被调用,但有些方法不用你自己显式地调用,Java会自己调用,最典型的就是main方法了,这是大家都知道的,他是程序的入口。稍注意你就会发现还有paint方法也是不用显式调用的,这...

java中所说的类方法和静态方法一样吗?
当然不一样Java的类方法是要实例化才能调用!静态方法可以不用实例化直接通过类名就能调用!另外!它们在内存中的存储位置也不同!

JAVA中没有经过new实例化的对象可以调用该类的方法吗? 譬如 class Clas...
没有实例是无法调用类中定义的非静态方法的,非静态方法必须用 对象.方法(参数)的形式来调用 静态方法是可以在不创建对象的情况下直接调用到的,格式为 类名.方法(参数)诚如楼上说的,你这个排版,晕死了,就是贴到集成环境里也得排版好久 差不多理解你的问题了,你的疑问源自对基层的不熟悉和不...

java中的动态方法是需要实例化才能调用的。那为什么,变量也能调用方法...
修正下你说的问题,首先,一个对下没有实实例化时,可以调用其静态方法或静态变量(也叫类变量),所谓静态变量或静态方法就是使用static修士过后的变量或方法。否则编译器都通不过的。但是对于实例变量或实例方法,则必须实例化对象之后才能通过对象调用。String a=null,告诉解析器字符串a是null的,JVM...

java的servlet为什么不需要实例化就可以直接调用方法?
java的servlet的实例化与销毁都是由web容器控制的.一般在你第一次访问这个servlet会被创建.另外你图片中写的是静态方法里调私有方法, 自然报错, 因为静态方法执行时, 不一定创建了类.

java提供的类中的方法为什么可以直接调用啊
而你用的又是这个类,所以可以直接调用,就和你在自已写的类里调类本身的方法一样的。当然如果有些方法是静态的那么你也可以直接用静态方法的类名点方法名来调用这个方法,不用实例化这个类的对象,这个是JAVA本身的语言规范记住就好了。

java类体中的方法包含哪些分类
1. 实例方法:实例方法是属于对象的,它们在类的实例化后才能被调用。每个实例方法都有一个隐式的参数,即“this”,它代表调用该方法的对象。实例方法可以访问类中的实例变量和其他实例方法。例如:java public class MyClass { int x;\/\/ 这是一个实例方法 public void setX(int newX)...

相似回答