如图java代码里面,不需要用new关键字实例化类就可以直接使用类里面的对象吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如图java代码里面,不需要用new关键字实例化类就可以直接使用类里面的对象吗?相关的知识,希望对你有一定的参考价值。

Single.s=null前面不需要实例化类吗

声明为static的方法为静态方法或者叫类方法,声明static的变量为静态变量或者叫类变量。 类变量或者类方法不需要实例化一个对象就可以用类名加点来调用。

Single s = null ; 实际上只是声明了一个引用s,指定它为空,并没用new出来一个对象;

s = Single.getInstance();这句是关键,正如我上面所说的,这个getInstance()方法声明为Static,所以可以直接用类名加点加方法名字来直接调用也就是——————Single.getInstance();

而这个getInstance()方法返回的是类变量instance,可以看到第一句的 instance = new Single();
也就是说这个变量instance本身的值是新new出来一个Single对象的引用,指向了内存新new出来的一个single对象。

然后把这个引用的值给了原本为空的引用S,也就是说让S这个引用也指向了内存里新new出来的这个single对象
参考技术A 可以,在抽象类实例化对象的时候,是不能用new关键字去实例化对象的,那么我们就必须在此类中定义static方法, 用类名.静态方法去实例化对象。 参考技术B 那里有一句 private static single instance = new single();
你没看到吗,这里就是初始化的,他这个getInstance()是为了保证只有一个该类的实例,就是设计模式中经常用到的单例模式,你可以去看下java的设计模式类的书籍就了解为什么要这样了.
参考技术C 必须实例化才能使用类成员方法。否则报错。
s=Single.getInstance();已经在给s实例化了.
参考技术D 可以啊 定义static 就可以了

PHP面相对象:声明类和实例化类

一、类的声明

 1 //使用class关键词+类名+{}声明一个类
 2 class Demo { //类名首字母需要大写,命名遵守驼峰命名法
 3     var $name; //[修饰词] 变量名 
 4 
 5     function test(){
 6         echo "helloworld";
 7     }
 8 }
 9 
10 //实例化对象,使用new关键词
11 $t1 = new Demo;
12 
13 //对象的访问
14 $p1->test();

二、类在内存中的分配

  数据段 通常是指用来存放程序中已初始化且不为0的全局变量如:静态变量和常量;
  代码段 通常是指用来存放程序执行代码的一块内存区域,比如函数和方法;
  栈内存  存储占用相同空间长度并且占用空间小的数据类型的地方,比如说整型1,10,100,1000,10000,100000 等等,在内存里面占用空间是等长的,都是64 位4 个字节;
  堆内存 数据长度不定长,而且占有空间很大的数据类型的数据;

 

以上是关于如图java代码里面,不需要用new关键字实例化类就可以直接使用类里面的对象吗?的主要内容,如果未能解决你的问题,请参考以下文章

课后疑问

Java基础教程(11)--对象

PHP面相对象:声明类和实例化类

java里面为啥总要new,不new为啥不行?scanner scancer=new scan

php7实例化类有对象有两种方法

在java里面啥需要new一个物件