JAVA 9강_3_Object 클래스

열라뽕따히·2024년 2월 25일

JAVA

목록 보기
57/79

Object 클래스

  1. java의 모든 클래스의 조상 클래스임
  2. 사용자가 정의한 클래스에 자동으로 상속이 됨
    ==> 단, extends 키워드를 사용하지 않은 클래스에만 상속이 됨

[Object 클래스의 주요 메서드]

  • toString( ) : 객체 자신의 정보를 문자열로 반환하는 메서드. 인스턴스에 대한 정보를 문자열로 제공할 목적으로 사용이 됨
  • getClass( ) : 객체 자신의 클래스 정보를 담고 있는 class 인스턴스를 반환하는 메서드
  • hashCode( ) : 객체 자신의 해쉬 코드를 반환하는 메서드
  • equals( ) : 객체 자신과 또 다른 객체가 같은 객체인지 알려주는 메서드
  • clone( ) : 객체 자신의 복사본을 만드는 메서드



=============================코드=============================

public class Object_01 {  // <<extends>> 생략된 것과 마찬가지! Object 

	public static void main(String[] args) {
		
		Object_01 object1 = new Object_01();
		
		System.out.println("toString() >>> " + object1.toString());  // 주소값이 나옴
		System.out.println("getClass() >>> " + object1.getClass());  // 클래스 정보(이름)가 나옴
		System.out.println("hashCode() >>> " + object1.hashCode());  // 주소값이 정수값으로 반환

	}

}

=============================실행=============================





toString() 메서드 재정의

  • Object 클래스에서 상속을 받은 메서드를 유용한 정보가 반환이 되도록 재정의 하는 것을 말함
  • 해당 클래스의 멤버변수가 정보를 가지고 있는데 가지고 있는 데이터에 올바른 값이 담겼는지, 혹은 틀린 데이터가 담겼는지 확인을 하고 싶은 경우에 toString() 메서드를 재정의하여 값을 확인할 수 있음



student 클래스 생성




=============================코드=============================

public class Student {
	
	// 멤버변수
	String name;
	String hakbun;
	String major;
	String phone;
	String addr;
	
	public Student() { }	// 기본 생성자
	
	public Student(String name, String hakbun, String major, String phone, String addr) {
		this.name = name;
		this.hakbun = hakbun;
		this.major = major;
		this.phone = phone;
		this.addr = addr;
	}	// 인자 생성자
	
	
	// source 클릭, generate toString() 클릭 
	// ==> 정보를 확인하는 용도로 많이 사용함, 밑의 void 메서드와 같이 출력값을 쓰지 않아도 돼서 편리
	@Override
	public String toString() {
		return "Student [name=" + name + ", hakbun=" + hakbun + ", major=" + major + ", phone=" + phone + ", addr="
				+ addr + "]";
	}

	// 평상시 쓰던 방식
	void getStudentInfo() {
		System.out.println("학생 이름 >>> " + name);
		System.out.println("학생 학번 >>> " + hakbun);
		System.out.println("학생 학과 >>> " + major);
		System.out.println("학생 연락처 >>> " + phone);
		System.out.println("학생 주소 >>> " + addr);
	}
	
}



메인메서드로 호출할 Student_02 클래스 생성



=============================코드=============================

public class Student_02 {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		System.out.println("학생의 이름, 학번, 학과, 연락처, 주소를 입력하세요");
		
		Student student = new Student(sc.nextLine(), sc.nextLine(), sc.nextLine(), sc.nextLine(), sc.nextLine());
		
		// 학생의 정보를 화면에 출력해보자
		//student.getStudentInfo();
		
		System.out.println(student.toString());
		
		sc.close();

	}

}

=============================실행=============================





String 배열 객체, Object 배열 객체




=============================코드=============================

public static void main(String[] args) {
		
		// String 배열 객체 생성
		String[] str = new String[4];
		
		str[0] = "홍길동";
		str[1] = "hong";
		str[2] = "서울시 구로구";
		//str[3] = 300;    자료형의 불일치로 error
		str[3] = "010-1111-1234";
		
		for(String s : str) {
			System.out.println("str 배열 요소 >>> " + s);
		}
		System.out.println();
		
		
		
		// Object 배열 객체 생성 (모든 자료형이 다 가능)
		Object[] obj = new Object[4];
		
		obj[0] = "세종대왕";    // 문자열(String) 자료형
		obj[1] = 135;        // 정수(int) 자료형
		obj[2] = true;       // boolean 자료형
		obj[3] = 3.4567;     // 실수(double) 자료형
		
		for(Object o : obj) {
			System.out.println("obj 배열 요소 >>> " + o);
		}
		

	}

=============================실행=============================

0개의 댓글