java 关于引用类的方法 请指导一下小弟吧。

来源:百度知道 编辑:UC知道 时间:2024/09/24 01:21:25
为什么第一个程序中可以直接引用类的方法,而第二个程序必须先建对象,才能使用类的方法?(两个例子都来自Java学习笔记)

例1: public class NumberDemo{
public static void main(String[] args){
System.out.println(Integer.toBinaryString(19));
}
}

例2: import java.util.Date;
public class NowTime{
public static void main(String[] args){
Date date = new Date();
System.out.println(date.toString());
}
}

有几点你需要搞明白;
1.static修饰和不加static修饰的含义
加static是类方法,不加是对象方法。
2。从内存分配来看,类方法是内存中只有一个备份;对象方法是多份。比如对象1,对象2,对象3,都要引用对象方法,那么编译系统怎么知道到底是那个对象要引用该方法呢,因此需要加对象限定。而static方法只有一份,为什么那个对象引用,那个对象引用都一样
3。用途不一样,。
static多用于共享资源和工具函数,对象方法用于处理特定的对象。static 是全局的,不加static是局部的。比如PI这个记号在整个系统都是代表3.14,因此我们把它写成Math.pi这个类变量,而p这个变量,有可能对象A代表1,对象B代表2,对象c代表NULL,因此需要指明在那个对象才有意义。

你例1用的是静态方法,也就是说static修饰的
例2用的调用的不是静态方法。

你去查看Integer类,它是static类,主要是里面的方法前都有static标志,有了这个标志的话就可以不用实例化就能直接调用该方法,
而Date对象里的toString方法是普通的方法,需要实例化后再调用,就是先建对象再调用,具体static的用法你可以上网再看看。

你去查看Integer类,它是static类,主要是里面的方法前都有static标志,有了这个标志的话就可以不用实例化就能直接调用该方法,

而 java.util.Date; 不是默认导入的包(既不是java.lang.*),所以要是想使用,你还是要先导入这个包,然后,建立个对象才能用