length เป็น Instance Variable ของ Array ส่วน length() เป็น Method ของ String Class
length (Array)
- Array เป็น Object ที่เก็บค่า จำนวนคงที่ (Fixed Size)
lengthคืน จำนวน Elements ใน Array- Initialize แล้ว เปลี่ยนขนาดไม่ได้ จึงเข้าถึง length ตรงได้
- ใช้ได้กับ Array เท่านั้น
ตัวอย่าง
public class ArrayLengthTest {
public static void main(String args[]) {
int array[] = {1, 2, 3, 4, 5, 6, 7};
System.out.println("Length of array: " + array.length); // 7
}
}
ผลลัพธ์
Length of array: 7
length() (String)
length()เป็น Method ของ String Class- คืน จำนวน Characters ใน String Object
- String Length เปลี่ยนแปลงได้ (ผ่าน Operations) จึงต้องเป็น Method
- String ใช้
char[]ภายในแต่ไม่ Expose ออกมา
ตัวอย่าง
public class StringLengthMethodTest {
public static void main(String args[]) {
String str = "Welcome to Tutorials Point";
System.out.println("Length of String: " + str.length()); // 26
}
}
ผลลัพธ์
Length of String: 26
ตารางเปรียบเทียบ
| คุณสมบัติ | length (Array) | length() (String) |
|---|---|---|
| ประเภท | Instance Variable (Field) | Method |
| ใช้กับ | Array (T[], Object[]) | String, CharSequence, StringBuilder, StringBuffer |
| Syntax | array.length | str.length() |
| ค่าที่คืน | Number of Elements | Number of Characters (UTF-16 Code Units) |
| Mutable? | Array Size Fixed | String Immutable, StringBuilder Mutable |
ข้อสังเกตเพิ่มเติม
- Collection.size() - ใช้กับ List, Set, Map (Interface Collection)
- StringBuilder/StringBuffer.length() - Method เหมือน String
- Java ไม่มี
.lengthสำหรับ Collection (ต้องใช้.size())
ความผิดพลาดพบบ่อย
// ERROR: Array ใช้ length()
int[] arr = {1,2,3};
int len = arr.length(); // Compile Error: length is not a method
// ERROR: String ใช้ length
String s = "Hello";
int len = s.length; // Compile Error: length is not a field