본문 바로가기
TIP/Java

[Java] Tips - 헷갈리는 내용 정리(length , length() 차이)

by SeolLab. 2023. 4. 1.
728x90

주의!! 

 

잘못 적은 블로그들을 많이 봤는데, length와 length()는 분명히 다르다.

 

 

 


 

 

length 

->배열의 길이를 알고자 할 때 사용. 

 

double[] array = new double[10];
System.out.println(array.length);             // 10 

 

 

length는 함수가 아니라 array(배열)의 property로, method(함수)가 아니다! 함수였다면 length() 형태와 같이 ()가 무조건 들어갈 수밖에 없다!! 

 

double[] array = new double[10]; 

에서 array는 Array Reference Variable인데, variable은 함수를 호출하지 못한다. 함수를 호출하는 건 객체 또는 클래스다. 

 

 

※(클래스 또는 객체는 static method와 static variable을 호출하고, 객체는 instance method와 instance variable을 호출한다. 주의해야 할 점은 클래스가 직접 instance method나 variable을 호출할 수는 없다는 점.)

참고로, static method와 variable은 보통 클래스에 의해 호출된다. 객체를 통해 호출되는 경우는 흔하지 않지만 다음과 같이 클래스를 이용해 객체를 정의하고 그 객체를 사용해 호출하는 식으로 사용가능하다. 아래 코드 참고

class MyClass {
    static void myStaticMethod() {
        System.out.println("This is a static method.");
    }
}

public class Main {
    public static void main(String[] args) {
        MyClass obj = new MyClass();
        obj.myStaticMethod(); // 객체를 통해 정적 메소드 호출
        MyClass.myStaticMethod(); // 클래스 이름을 사용하여 정적 메소드 호출
    }
}

 

 

 


 

 

length() 

-> 문자열의 길이를 알고자 할 때 사용. 

 

String stringsentence = "Hello world!";
System.out.println(stringsentence.length());  // 12(공백포함, !까지 총 12개 문자 개수 셈.)

 

 

반면 length()는 함수가 맞다. 이는 문자열의 길이를 알고자 할 때 사용하는 함수로, 

String stringsentence = "Hello world!";
System.out.println(stringsentence.length());  // 12(공백포함, !까지 총 12개 문자 개수 셈.) 

에서 stringsentence 라는 (String이라는 classname을 가지는 데이터 타입의) 객체가 호출한 함수다. 객체에 의해 호출되었으므로 instance method로 볼 수 있다. 

 

 

 

 


 

코드 참조

 

 

import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
	    
		double[] array = new double[10];
		System.out.println(array.length);             // 10 
		
		
		String stringsentence = "Hello world!";
		System.out.println(stringsentence.length());  // 12(공백포함, !까지 총 12개 문자 개수 셈.)
		
		
	    }
}

댓글