Frog is cry
오브젝트 본문
package 오브젝트.ex01;
import java.util.Random;
// 객층 관계도 단축키 Ctrl + T
public class ObjectTest {
public static void main(String[] args) {
// object에서 equals를 사용하면 주소값을 비교한다
String data1 = new String("ABC");
String data2 = new String("ABC");
String data3 = "ABC";
String data4 = "ABC";
Random r = new Random();
Random r2 = new Random();
System.out.println(data1 == data2);
System.out.println(data1.equals(data2));
System.out.println(data3 == data4);
System.out.println(data3.equals(data4));
System.out.println("------------------------------------");
// intern()을 사용해서 원래의 주소값을 찾아낼수 있음
r = r2;
System.out.println(r.equals(r2));
System.out.println(r == r2);
System.out.println("------------------------------------");
System.out.println(data1.hashCode());
System.out.println(data2.hashCode());
System.out.println(data3.hashCode());
System.out.println(data4.hashCode());
System.out.printf("%x\n", r.hashCode());
System.out.println(r);
}
}
package 오브젝트.ex01;
public class ObjectTest2 {
public static void main(String[] args) {
//constant pool 상수 보관 풀에 data라는 값을 저장하고 그 값과 같은 값이 들어오면 그 값을 공유함
// String str1 = "data";
// String str2 = "data";
// String str3 = new String("data");
// String str4 = new String("data");
String[] arStr = {
new String("data1"),
new String("data2"),
new String("data3"),
};
System.out.println(arStr[0] == "data1");
System.out.println(arStr[0].equals("data1"));
// System.out.println(str1 == str2);
// System.out.println(str3.intern() == str4.intern());
// System.out.println(str2 == str4);
// System.out.println(str2 == str4.intern());
// System.out.println(str1.equals(str3));
//intern()
// constant pool에 같은 값을 검색하여 그 주소값을 반환해준다.
}
}
package 오브젝트.ex01;
public class ObjectTest3 {
int data1 = 10;
int data2 = 20;
int data3 = 30;
ObjectTest3(int data1) {
this.data1 = data1;
}
@Override
public String toString() {
return "" + data1 + data2 + data3;
}
public static void main(String[] args) {
ObjectTest3 o = new ObjectTest3(90);
System.out.println(o); // 주소값이 출력됨
char[] word= {'안','녕'};
// 배열명을 출력하면 시작주소가 나옴
// 배열의 들어가는 값은 new가 없어도 힙 메모리영역에 저장되기 때문이다.
String data = "안녕";
System.out.println(data.charAt(0));
// 문자열을 배열처럼 출력해줄때 사용함 charAt()
// 구분점을 나눌떈 Split
System.out.println(o.toString());
//객체명을 출력할 때 항상 뒤에 toString()이 생략된다.
System.out.println(word);
// char[]에서는 toString이 생략되지 않음
}
}
package 오브젝트.ex02;
public class ObjectEx extends Object{ // object는 항상 생략되어있음.
public static void main(String[] args) {
ObjectEx obj = new ObjectEx();
obj.toStringFunc();
}
// toString()메소드가 자동으로 호출되는 경우
// System.out.printIn() 메소드에 객체가 매개변수로 들어가는 경우
// 객체에 문자열 더하기 연산을 하는 경우
public String aa() {
return "하이";
}
public void toStringFunc() {
System.out.println(this);
// System.out.println(obj); // toString이 생략되어있음.
System.out.println(toString());
System.out.println(aa());
System.out.println("하이" + this );
// 실행결과
// 1.오브젝트.ex02.ObjectEx@7852e922
// 2.오브젝트.ex02.ObjectEx@7852e922
// 3.하이오브젝트.ex02.ObjectEx@7852e922
}
public String toString() {
return "ObjectEx 클래스 입니다";
}
}
'JAVA > 복습' 카테고리의 다른 글
Set (0) | 2020.07.29 |
---|---|
제네릭 (0) | 2020.07.29 |
Wrapper 클래스 (0) | 2020.07.29 |
예외처리(엘레베이터 예제) (0) | 2020.07.29 |
익명클래스(카페예제) (0) | 2020.07.29 |
Comments