2023-02-15 수 / JAVA

권혁현·2023년 2월 15일
0

Java

목록 보기
33/44
post-thumbnail

1. 래퍼 클래스에 대하여 설명하시오.

  • 8개의 기본 타입에 해당하는 데이터를 객체로 포장해 주는 클래스를 래퍼 클래스(Wrapper class)라고 합니다.
    래퍼 클래스는 각각의 타입에 해당하는 데이터를 인수로 전달받아, 해당 값을 가지는 객체로 만들어 줍니다.
    이러한 래퍼 클래스는 모두 java.lang 패키지에 포함되어 제공됩니다.

2. 박싱과 언박싱에 대하여 설명하시오.

  • 기본 타입의 데이터를 래퍼 클래스의 인스턴스로 변환하는 과정을 박싱(Boxing)이라고 합니다.

  • 반면 래퍼 클래스의 인스턴스에 저장된 값을 다시 기본 타입의 데이터로 꺼내는 과정을 언박싱(UnBoxing)이라고 합니다.

3. 아래를 프로그래밍 하시오.

	Person1 p1 = new Person1("홍길동");
	System.out.println(p1.equals(new Person1("홍길동"))); // true
	System.out.println(p1.equals(new Person1("최명태"))); // false

class Person1 {
	String name;

	public Person1(String name) {
		this.name = name;
	}

	@Override
	public boolean equals(Object obj) {
		
		if (obj instanceof Person1) {
			Person1 person = (Person1) obj;

			if (this.name.equals(person.name))
				return true;
		}
		return false;
	}
}

4. 다음 출력 결과를 예측하고 그렇게 되는 이유를 설명하시오.

	String s1 = new String("java");
		String s2 = new String("java");
		String s3 = s2;

		System.out.println(s1 == s2);
		System.out.println(s1.equals(s2));
		System.out.println(s2 == s3);
		System.out.println(s2.equals(s3));
		
		if(s1 == s2)
			System.out.println("s1, s2 참조 대상 같다.");
		else
			System.out.println("s1, s2 참조 대상 다르다. ");
		
		if(s2 == s3)
			System.out.println("s2, s3 참조 대상 같다.");
		else
			System.out.println("s2, s3 참조 대상 다르다. ");
	
		if(s1.equals(s2))
			System.out.println("s1, s2 내용 동일하다.");
		else
			System.out.println("s1, s2 내용 다르다.");
		
		if(s2.equals(s3))
			System.out.println("s2, s3 내용 동일하다.");
		else
			System.out.println("s2, s3 내용 다르다.");
  • 결과
    false
    true
    true
    true
    s1, s2 참조 대상 다르다.
    s2, s3 참조 대상 같다.
    s1, s2 내용 동일하다.
    s2, s3 내용 동일하다.

  • 이유
    s1,s2 에는 각각의 참조하고 있는 메모리의 주소값이 들어가 있고, s3에는 s2가 참고하고 있는 주소값을 같이 참조하고 있는 상태.
    문자열 비교시 equals를 사용하지 않으면 참조하고 있는 주소값을 비교하게 됨.
    equals를 사용하면 참조하는 주소값에 있는 내용을 비교하게 됨

5. 문자열을 입력 받아 한 글자씩 회전시켜 모두 출력하는 프로그램을 작성하라.

문자열을 입력하세요. 빈칸이 있어도 되고 영어 한글 모두 됩니다.

I Love you
Love youI
Love youI
ove youI L
ve youI Lo
e youI Lov
youI Love
youI Love
ouI Love y
uI Love yo
I Love you


	Scanner sc = new Scanner(System.in);

	System.out.println("문자열을 입력하세요. 빈칸이나 있어도 되고 영어 한글 모두 됩니다.");
	String input = sc.nextLine();

	for (int i = 0; i <= input.length(); i++) {
		System.out.print(input.substring(i));
		System.out.println(input.substring(0, i));
	}
	sc.close();

0개의 댓글