Java:一切都是一个对象

Java:一切都是一个对象,java,class,oop,Java,Class,Oop,让我们看一段非常简单的代码: public class MyProg { public static void main(String[] args) { System.out.println("hello world"); } } MyProg是一个类。我的问题是我们如何从这个类实例化一个对象?必须在任何类中的构造函数方法在哪里?是什么导致MyProg的行为与Java中的任何其他普通类一样 您可以创建MyProg: MyProg myProg =

让我们看一段非常简单的代码:

public class MyProg {

    public static void main(String[] args)
    {
         System.out.println("hello world");
    }
}

MyProg是一个类。我的问题是我们如何从这个类实例化一个对象?必须在任何类中的构造函数方法在哪里?是什么导致MyProg的行为与Java中的任何其他普通类一样

您可以创建MyProg:

MyProg myProg = new MyProg();
与其他任何类一样,这是一个完全有效的类。它只是没有任何方法,所以没有那么多功能

主类的特殊之处在于JVM被告知只运行main方法。有这样一个类是很常见的:

public class App {
    public static void main(String[] args) {
        App app = new App();
        // do stuff with app
    }
}

在这种情况下,main方法将首先实例化该类的对象。请注意,main始终是静态的,这将使它与对象分离,并使您在学习编写第一个Java程序时不必考虑对象。

您尚未创建该类的对象。如果没有提供构造函数,Java编译器将添加一个默认的无参数构造函数

有关每个JLS的默认构造函数的更多要点:

如果一个类不包含构造函数声明,那么会自动提供一个不带参数的默认构造函数。 如果该类被声明为public,那么默认构造函数将被隐式地赋予访问修饰符public。 如果类被声明为受保护,那么默认构造函数将被隐式地赋予受保护的访问修饰符。 如果类声明为private,则默认构造函数将隐式地指定访问修饰符private。 否则,默认构造函数具有由无访问修饰符暗示的默认访问权限

要实例化对象,您必须执行以下操作:

MyProg myProg = new MyProg();
新操作符通过为新对象分配内存并返回对该内存的引用来实例化类。新操作符还调用对象构造函数。

如果要创建此类的对象,可以编写新的MyProg。但是这样做没有多大意义,因为这个类不存储数据,也没有非静态方法;因此,它的一个对象将毫无用处

它的构造函数由编译器自动生成。但是,如果您不希望发生这种情况,您可以添加自己的构造函数


祝你学习Java好运。但我不认为询问堆栈溢出问题是最好的开始方式。如果您使用在线Java教程,或者投资一本书,可能会更好

编译器会自动为任何没有构造函数的类提供一个无参数的默认构造函数。要了解更多信息,请阅读:Stackoverflow不是Java书籍或教程的替代品。关于类和对象的任何章节都会回答您的问题。你的问题没有显示出任何研究成果。这个问题似乎离题了,因为它是关于学习Java的。这个问题似乎离题了,因为任何不太像样的Java书籍或教程都涵盖了这个问题。Java中并非所有东西都是对象。例如,基本类型:int、long、boolean。。。
MyProg myProg = new MyProg();