자바 - Object

지환·2023년 10월 5일
0

JAVA

목록 보기
16/39
post-thumbnail

출처 | https://www.youtube.com/watch?v=teABcIl_GBM&list=PLOSNUO27qFbtjCw-YHcmtfZAkE79HZSOO&index=30


Object 클래스(1/5)

  • Object 클래스는 모든 자바 클래스가 상속하는 최상위 클래스이다.

  • Object 클래스는 모두 11개의 메소드를 정의하고 있으며 이 메소드들은 자바의 모든 클래스가 갖는 기능이다.

  • 자바의 모든 클래스가 상속 받아 갖는 Object 클래스에 대한 목적과 기능을 이해하는 것이 중요하다.

  • Object 클래스를 통해 상속 받는 메소드의 의미를 이해해야 그 의미에 맞게 재정의 할 수 있다.


Object 클래스(2/5)

toString 메소드

  • toString() 메소드는 해당 클래스에 대한 설명을 문자열 타입으로 반환하는 메소드다.

  • 자바의 모든 클래스는 스스로에 대한 정보를 읽기 쉬운 형태로 제공 할 수 있으며 이 기능이 toString() 메소드이다.

  • 클래스를 정의할 때 그 클래스를 나타내는 주요 정보를 이용해 toString() 메소드를 재정의한다.


Object 클래스(3/5)

euqals, hashCode 메소드

  • 자바의 모든 클래스는 비교가 가능해야 하며, 비교는 해당 클래스의 속성을 기준으로 한다.

  • 자바에서 비교는 동일 비교동등 비교로 구분된다.

  • equals()메소드는 인스턴스 객체와 파라미터로 전달되는 객체를 같은지 비교한다.

  • 해시코드는 객체를 식별하는 정수값을 의미한다. hashCode() 메소드는 이 정수값을 반환하는 메소드다.


Object 클래스(4/5)

clone 메소드 (1/2)

  • Clone() 메소드는 인스턴스 객체의 복제를 위한 메소드로 해당 인스턴스 객체를 복사하여 그 참조값을 반환한다.

  • 클래스의 복제를 가능하게 하기 위해서는 Cloneable 인터페이스를 재정의 해야한다.

  • Cloneable 인터페이스를 구현 하지 않은 클래스의 인스턴스의 clone() 메소드를 호출하면 CloneNotSupportedException 예외가 발생한다.

clone 메소드 (2/2)

  • 객체의 복사는 단순히 같은 참조 정보를 복사하는 형태와 동일한 객체의 인스턴스를 복사하는 것의 차이를 이해해야한다.

  • Object 클래스의 clone() 메소드는 protected 접근 권한을 갖고 있으며 이를 재정의하는 클래스는 이를 public 접근 권한으로 재정의하여 어디서나 복제가 가능하도록 한다.

  • 객체의 복제는 얕은 복사(Shallow Copy) 깊은 복제(Deep copy)가 있다.

  • 내가 원하는건 카피값을 만들어서 새로운 작업을 하고 싶은건데, 만약에 name = "Edward"를 참조하는 새로운 필드가 존재한 상태로 clone하게 된다면 참조하는게 달라져 원본 값이 바뀐다.

  • 또 다른 필드가 있다고 가정한다면, 참조 변수가 다른 필드의 값을 가지고 있다면, 원본과 달라지게 된다.

profile
아는만큼보인다.

0개의 댓글