JAVA toString() 메서드에 대해서

2024. 7. 4. 16:41·JAVA

toString()메서드가 뭔지 알고싶으면, 그 전에 모든 클래스의 가장 최상위 클래스인 "Object" 클래스에 대해서 먼저 알아야한다. toString()메서드는 Object 클래스 안에 정의되어있기 때문이다.

 

JAVA에 제공하는 모든 클래스들의 계충 구조로 되어있고, 그 최상위로 올라가면 "Object"이라는 클래스가 존재한다.

 

우리가 일반적으로 생성하는 클래스도 "extends"로 직접 상속하지는 않지만 

자바 컴파일러는 일반 클래스를 "Object"하위 클래스로 자동 설정하게 되어 있다.

 

즉, 자바 라이브러리나 유저가 만든 모든 클래스는 

"Object" 클래스를 부모클래스로 상속 받아서 사용 하게 된다.

(출처): https://backback.tistory.com/m/68

 

이제, toString()메서드에 대해 알아보자.

toString()메서드는 객체가 가지고 있는 정보나 값들을 문자열로 만들어 리턴하는 메서드이다.

하지만 toString()메서드를 바로 출력하면 결과값이 신기하게 나온다.

아래는 그에 대한 예시 코드이다.

 

package class02;

//class 주민
//String 타입; // 무조건 있음
//String 이름; // 주민을 생성할때, 이름을 반드시 설정하면서 만들어야함
//hello()
//   행복함 / 무난함 / 슬픔 / 화남
//      중에서 1개 랜덤으로 출력함
//         ,야옹 / ,개굴
//action(String 도구)
//   잠자리채 >> 곤충채집
//   낚시대 >> 생선낚시
//   삽 >> 땅파기
//
//class 고양이 extends 주민
//
//class 개구리 extends 주민
//
//main()
//주민[] datas = new 주민[3];
//datas[i] = new 고양이("히죽");
//      new 고양이("1호");
//      new 개구리("레이니");
//      new 개구리("아이다");
//
//클래스(타입,자료형) : 주민, 고양이, 개구리
//객체(변수,값,실제 메서드 수행 주체) : 히죽,1호,레이니,아이다,...
//
//

class Citizen{
	String type; // 무조건 있음
	String name;// 주민을 생성할때, 이름을 반드시 설정하면서 만들어야함
	Citizen(String type, String name){
		this.type = type;
		this.name = name;
	}
	void hello(){
		//		 행복함 / 무난함 / 슬픔 / 화남
		//         중에서 1개 랜덤으로 출력함
		//            ,야옹 / ,개굴
		String [] emotion = {"행복함","무난함","슬픔","화남"};
		System.out.println(emotion[(int)(Math.random()*4)]);
	}

	void action(String equipment) {
		//		  잠자리채 >> 곤충채집
		//	      낚시대 >> 생선낚시
		//	      삽 >> 땅파기
		if(equipment.equals("잠자리채")) {
			System.out.println("곤충채집");			
		}
		else if(equipment.equals("낚시대")) {
			System.out.println("생선낚시");
		}
		else if(equipment.equals("삽")) {
			System.out.println("땅파기");
		}
		else {
			System.out.println("잘못 입력했습니다.");
		}


	}
//	@Override
//	public String toString() {
//		return "( " +this.name + ", "+this.type + " )";
//	}

}
class Cat extends Citizen{

	Cat(String name){
		super("고양이",name);
	}

	@Override
	void hello() {
		hello();
		System.out.println("야옹");
	}



}
class Frog extends Citizen{

	Frog(String name){
		super("개구리", name);
	}
	@Override
	void hello() {
		hello();
		System.out.println("개굴");
	}

}



public class Test01 {
	public static void main(String[] args) {
		//main()
		//주민[] datas = new 주민[3];
		//datas[i] = new 고양이("히죽");
		//		      new 고양이("1호");
		//		      new 개구리("레이니");
		//		      new 개구리("아이다");
		//
		//클래스(타입,자료형) : 주민, 고양이, 개구리
		//객체(변수,값,실제 메서드 수행 주체) : 히죽,1호,레이니,아이다,...
		Citizen [] datas = new Citizen[4];

		datas[0] = new Cat("히죽");
		datas[1] = new Cat("1호");
		datas[2] = new Frog("레이니");
		datas[3] = new Frog("아이다");
		
		System.out.println(datas[3]);
		
		
	}

}

 

일단 toString()메서드를 오버라이딩해서 재정의한 부분은 주석처리해놓았다.

위 코드를 동작시키면, 결과값은 아래와 같다.

class02.Frog@53bd815b

하지만 toString()메서드 오버라이딩 부분의 주석처리를 풀면, 또 다른 값이 출력된다.

( 아이다, 개구리 )

 

toString() 메서드는 Object 클래스에서 toString()이 이미 정의되어있지만, 위처럼 재정의해서 주로 사용한다.

'JAVA' 카테고리의 다른 글

두번째 (소규모) 프로젝트 - 포켓몬 게임  (0) 2024.07.07
JAVA 동적바인딩, toString() 예제 - 동물의 숲  (0) 2024.07.04
JAVA 오버라이딩 + 예제  (2) 2024.07.03
JAVA 상속, super() + 예제  (0) 2024.07.03
학생부 프로그램 만들기 (이어서)  (1) 2024.07.03
'JAVA' 카테고리의 다른 글
  • 두번째 (소규모) 프로젝트 - 포켓몬 게임
  • JAVA 동적바인딩, toString() 예제 - 동물의 숲
  • JAVA 오버라이딩 + 예제
  • JAVA 상속, super() + 예제
yn98
yn98
좌우명 : 여전할 것 인가, 역전할 것 인가? 백엔드 개발자가 되고싶은 역전하고 있는 개발자 꿈나무의 블로그입니다. 개발을 하면서 공부한 것들을 기록합니다. 24.06 ~
  • yn98
    개발 꿈나무
    yn98
  • 전체
    오늘
    어제
    • 분류 전체보기 (131)
      • Python (3)
      • 공부 (7)
      • DB (7)
      • JAVA (24)
      • JSP (9)
      • jQuery (2)
      • HTML (3)
      • Spring (20)
      • 웹 (4)
      • C (1)
      • Git (2)
      • 에러일기 (19)
      • 프로젝트 (6)
      • 책 (21)
        • 멘토씨리즈 자바 (14)
        • 2024 수제비 정보처리기사 (7)
      • 기타 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
    • Notion
  • 공지사항

  • 인기 글

  • 태그

    java
    MVC
    @repository
    2-layered 아키텍처
    오블완
    codeup 4891 : 행복
    이벤트 스케줄러
    수제비
    Di
    상속
    오버로딩
    멘토씨리즈 자바
    jsp
    객체지향
    티스토리챌린지
    html
    어노테이션
    생성자
    스프링 프레임워크
    정보처리기사
    @Component
    정처기 실기
    정보처리기사 실기
    정처기
    Spring
    @service
    DispatcherServlet
    recoverabledataaccessexception
    aop
    ViewResolver
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
yn98
JAVA toString() 메서드에 대해서
상단으로

티스토리툴바