[ Object 클래스의 메서드 ]
- equals : 같은 대상인지 아닌지 boolean 타입으로 결과를 리턴
- toString : 참조값 호출
- hashCode : 해쉬코드 호출
- toHexString : 해쉬코드를 16진수 값으로 변환
|
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
package day13;
public class ObjectEx1 { // 항상 뒤에 extends object가 생략
public static void main(String[] args) {
Object obj1 = new Object();
Object obj2 = new Object();
// 출력
System.out.println("obj1 : " + obj1);
System.out.println("obj2 : " + obj2);
if(obj1 == obj2) {
System.out.println("동일 객체");
} else {
System.out.println("다른 객체");
}
System.out.println("---------------------------");
// obj1 = obj2;
if(obj1 == obj2) {
System.out.println("동일 객체");
} else {
System.out.println("다른 객체");
}
System.out.println("---------------------------");
// 같은 대상인지 아닌지 boolean 타입으로 결과를 리턴하는 메서드
if(obj1.equals(obj2)) {
System.out.println("동일 객체");
} else {
System.out.println("다른 객체");
}
System.out.println("obj1 : " + obj1);
System.out.println("obj1 : " + obj1.toString());
// toString : 참조값 호출
Class c = obj1.getClass();
String name = c.getName();
// 클래스 이름 + '@' + 16진수(해쉬코드 값)
System.out.println(obj1.hashCode()); // hashCode();
// 해쉬코드를 16진수 값으로
System.out.println(Integer.toHexString(obj1.hashCode()));
System.out.println(name+'@'+Integer.toHexString(obj1.hashCode()));
}
}
|
cs |
[ String 클래스의 메서드 ]
- concat : 문자열 연결
- indexOf : 특정 문자의 위치를 리턴
- length : 문자열의 길이
- charAt : 지정한 숫자의 단일 문자 값을 반환
- substring : 문자열의 부분집합
|
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
package day13;
// import java.lang.*
// 위가 생략 > lang 밑의 모든 것이 import 되어 있음
// ObjectEx1 상속
public class StringEx1 {
public static void main(String[] args) {
// char[] c = {'j', 'a', 'v', 'a'};
// String str1 = "java"; // primitive type처럼..
String str1 = new String("java");
String str2 = new String("java");
if(str1 == str2) {
System.out.println("동일 객체");
} else {
System.out.println("다른 객체");
}
System.out.println("-----------------------");
// Object 클래스 : equals() : 동일객체인지 참조값을 비교
// String 클래스 : equals() : 내용이 동일한지 여부를 리턴 (Override : Object)
if(str1.equals(str2)) {
System.out.println("O");
} else {
System.out.println("X");
}
System.out.println("--------------------------");
System.out.println("str1 : " + str1); // str1.toString()을 호출
System.out.println("str1.toString() : " + str1.toString());
// Object 클래스의 toString() 메서드를 Override했던 메서드
// String 클래스의 참조값 확인
System.out.println(str1.getClass().getName()+
'@'+Integer.toHexString(str1.hashCode()));
// 클래스지만 primitive type처럼 사용할 수 있는 예외적인 클래스 : String
// char[] ==> 불편..
// String
// equals : override
// toString : override
// 둘 다 원래 의미와 다르게 오버라이드 되어 쓰이고 있음
String str3 = "java";
String str4 = "java";
// 내용이 같으면 같은 값을 가르키게 됨
if(str3 == str4) {
System.out.println("동일 객체");
} else {
System.out.println("다른 객체");
}
str4 = "hello";
System.out.println("str3 : "+str3);
System.out.println("str4 : "+str4);
String str = "";
for(int i = 0; i<5; i++) {
str += "*";
System.out.println(str);
}
}
}
|
cs |
|
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
|
package day13;
import java.util.Arrays;
public class StringEx2 {
public static void main(String[] args) {
String str = "java oracle";
// 4번째 문자가 무엇인지 가져오기
char ch = str.charAt(3);
// 4번째 문자를 캐릭터 값으로 리턴
System.out.println("4번째 문자 : "+ch);
// 문자열 연결 : concat
String str2 = "월요일 ";
String str3 = "화요일 ";
String str4 = str2.concat(str3);
System.out.println("str4 : "+str4);
String str5 = "수요일 ";
String str6 = str4 + str5;
System.out.println(str6);
System.out.println("str6 : "+str6);
System.out.println("-----------------------");
String s = "일요일".concat(str6); // 둘을 연결해서 담아라
s.concat("목요일 ").concat("금요일"); // 또 스트링이기 때문에 점을 찍어 값을 볼 수 있음
System.out.println("--------------------------");
// 메서드 체이닝 : 메서드를 자전거 체인처럼 연결해서 씀
System.out.println("월요일 ".concat("화요일 ")
.concat("수요일 ")
.concat("목요일 ")
.concat("^^"));
// flag 변수는 원래는 '깃발'이라는 의미를 가지고 있지만,
// 프로그래밍에서는 조건에 따라 true 혹은 false값을 넣어주는 boolean형 변수
boolean flag = str.contains("java");
System.out.println("flag : "+flag);
// 자바 포함 : true
// equals() : 내용비교
boolean isSame = str.equalsIgnoreCase("JAVA ORACLE");
System.out.println("equalsIgnoreCase() : "+isSame);
// 특정 문자의 위치를 리턴
int position = str.indexOf('r');
System.out.println("r글자의 위치 : "+ position);
// 문자열의 길이 : length()
System.out.println(str.length());
// 글자를 역순으로 출력
// java oracle ==> elcaro avaj
// 마지막 위치에 글자를 먼저 출력
// charat : 지정한 숫자(index)의 단일 문자 값을 반환
for (int i=1; i<=str.length(); i++) {
System.out.print(str.charAt(str.length()-i));
}
System.out.println();
for(int i = str.length()-1; i>=0; i--) {
System.out.print(str.charAt(i));
}
System.out.println();
// 문자열을 char 배열로 리턴하는 메서드
char[] ch2 = str.toCharArray();
System.out.println(Arrays.toString(ch2));
for(int i=0; i<ch2.length;i++) {
System.out.print(ch2[i]);
}
System.out.println();
// 역순으로 출력
for(int i = ch2.length-1; i>=0; i--) {
System.out.print(ch2[i]);
}
System.out.println();
System.out.println("-----------------------------");
int a = 20;
// 문자열로 형변환
String str7 = "" + a;
System.out.println(str7);
System.out.println(str7.charAt(0));
String str8 = String.valueOf(a);
System.out.println(str8);
System.out.println(str8.charAt(0));
System.out.println("---------------------------");
// 문자열의 부분집합 : substring
System.out.println(str.substring(2, 6)); // 2부터 6번 전까지
String email = "dagda@hanafos.com";
// @의 위치 ??
int pos = email.indexOf('@');
System.out.println("pos : " + pos);
// 앞에서부터 @ 글자 전까지 화면에 출력 가능? >> 6번 전
System.out.println(email.substring(0, pos));
// 메서드도 중첩 가능 ??
System.out.println("당신의 아이디는 : "+email.substring(0, email.indexOf('@')));
// 당신의 아이디는 : dagda
System.out.println("----------------------");
String friendList = "aaa,bbb,ccc,ddd"; // 친구 아이디
String[] list = friendList.split(",");
// 배열 요소를 출력
for(int i=0; i<list.length;i++) {
System.out.println(list[i]);
}
}
}
|
cs |
[ System 클래스의 메서드 ]
- System.out.println : 일반 출력문
- System.err.println : 빨간 글씨로 에러 출력
- currentTimeMillis : 현재 시간을 milliseconds 단위로 출력
|
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
|
package day13;
// import java.lang.System;
// import java.lang.*;
public class SystemEx1 {
public static void main(String[] args) {
System.out.println("test"); // 일반 출력문
System.err.println("에러메세지"); // 빨간 글씨로 에러 표시
System.out.println("System 클래스의 static 변수 out");
System.out.println(System.currentTimeMillis());
// 현재 시간을 milliseconds 단위로 출력
// 1970.1.1 자정 <--> 현재 시간
long before = System.currentTimeMillis();
// 사이의 작업 : 메서드 실행 시간 측정...
long after = System.currentTimeMillis();
System.out.println("작업시간 : "+ (after-before));
System.gc(); // garbage collector를 호출해준다.
System.exit(0); // 0은 정상종료, 0이 아닌 값은 비정상 종료
}
}
|
cs |
* String 클래스의 equals() , toString()은
Object클래스와 어떤 차이가 있으며, 왜 차이가 생기는가?
* Object 클래스
equals() : 동일 객체인지 아닌지 여부를 리턴하는 메서드
toString() : 객체를 표현하는 문자를 리턴
* String클래스(Override)
equals() : 동일한 내용인지 아닌지 여부를 리턴하는 메서드
toString() : 자기 자신의 문자를 리턴