주의!!
잘못 적은 블로그들을 많이 봤는데, 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개 문자 개수 셈.)
}
}
'TIP > Java' 카테고리의 다른 글
[Java] compiler V.S. interpreter (0) | 2023.04.01 |
---|---|
[Java] array element 순서 역순으로 뒤집기( reverse 함수 구현) (0) | 2023.04.01 |
[Java] 입력받기 Tips (0) | 2023.03.17 |
[Java] Practice - using method - emirp problem (0) | 2023.03.16 |
[Java] 가위바위보 게임 practice (0) | 2023.03.09 |
댓글