관리 메뉴

Frog is cry

오브젝트 본문

JAVA/복습

오브젝트

Frog is cry 2020. 7. 29. 19:36
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