25일차 java 연산(2023-01-27)

권단비·2023년 1월 27일
0

IT

목록 보기
46/139

[Eclipse 연습]

[계산]
class OverLoadEx1 {
	public void print(int input) {
		System.out.println(input);
	}

	public void print(char input) {
		System.out.println(input);
	}

	public void print(String input) {
		System.out.println(input);
	}
}

public class Test28 {
	public static void main(String[] args) {
		OverLoadEx1 ex = new OverLoadEx1();
		ex.print(100);
		ex.print('A');
		ex.print("Hello");
	}
}
[결과값]
100
A
Hello

[this를 이용한 다른 생성자의 호출]

this.○○ : 자기 변수를 호출하는 함수

class OverLoadEx1 {
int num1;
public OverLoadEx1(int num) {
this.num1 = num1;
	}

…………………………………………………………………………

this() 생성자 : 생성자를 호출하는 함수

this(); : 가능
Song2(); : 불가능

[String 인스턴스 생성의 두 가지 방법]

String str1 = new String("Simple String");
String str2 = "The Best String";

String 인스턴스는 Immutable(불변) 인스턴스!
따라서 생성되는 인스턴스의 수를 최소화 한다.

[계산]
public class ImmutableString {
	public static void main(java.lang.String[] args) {
		String str1 = "Simple String";
		String str2 = "Simple String";
		// str1,2는 문자열을 데이터값으로 바꾼 후 저장된 값이라 같은 값
		// Method Area에 있는 메모리를 공유한다.

		String str3 = new String("Simple String");
		String str4 = new String("Simple String");
		// 참조 변수의 참조 값 비교
		// str3,4는 주소값으로 저장되는데 주소값이 서로 다르므로 다름

		if (str1 == str2)
			System.out.println("str1과 str2는 동일 인스턴스 참조");
		else
			System.out.println("다른 인스턴스 참조");
		// 참조변수의 참조 값 비교
		if (str3 == str4)
			System.out.println("str1과 str2는 동일 인스턴스 참조");
		else
			System.out.println("다른 인스턴스 참조");

/////////////////////////////////////////////////////////////////////////////
		/* 타언어에서는 문자열 비교가 == 이지만, java에서는 equals를 사용한다 */
/////////////////////////////////////////////////////////////////////////////
		if (str1 == str3)
			// 메모리 주소값을 불러와 false를 리턴한다.
			System.out.println("str1과 str3는 동일 인스턴스 참조");
		else
			System.out.println("다른 인스턴스 참조");

		if (str1.equals(str3))
			// 원래는 메모리 주소값을 불러오지만, equals를 사용하면 안에 있는 String을 비교한다.
			// 안에 있는 문자열을 비교하여 true를 리턴한다.
			System.out.println("str1과 str3는 동일 인스턴스 참조");
		else
			System.out.println("다른 인스턴스 참조");
	}
}
[결과값]
str1과 str2는 동일 인스턴스 참조
다른 인스턴스 참조
str1과 str3는 동일 인스턴스 참조

[String 인스턴스는 Immutable 인스턴스]

*Immutable : 불변 인스턴스(String이 많은 데이터를 잡아먹기에 최적화를 위해 사용)

[Switch]

[계산]
public class Switch {
	public static void main(String[] args) {
		String str = "two";
        //String str = new String("two");
        //switch문은 자동으로 equals를 호출해서 String 값을 불러온다.

		switch (str) {
		case "one":
			System.out.println("one");
			break;
		case "two":
			System.out.println("two");
			break;
		default:
			System.out.println("default");
		}
	}
}
[결과값]
two

[문자열 연결시키기]

[계산]
//concat은 단어를 이어준다.
public class StringConcat {
	public static void main(String[] args) {
		String st1 = "Coffee";
		String st2 = "Bread";
		// private final byte[] value;
		// immutable불변

		String st3 = st1.concat(st2);
		System.out.println(st3);

		String st4 = "Fresh".concat(st3);
		// Fresh : 주소값이 들어간다.
		System.out.println(st4);
	}
}
[결과값]
CoffeeBread
FreshCoffeeBread

0개의 댓글