728x90
반응형
java.lang 패키지
- 프로그래밍시 import 하지 않아도 자동으로 import 된다.
- 만ㅇㅎ이 사용하는 기본 클래스들이 속한 패키지이다.
- String, Integer, System 등이 있다.
Object 클래스
- java.lang.Object 클래스이다.
- 모든 클래스의 최상위 클래스이다.
- 모든 클래스는 Object에서 상속받고, Object 클래스의 메서드 중 일부는 재정의해서 사용할 수 있다.
- 컴파일러가 extends Object를 추가했다. (class Human extends Object)
toString() 메서드
- 객체의 정보를 String으로 바꾸어서 사용할 때 쓰인다.
- String이나 Integer 클래스는 이미 재정의 되어 있다.
- 클래스에서 toString()을 오버라이딩해서 사용할 수 있다.
public class Main{
public static void main(String[] args){
사람 사람a = new 사람("홍길동", 20);
사람 사람b = new 사람("홍길순", 21);
System.out.println(사람a); // 이름=홍길동, 나이=20
System.out.println(사람b); // 이름=홍길순, 나이=21
}
}
class 사람 extends Object{
String 이름;
int 나이;
사람(String 이름, int 나이){
this.이름 = 이름;
this.나이 = 나이;
}
@Override
public String toString(){
return "이름=" + 이름 + ", 나이=" + 나이;
}
}
equals() 메서드
- 두 인스턴스의 주소 값을 비교하여 true/false를 반환한다.
- 재정의하여 두 인스턴스가 논리적으로 동일함의 여부를 구현한다.
- 인스턴스가 다르더라도 논리적으로 동일한 경우 true를 반환하도록 재정의 할 수 있다.
class Main {
public static void main(String[] args) {
char c1 = 'a';'
char c2 = 'a';'
System.out.println(c1 == c2); // true
// String 은 char의 순서있는 조합이다.
String s1 = "하하";
String s2 = "하";
s2 += "하";
System.out.println(s1 == s2); // false
System.out.println(s1.equals(s2)); // true
}
}
public class Main {
public static void main(String[] args) {
Person p1 = new Person(13);
Person p2 = new Person(13);
System.out.println(p1);
System.out.println(p2);
System.out.println("p1 == p2 : " + (p1 == p2)); // 리모콘 끼리 비교, 당연히 false
System.out.println("p1.equals(p2) : " + p1.equals(p2)); // 객체끼리 비교, 하지면 여기서는 Person 클래스에 equals 메서드를 오버라이드 하지 않아서 false
// 즉 객체 비교를 하려면 해당 클래스에 equals 메서드를 오버라이드 해야 한다.
String s1 = "하하"; // 문장객체 생성됨
String s2 = "하하"; // 여기서는 기존의 객체의 리모콘만 리턴, 이유 : 메모리 절약
System.out.println("s1 : " + s1);
System.out.println("s2 : " + s2);
System.out.println("s1 == s2 : " + (s1 == s2));
System.out.println("s1.equals(s2) : " + s1.equals(s2));
String s3 = new String("하하"); // 재활용 x
String s4 = new String("하하"); // 재활용 x
System.out.println("s3 : " + s3);
System.out.println("s4 : " + s4);
System.out.println("s3 == s4 : " + s3 == s4);
System.out.println("s3.equals(s4) : " + s3.equals(s4));
}
}
class Person {
private int age;
public Person(int age) { this.age = age; }
}
728x90
반응형
'언어(Language) > Java' 카테고리의 다른 글
[Java] String 메소드 정리 (0) | 2023.03.03 |
---|---|
[Java] 자동형변환과 수동형변환 (0) | 2023.02.28 |
[Java] 인터페이스(interface) (0) | 2023.02.28 |
[Java] 추상 클래스(abstract class) (0) | 2023.02.28 |
[Java] 형변환(업캐스팅), 다운캐스팅 (0) | 2023.02.24 |