본문 바로가기

개발

Java - Object

728x90

Object 클래스는 모든 클래스의 최상위 클래스

가장 많이 사용되는 method - overriding 해서 사용

equals - 객체가 가진 값을 비교할 때 사용. 오버라이딩해서 기준을 정해줘야함

toString - 객체가 가진 값을 문자열로 반환

hashCode - 객체의 해시코드 값 반환

 

오버라이딩 Overriding 같은 이름을 가진 메서드를 다시 정의하여 사용 - (메소드) 덮어쓰기 정도로 생각

"메소드 오버라이딩" 이렇게 묶어서 해야 다른 오버로딩이랑 안헷갈린다.

 

import java.util.Objects;

public class Student {
	String name;
	int number;
	
	@Override
	public String toString() {
		return "Student [name=" + name + ", number=" + number + "]";
	}

	@Override
	public int hashCode() {
		return Objects.hash(number);
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Student other = (Student) obj;
		return Objects.equals(number, other.number);
	}

	
	public static void main(String[] args) {
		Student s1 = new Student();
		s1.number = 1;
		
		Student s2 = new Student();
		s2.number = 1;
		
		System.out.println(s1.hashCode());
		System.out.println(s2.hashCode());
		
		System.out.println(s1 == s2);
		
		System.out.println(s1.equals(s2));
		System.out.println(s1);
		
		/*
		 * 32
            32
            false
            true
            Student [name=null, number=111]
		 */
	}
}

 

https://programmers.co.kr/learn/courses/9/lessons/249

 

자바 중급 - Object와 오버라이딩

Object와 오버라이딩 Object클래스는 모든 클래스의 최상위 클래스 아무것도 상속받지 않으면 자동으로 Object를 상속 Object가 가지고 있는 메소드는 모든 클래스에서 다 사용할 수 있다는 것을 의미

programmers.co.kr

 

 

java.lang: import를 하지 않고 사용하는 기본 패키지

wrapper class: 8개의 기본 타입을 객체화 boolean > Boolean 

Object, String, StringBuffer, StringBuilder, System, Math

 

auto boxing

int i = 5;
Integer i2 = new Integer(5);
Integer i3 = 5 // auto-boxing

int i4 = i3.intValue();
int i5 = i3; // auto-unboxing

 

Math 생성자가 private이고 static method로 사용

 

<interface> Collection

+ add(Object) : boolean

+ iterator() : iterator

+ size() : int

 

<interface> Iterator

+ hasNext() : boolean

+ next() : Object

 

List 순서

+ get(int) : Object

 

Set 중복x

+ add(Object) : boolean

 

Map 키 중복x

+ get(Object) : Object

+ keySet() : Set - key에 중복x

+ put(Object, Object) : void

 

728x90