Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
变量可以在java语言中调用方法吗_Java - Fatal编程技术网

变量可以在java语言中调用方法吗

变量可以在java语言中调用方法吗,java,Java,我的问题是: java中的变量可以调用如下示例中的方法: private void test(Rabbit rabbit, byte[] key, byte[] iv, byte[] data) { byte[] crypt = rabbit.crypt(data.clone());} 正如我所知,数据是一个变量,它调用clone()方法。 是否有数据变量或编号。在本例中,数据可以调用方法clone,因为数据是JVM创建的byte[]类的对象,因为它是一个可以调用clone方法的对象

我的问题是: java中的变量可以调用如下示例中的方法:

private void test(Rabbit rabbit, byte[] key, byte[] iv, byte[] data) {

    byte[] crypt = rabbit.crypt(data.clone());}
正如我所知,数据是一个变量,它调用clone()方法。
是否有数据变量或编号。

在本例中,数据可以调用方法clone,因为数据是JVM创建的byte[]类的对象,因为它是一个可以调用clone方法的对象。

这里的真正问题似乎是Java数组对象是否支持
.clone()
方法

答案是肯定的。所有Java数组都实现了
Cloneable
,因此
.clone()
方法将正常工作。看


请注意,这将是一个“浅”克隆。这对于基本体并不重要,但对于对象而言,这意味着克隆将包含对与原始对象相同的对象的引用,而不是对这些对象的克隆

这里,
数据
变量的数据类型是数组。在Java中,数组被视为对象的类型。因此,您可以使用
data.length
data.clone()
作为有效语句


length
数组中的一个变量(类型为
int
),而
clone()
对象
类(Java中所有类的超类)的方法。

好吧……你看错了符号。简而言之,答案是“视情况而定。”

在Java中,有两种类型的东西:

  • 原语,仅保存原始数值(对于
    字符
    ,通常能够打印出来),以及
  • 对象,它不仅可以保存值,还可以执行方法调用和访问实例信息
data
实际上是一个
byte[]
,数组类型的特殊之处在于它们不是类的实例。也就是说,它有一些东西-
clone()
,以及它继承的
对象上的所有方法


本质上,您只能对对象调用方法,但不能对原语调用方法。

java中有两种类型:原语类型和引用类型。只能对引用类型的变量调用方法。