如图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关键字实例化类就可以直接使用类里面的对象吗?的主要内容,如果未能解决你的问题,请参考以下文章