컴퓨터/Java
Java 언어에서 모든 class는 Object라는 클래스를 상속받아 만들어집니다. 프로그래머가 직접 명시하지 않을 뿐이지 소스코드가 컴파일되어 프로그램이 되는 과정에서 자연스럽게 상속이 되는 class입니다.
즉 우리가 만드는 모든 클래스는 기본적으로 Object 클래스가 상속되어 있습니다.
class Computer{}
class Computer extends Object{}
// 두 개념은 동일합니다.
Object 클래스는 프로그래머가 Java에서 class를 만들기 위한 기초를 정의한 클래스입니다. 따라서 class에 기본 요소들에 대한 정의가 되어있습니다.
Object 클래스 안에 다양한 메서드들이 정의되어있고 프로그래머가 만드는 클래스에서 이 Object 클래스를 만들 당시에 설정된 접근 제한 권한에 따라 다양한 메서드들을 사용하고 , 오버라이드 하여 재정의해서 프로그래가 원하는 데로 사용할 수 있게 됩니다. 정말 수많은 메서드들이 있고 다양한 곳에서 이 메서드들을 찾아볼 수 있습니다.
본문에서는 2가지 메서드에 대해서 알아보도록 하겠습니다.
이 메서드는 객체를 문자의 형태로 반환하는 메서드입니다. 보통 오버라이드 하여 객체를 표시하기 위해 사용합니다.
메서드의 원형은 다음과 같습니다.
String toString()
사용 예제
package Object객체;
class Computer{}
class PC
{
public String toString() {
// TODO Auto-generated method stub
return "이 인스턴스는 PC클래스로 만들어 졌습니다";
}
}
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Computer com = new Computer();
System.out.println(com.toString());
PC pc = new PC();
System.out.println(pc.toString());
}
}
이 메서드의 경우 인스턴스가 동일한지 여부를 확인하는 메서드입니다. 동일한 클래스로 만들어진 여러 인스턴스라도 각각의 생성된 인스턴스는 독립된 객체입니다. 하지만 얕은 복사의 형태로 변수명은 다를 수 있습니다. 이런 내용을 구분할 때 효과적입니다.
함수의 원형은 아래와 같습니다.
boolean equals(Object obj);
사용 예제
package Object객체;
class PC
{
public String toString() {
// TODO Auto-generated method stub
return "이 인스턴스는 PC클래스로 만들어 졌습니다";
}
}
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
PC pc = new PC(); // 인스턴스 생성
PC pc1 = new PC(); // 인스턴스 생성
PC pc2 = pc; // pc의 인스턴스를 얕은 복사
System.out.println(pc.equals(pc1));
System.out.println(pc.equals(pc2));
}
}
이런식으로 프로그래머가 정의하지 않은 메서드를 사용하거나 오버라이드 해서 재정의한다면 상위 클래스인 Object클래스에 있는 것입니다. 이런 내용들을 찾아보고 활용해서 좀 더 효율적인 소스코드를 만들어 보세요.
Java - 클래스 배열 (0) | 2021.08.08 |
---|---|
Java - Package(패키지) (0) | 2021.08.04 |
Java - 얕은 복사와 깊은 복사 (0) | 2021.07.21 |
Java - 오버로딩과 오버라이딩 (0) | 2021.07.19 |
Java - class의 상속의 개념(extends) (0) | 2021.07.16 |
91년생 공학엔지니어의 개발일지
TODAY :
YESTER DAY :
TOTAL :
Commnet