☕JAVA/🐣 강의 [JAVA]

[JAVA][기초] Object 클래스와 메소드

디카페인라떼 2022. 10. 12. 15:18

[기초] 시리즈는 본강의를 수강후 정리한 글들 입니다.

Java for Beginner - YouTube

 

Java for Beginner

[교재 link] https://github.com/namoosori/java-for-beginner/tree/master/doc Java for Beginner 강의에서 다루는 내용은 다음과 같습니다. - Java 개요 : Java 언어가 어떤 언어이고 Java 언어를 이용해 프...

www.youtube.com


Object 클래스
  •  모든 자바 클래스가 상속하는 최상위 클래스
  • 아무런 메소드를 가지지 않는 클래스를 생성한다면 자동으로 Object클래스를 상속 받음. 

  •  모두 11개의 메소드를 정의하고 있으며 이 메소드들은 자바의 모든 클래스가 갖는 기능임.
  •  자바의 모든 클래스가 상속 받아 갖는 Object 클래스 메소드에 대한 목적과 기능을 이해하는 것이 중요
  •  Object 클래스를 통해 상속 받는 메소드의 의미를 이해해야 그 의미에 맞게 재정의 할 수 있음.
    •  finalize :  생성자를 통해 초기화를 진행한 후 clean up 기능을 이 메소드를 통해 close 해야 했는데 현재는 다른 방법으로 진행하여 따로 사용하지않는 메소드
      (존재는 하지만 언젠가 사라질 메소드이기 때문에 사용하면 안됨)
    •  getClass : 어려움 / 자바의 reflection / 메모리에 올라간 인스턴스를 가지고 그 클래스를 유추해내는 방법 / 이런 게 있다..
toString 메소드

  • 해당 클래스에 대한 설명을 문자열 타입으로 반환하는 메소드
  •  자바의 모든 클래스는 스스로에 대한 정보를 읽기 쉬운 형태로 제공할 수 있으며 이 기능이 toString() 메소드
  • 클래스를 정의할 때 그 클래스를 나타내는 주요 정보를 이용해 toString() 메소드를 재정의
equals, hashCode 메소드
  • 자바의 모든 클래스는 비교가 가능해야 하며, 비교는 해당 클래스의 속성을 기준으로 함.
  • 자바에서 비교는 동일 (identity) 비교와 동등 (equality) 비교로 구분
    •  equals() 메소드는 인스턴스 객체와 파라미터로 전달되는 객체를 같은지 비교하여 그 결과를 반환.
      •  속성이 같으면 같은 객체로 보겠다 하려면 equals 와 hashCode 메소드를 재정의 해줘야함 (Generate)
      •  그냥 이러한 내용이 있다 정도로..
    •  해시코드 (hashCode)는 객체를 식별하는 정수 값을 의미하며 hashCode() 메소드는 이 정수 값을 반환하는 메소드 
clone 메소드

  • 인스턴스 객체의 복제를 위한 메소드로 해당 인스턴스 객체를 복사하여 그 참조값을 반환
  •  클래스의 복제를 가능하게 하기 위해서는 Cloneable 인터페이스를 구현해야 함
    •  Cloneable 인터페이스를 구현하지 않은 클래스의 인스턴스의 clone() 메소드를 호출하면 ClineNotSupportedException 예외 발생

  • 객체의 복사는 단순히 같은 참조 정보를 복사하는 형태와 동일한 객체의 인스턴스를 복사하는 것의 차이를 이해해야 함.
    • 같은 참조 정보를 복사하는 경우
      •  원본 인스턴스를 같이 참조하므로 복제본을 수정시 원본이 직접적으로 수정이 가해짐.
    •  객체의 인스턴스를 복사하는 경우
      •  참조 변수의 인스턴스까지 따로 복사가 되므로 원본에 수정이 가해지지 않음
        •  얕은 복제  (Shallow Copy)
        •  깊은 복제 (Deep Copy) = 완전한 복제
  •  Object 클래스의 clone() 메소드는 protected 접근 권한을 갖고 있으며 이를 재정의하는 클래스는 이를 public 접근 권한으로 재정의하여 어디서나 복제가 가능하도록 함.

 


2022.08.17 - [JAVA] - [JAVA] objects.equals() 정리

 

[JAVA] objects.equals() 정리

Objects.equals()  : 객체의 주소를 비교 즉, 같은 값을 가진 객체라고 하더라도 따로 생성되었다면 False. //객체 비교시 !! public class Main{ public static void main(String args[]){ Name name1 = new Nam..

wearegolden.tistory.com