일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 무료호스팅
- php
- 클릭해제
- 무료제작
- 웹퍼블리셔
- 호스팅
- 퍼빌리셔
- 우체국 우편번호
- 무료 홈페이지
- 무료홈페이지
- 마우스오른쪽
- 홈페이지제작
- 마우스 오른쪽 버튼
- postcodify
- 자바스크립트
- 무료 호스팅
- 무료서버
- 글자뒤집기
- 복사방지
- 우편번호 API
- 새우편번호
- 무료
- 무료사이트
- 웹호스팅
- 문자열 뒤집기
- php호스팅
- 자바키워드
- 무료 홈페이지 제작
- 웹퍼블리싱
- 무료 웹 호스팅
Archives
- Today
- Total
Developer Factory
17. JAVA equals(),toString() 본문
StudentTest.java
package step01.exam03.test02;
public class StudentTest {
public static void main( String[] args) {
Student6 s1 = new Student6( "홍길동", 90, 100 , 90 );
System. out.println( "--- 안녕 ---");
}
public static void main05 ( String[] args) {
// getClass() 호출
Student s1 = new Student( "홍길동", 90, 100 , 90 );
Student5 s2 = new Student5( "홍길동", 90, 100 , 90 );
Class c1 = s1 .getClass (); // s1 인스턴스를 생성할 때 사용한 클래스 정보를 리턴
Class c2 = s2 .getClass (); // s2 인스턴스를 생성할 때 사용한 클래스 정보를 리턴
System. out.println( c1.getName());
System. out.println( c2.getName());
// 클래스 정보를 바로 꺼내기
// - 클래스 정보를 가리키는 틀별한 static 변수 'class'
Class c3 = Student .class;
Class c4 = Student5 .class;
System. out.println( c3.getName());
System. out.println( c4.getName());
if( c1 == c3){
System. out.println( "c1 == c3");
}
if( c2 == c4){
System. out.println( "c2 == c4");
}
}
public static void main04 ( String[] args) {
// hashCode() 재정의하기 전
Student s1 = new Student( "홍길동",90,100,90);
Student s2 = new Student( "홍길동",90,100,90);
System. out.println( Integer. toHexString(s1.hashCode ()));
System. out.println( s1);
System. out.println( Integer. toHexString(s2.hashCode ()));
System. out.println( s2);
// hascCode() 와 toString() 재정의
Student4 s3 = new Student4( "홍길동",90,100,90);
Student4 s4 = new Student4( "홍길동",90,100,90);
System. out.println( Integer. toHexString(s3.hashCode()));
System. out.println( s3);
System. out.println( Integer. toHexString(s4.hashCode()));
System. out.println( s4);
}
public static void main03 ( String[] args) {
// toString사용하기
Student2 s1 = new Student2( "홍길동",90,100,90);
// println() 함수는 파라미터로 넘어온 인스턴스에 대해 toString() 메서드를 호출한다.
// 그리고, toString()이 리턴한 문자열을 출력한다.
// toString()은 Object 클래스의 매서드이다.
// 출력형식 : fully qualified class name( Qname) @ hash code
// - hasc code : 인스턴스 식별 번호이다.
System. out.println( s1);
Student3 s2 = new Student3( "홍길동",90,100,90);
System. out.println( s2);
}
public static void main02( String[] args) {
// Student에서 재정의한 equals() 사용하기
Student2 s1 = new Student2( "홍길동",90,100,90);
Student2 s2 = new Student2( "홍길동",90,100,90);
if ( s1 == s2) System. out.println( "s1 == s2");
if ( s1.equals( s2)) System. out.println( "s1.equals(s2)");
}
public static void main01 ( String[] args) {
// Object로 부터 상속받은 equals()는 == 연산자와 동일하게 동작한다. 인스턴스가 같은지 비교한다.
Student s1 = new Student( "홍길동",90,100,90);
Student s2 = new Student( "홍길동",90,100,90);
if ( s1 == s2) System. out.println( "s1 == s2");
if ( s1. equals( s2)) System. out.println( "s1.equals(s2)");
}
}
2) Student2.java
package step01.exam03.test02;
// * Overriding(재정의)
// - 수퍼클래스의 메서드 중에서 서브 클래스에 맞지 않는 메서드를 재정의하기
// - 문법: 수퍼클래스의 메서드 signature(시그너처)와 동일하게 메서드를 선언한다.
// - method signature = 메서드 이름, 리턴타입, 파라미터 개수 및 타입
// 파라미터 이름은 상관없다.
// * 애노테이션
// - 컴파일러와 JVM에게 전달하는 아주 특별한 주석
public class Student2 /*extends Object*/ {
String name;
int kor;
int math;
int eng;
public Student2 (String name , int kor, int math, int eng) {
this.name = name ;
this.kor = kor ;
this.math = math ;
this.eng = eng ;
}
/* @Override 애노테이션
* - 컴파일러에게 정보를 전달
* - 메서드를 오버라이딩 한다는 것을 알림.
*/
@Override
public boolean equals (Object obj ) {
if ( this == obj )
return true ;
if ( obj == null)
return false ;
if ( getClass() != obj. getClass())
return false ;
Student2 other = ( Student2) obj;
if ( eng != other. eng)
return false ;
if ( kor != other. kor)
return false ;
if ( math != other. math)
return false ;
if ( name == null) {
if ( other. name != null)
return false ;
} else if (!name .equals(other .name ))
return false ;
return true ;
}
}
3) Student3.java
package step01.exam03.test02;
// * toString(재정의)
// - 인스턴스의 내용을 간단히 조사하고자 할 때 toString() 호출
// - System.out.println() 에서도 이 메서드를 호출한다.
public class Student3 /*extends Object*/ {
String name;
int kor;
int math;
int eng;
public Student3 (String name , int kor, int math, int eng) {
this.name = name ;
this.kor = kor ;
this.math = math ;
this.eng = eng ;
}
/* @Override 애노테이션
* - 컴파일러에게 정보를 전달
* - 메서드를 오버라이딩 한다는 것을 알림.
*/
@Override
public boolean equals (Object obj ) {
if ( this == obj )
return true ;
if ( obj == null)
return false ;
if ( getClass() != obj. getClass())
return false ;
Student2 other = ( Student2) obj;
if ( eng != other. eng)
return false ;
if ( kor != other. kor)
return false ;
if ( math != other. math)
return false ;
if ( name == null) {
if ( other. name != null)
return false ;
} else if (!name .equals(other .name ))
return false ;
return true ;
}
@Override
public String toString() {
return "[" + this.name + ":" + this .kor + "," + this.eng + "," + this .math + "]" ;
}
}
'Developer > Java' 카테고리의 다른 글
19. JAVA getClass() (0) | 2014.07.03 |
---|---|
18. JAVA hashcord() (0) | 2014.07.03 |
16_2. JAVA 문자열 다루기. 생성자, 오버로딩 (0) | 2014.07.03 |
16_1. JAVA 문자열 다루기. 생성자, 오버로딩 (0) | 2014.07.03 |
15. JAVA 인스턴스 변수와 클래스 변수의 이해 (0) | 2014.07.03 |