我发现做一个数组的长度,当你写的东西,如:为数组列表或字符串长度和长度()有什么区别?
arrayone.length;
然而,对于这样的事情,你写上年底的支架,如以下对于字符串的长度:
stringone.length();
,这是什么的关键原因和你怎么知道什么时候把括号还是现在?
我发现做一个数组的长度,当你写的东西,如:为数组列表或字符串长度和长度()有什么区别?
arrayone.length;
然而,对于这样的事情,你写上年底的支架,如以下对于字符串的长度:
stringone.length();
,这是什么的关键原因和你怎么知道什么时候把括号还是现在?
.length;
直接访问字段构件。
.length();
调用方法(即访问者)来访问字段构件。
在String
的情况下,这是预料之中的,因为它是不可变的。
.length()是一个String类的方法,它返回字符串中的字符数。
.length将给出存储在数组中的元素的数量。
public class length
{
public static void main(String args[])
{
String x="test";
int a[]={1,2,3,4};
System.out.println(x.length());
System.out.println(a.length);
}
}
// output
4
4
唯一真正知道何时使用哪种体验的方法。尽管具有自动完成功能的IDE通常会在您不记得时帮助您。
大部分(并不总是)array.length,System.out和System.err是最常见的3,你会遇到的实际上是成员访问而不是方法调用。
Array.length
是Array
的属性,类似于变量引用。
ArrayList.size()
是对数组列表对象的实际方法调用。
Arrays
的处理方式不同于Strings
或ArrayLists
或其他任何可以用Java计算的东西。 Array
几乎是一个本地类型,它的长度在初始化后永远不能改变,所以不需要封装。长度变量可以直接暴露,没有副作用。
为什么String
使用方法,而不是一个变量的原因是因为它内部使用char[]
,它不希望公开揭露(对于不变性/封装),所以它包装在length()
方法的长度是可变的。 ArrayList
有一个size()
方法而不是一个length
变量是相同的原因。
唯一一次使用变量而不是方法是数组。其他一切都将是方法。也就是说,除了数组外,你会使用括号。
int[] myArray = new int[10];
String myString = "hello world!";
List<int> myList = new ArrayList<int>();
myArray.length //gives the length of the array
myString.length() //gives the length of the string
myList.size() //gives the length of the list
它很可能是字符串和数组被设计在不同的时间,因此最终使用不同的约定。一个理由是由于字符串在内部使用数组,所以使用了length()方法来避免重复相同的信息。最终,这只是一个不一致的演变,如果语言从头开始重新设计,那么演变肯定会得到解决。 :d
的主要区别是,在A)第一种情况下其例如int[]
,Object[]
,double[]
阵列类型,等..具有称为lenght和B)第二壳体是具有对象字符串公共字段一个称为length()
的函数,该函数可能被称为getLength()
或别的东西。数组类型的公共字段长度可能是C++处事方式的后遗症。
数组类型有以下几种:
length
是一个伪数据成员引用,只适用于(small-a)数组(忽略可定义实现该成员的类)。
其他一切都是类的对象,并且具有此概念的所有JDK类都定义了length()
或size()
实例方法。 (我希望他们一直保持一致并挑选其中一个,但那是桥上的水。)
不是。它并不是说它们是在不同的时间设计的。任何有'尺寸'的东西 – 2011-12-30 03:11:15