Java初学:如图,这是在创建对象,还是在定义成员变量?貌似这二者的格式差不多

图片说明

Y b=new Y();这一个过程叫做初始化,初始化其实是分为两步,第一步叫做声明,第二部叫做赋值,这两部可以分开,但是顺序不能乱。比如你可以直
接在成员变量里声明Y b;然后在构造方法中赋值b=new Y();

这是创建对象,类似于c++中指针对象的创建,在Java中创建一个对象是使用new关键字,new+类的构造函数。

你上边的Y b = new Y() 其实是实例化类Y 而成员变量是自己定义的变量 例如:String a = "abc"; 这是自己定义的成员变量

首先你的问法可能会误导后面回答的人,这个是在类中先定义了成员变量,在类实例化时,对象引用b会获得初始化的实例new Y().
##其实我更加正确的理解是所有的成员变量都会被统一初始化为null,进而进行对象的初始化b=new Y().不明白可以看看Thinking in Java的相关章节

个人感觉,Y b= new Y(); 实际上做了 两部; 1 是 声明了一个成员变量,2 是 为它 赋值了 其中 new Y() 是创建了 对象,存放在了 堆区;
可以分开来做 Y b=null; b=new Y();

Y b = new Y();
定义一个句柄,然后让他指向新创建的Y这个对象。

下面再说一下成员变量,成员一词你要理解,就是定义了自己
的对象,然后可以 点(.)出来的东西。

这个b就是他的成员,所以定义成员变量就是初始化,创建对象就是在赋值,能明白吗?

创建对象是创建对象,定义成员变量是定义成员变量,那怎么可能一样?