10.07.MON
ch9 java 패키지
1. Object 클래스
11개의 매소드가 정의되어있다.
*equals(Object obj)
equals 메소드
public boolean equals (Object obj) {
return (ths==obj);
}
참조변수값이 equals한지를 본당
Value v1 = new Value(10);
Value v2 = new Value(10);
v1.equals(v2) → false를 return
//내용을 바꿔주도록 오버라이딩 하면 ture로 변환가능
v1=v1;
//한 후에 하면,
v1.equals(v2) → true이다.
class Person { int id; public boolean equals(Object obj) { //equals의 재정의 if(obj!=null && obj instanceof Person) { return id == ((Person)obj).id; } else return false; } Person (int id) { this.id=id;} } in main() Person p1 = new Person(1234); Person p2 = new Person(1234); (p1=p2) → ? false (주소값이 다르기에) p1.equals(p2) → ? true (equals를 재정의하였다. )
|
*hashCode() 메소드
일종의 데이터를 검색하고 저장할 때 사용?
객체의 특정 값을 해쉬함수를 이용하여 특정 값으로 산출한다.
skip
*toString() 매소드
Object 클래스 내에서 정의 :
public String toString() {
return getClass().getName()+“@”+Integer.to.HexString(hashCode())’
}
클래스 이름 + 해쉬값으로 구성
class Card { . . . . }
void main() {
Card c1;
Sysytem.out.println(c1.toString());
→ Card@43e674
카드라는 것만 알수 있음.
카드내에서 재정의를 해봅세
class Card{ ... public String toString() { reutn “Kind:” + kind + “number: ” + number; } } void main() { Card c1 =new Card(“Spade”,7); System.out.printfln(c1.tostring); → Kind : Spade number: 7
|
2. String 클래스
String str1 = “abc”;
String str2 = “abc”
str1 == str2 → ? ture
(==은 주소를 비교한다. 따라서 false가 나와야하지만 . . .
str1.equals(str2) → ? true
(우리는 equals를 재정의하지 않았다. but String클래스내에서 equals가 재정의 되어있다.)
Stirng str3 = new String(“abc”);
String str4 = new String(“abc”);
str3 == str4 → ? false (두 개의 서로 다른 객체를 만들었기에 참조변수가 서로 다름 )
constant pool (상수 테이블) 이걸알아. . . .
상수는 상수 테이블 안에들어가있어서 기억됨.
내가 abc라는 상수를 를 여러번 써도 상수 테이블 안에서는 하나만 존재되어있음.
따라서 st1로 가르키나 str2로 가르키나 하나만 가르키기에 true!
str3.equals(str2) → true
빈 문자열 (empty string()
String s = null; Sting s = “”; int val = 100; String str5 = String.valueOf(value); →str5 = “100” int val5 = Integer.parseInt(str5); →val5 = 100; str5가 “100.23”이면 예외가 발생한다. 왜냐하면 100.23은 정수로 전환될 수 없기 떄문
|
index | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
char | H | e | l | l | o | . | j | a | v | a |
String str = “Hello.java”;
str.indexOf(‘.‘) → 5
str.substring(0,5) → “Hello”
//실제 가져오는 것은 0-4까지 갖고옴(주의)
str.substring(6,10) → “java”
str.length() → 10
3. StringBuffer 클래스
문자열의 변경가능하게 help!
4. Math클래스
-수학 계산에 유용한 메소드
-random() 매소드는 0~1.0 사이의 실수를 리턴
-Math.random()
-예로, int val = (int)(Math.random()*10);
-(int)(Math.random()*6+1);
-math.random 으로 5.99999...까지 돌아가는데 1을 더하고 강제 형변환으로 인해 소수점이 떨어져 나가면서 0~6까지 수가 리턴된다.
→0 ~ 9까지의 수를 리턴한다.
static double random() { . . . } 이 Math 클래스에 정의됨.
static long round (double a)
Math.round(5.67) → 6
5.Wrapper클래스
-기본형 변수도 객체로 다뤄야 하는 경우에 사용한다.
-그 외에
⦁매개변수로 객체를 요구할 때
⦁ 기본형 값이 아닌 객체로 저장해야 할 때
⦁객체간 비교가 필요할 때
-기본형 값을 객체로 변화하여 작업한다.
-이때 사용하는 것이 wrapper 클래스이다.
-8개 wrapper클래스 있음
⦁Integer j = new Integer(100);
Integer j2 = new Integer(100);
j == j2? false //
j.equals(j2)? true//제정의했음
싸는 클래스 모든 정수를 포장하여 싼다 !
어떤 숫자라도 형식상 객체로 표현된 경우가 있다.
기본형 문자 숫자....를 객체화할 필요가 있는 경우 이용.
|
class EX09Wrapper { public static void main(String[] args) { Integer i = new Integer(100); Integer i2 = new Integer(100);
if(i==i2) System.out.println("i == i2 : ture "); else System.out.println("i == i2 : false");
if(i.equals(i2)) System.out.println("i.equals(i2) : ture "); else System.out.println("i.equals(i2) : false");
System.out.println("i.toString()"); } }
|
|
---------- java¦ノ ---------- i == i2 : false i.equals(i2) : ture i.toString()
출력 완료 (0초 경과) |
'Studynote > Computer Science 12' 카테고리의 다른 글
10.14 제 10장 내부클래스 (0) | 2018.11.05 |
---|---|
10.07.제 9장 java패키지 실습 (0) | 2018.11.05 |
09.23 제 7장 객체지향프로그래밍2-2 (0) | 2018.11.05 |
09.16 제 6장 객체지향프로그래밍2 실습 (0) | 2018.11.05 |
09.16 제6장 객체지향프로그래밍2 (0) | 2018.11.05 |
댓글