Object 클래스는 모든 클래스의 최고 조상이기 때문에 Object 클래스 멤버들은 모든 클래스에서 바로 사용이 가능하다.
Object 클래스는 멤버변수를 가지고 있지 않고, 단 11개의 메소드만 가지고 있다.
toString()
객체에 대한 정보를 문자열로 제공할 목적으로 정의된 메소드
객체의 정보를 제공한다는 것은 대부분의 경우 인스턴스 변수에 값들을 문자열로 표현한다는 뜻이다.
equals()
매개변수로 객체를 받아서 비교하여 그 결과를 boolean값으로 리턴하는 메소드
Object 클래스의 equals()는 객체가 가지고 있는 주소 값을 비교한다. 그래서 동위 객체는 무조건 false가 나온다.( 다른 주소 이기 때문에 ) * 동위 객체 : 갖고 있는 값만 같은 객체 주소 값이 아니라 인스턴스 내부의 값을 비교하고 싶으면( 동위 객체를 동일 객체로 보고 싶으면 ) equals() 메소드를 재정의 해야한다.
hashCode()
해싱기법에 사용되는 해쉬함수를 구현한 메소드
객체의 비교를 할 때 동일객체로 보려면 equals() 메소드 뿐만 아니라 hashCode() 메소드도 적절하게 오버라이딩을 해주어야 한다.
같은 객체라면 hashCode()를 호출했을 때의 결과값도 같아야 하기 때문이다.
우리가 만든 클래스에서 주소값이 아닌 내부의 값들로 잘 비교할 수 있도록 재정의 할 수 있어야 한다.
2. String 클래스
기존의 다른 언어에서는 문자열을 char 형의 배열로 다루었으나 자바에서는 문자열을 위한 클래스를 제공한다.
문자열을 위한 클래스를 제공한다. String 클래스는 문자열을 저장하고 이를 다루는데 필요한 메소드를 함께 제공한다.
"문자열1".split( "문자열2" )
"문자열1"을 "문자열2" 기준으로 나눠서 문자열 배열에 넣는다.
String.join( "문자열", 문자열배열 )
배열에 있는 문자열들을 "문자열"로 연결해서 하나의 문자열로 만든다.
. , / 등은 문자열이 아닌 식의 한 종류( 정규식 )으로 인식하기 때문에 [ ] 안에 넣어서 문자열이라는 것을 나타내줘야 한다.
"문자열1".indexOf( "문자열2" )
"문자열1"에서 "문자열2"를 찾아서 인덱스를 반환해준다.( int )
"문자열2"가 중복으로 있으면 먼저 앞에 나오는 것을 반환해준다.
없는 경우에는 -1를 반환해준다.
"문자열2"는 문자열이기 때문에 여러 글자도 넘길수 있다. 이때는 문자열이 시작되는 인덱스가 반환된다.
"문자열".charAt( n )
"문자열"의 n번째 글자를 반환해준다.( char )
"문자열".toUpperCase, "문자열".toLowerCase
"문자열".toUpperCase : 소문자를 전부 대문자로 바꾸어서 반환해준다.( String )
"문자열".toLowerCase : 대분자를 전부 소문자로 바꾸어서 반환해준다.( String )
실제의 값은 바뀌지 않는다.
"문자열".subString( n ), "문자열".subString( n, m )
"문자열".subString( n ) : n번째 글자부터 끝까지 잘라서 반환해준다.( String )
"문자열".subString( n, m ) : n번째 글자부터 ( m-1 )까지 잘라서 반환해준다.( String )