JAVA 类与方法之间调用问题

来源:百度知道 编辑:UC知道 时间:2024/06/18 17:51:58
我想问一下,在同一个类下面,不创建一个新的对象的引用,直接就使用方法为什么不会错? 这是不是一个规定,因为我有时候在一个类开始之前就创建一个对象,然后在main函数里面再创建了一个对象,就会出现什么栈溢出的exception。那位高手能给我讲解一下。
在线等到起的!!!!!!

好乱,类内部的方法肯定可以直接互相调用。在类开始之前不能创建一个对象,你最好学习一下java的基本规范

首先,你在一个类里不创建对象可以直接使用它的方法,不会出错是因为在你调用这个方法时,其实Java的编译器,默认的帮你在调用的方法前面加上了一个对象。这个对象就是this.它表示当前对象。你也可以显示的用this来调用这个方法。所以无论你在哪里调用用一个非静态方法,都是要一个对象才能来调用的。

下面的问题:
package test;

public class Print {
static int i = 0;
public Print () {
System.out.println("first" + i++);
}
//这个程序里下面这句其实它并没有调用构造方法。你运行看看,并没有first0输出
//说明它没有调用构造方法。当你在main方法方法里加上
//Print p1 = new Print ();时。出现了at test.Print.<init>这个
//错误,这也许是main方法里的调用构造器,与这里的调用构造器的同时性
//导致的问题。
Print p = new Print ();

public static void main(String[] args) {
//Print p1 = new Print ();
System.out.println("ooooooooooooooooooooooooo");

}
}

一个很普通的方法调用另一个很普通的方法不会出错。因为他完全符合语法规范!

你在main里new了一个对象时,虚拟机会先调用你的构造器;如果这是在构造器里也有一个创建(也就是 new)对象的动作,它就会再次调用构造器;就这样形成死循环,当然会溢出;

如果解释的不好,你把代码片段拿出来,看看

1.同一个类内的方法是可以直接相互访问的