본문 바로가기
TIL

내일배움캠프 4주차 Java 연습1

by 율량동박씨 2024. 5. 8.

오늘의 키워드

  • 랩퍼 클래스 객체의 비교법
  • parse- 계열 메서드

오늘의 내용

  • 랩퍼 클래스에서 객체의 비교법
      • == 연산자가 아닌 equals메서드를 사용해서 비교해야 한다
      • ==연산자로 비교하면 레퍼런스 데이터형 변수의 주소 값을 비교하기 때문에 완전 동일한 객체가 아닌 이상 '다르다(!=)'는 결과가 나온다
      • 아래 코드를 사용하면 ==연산자를 사용해서 비교해 else부분이 실행된다
    package num4.compare;
    
    public class compare1 {
        public static void main(String[] args) {
            Integer x = new Integer(100);
            Integer y = new Integer(100);
    
            if(x==y) {
                System.out.println(x + "==" + y);
            } else {
                System.out.println(x + "!=" + y);
                //x,y에 100으로 같은 값을 저장했는데 다르다는 결과가 출력
            }
        }
    }

    • 아래 코드는 equals를 사용해 x와 y를 비교해서 if문이 실행된다
package num4.compare;

public class compare2 {
    public static void main(String[] args) {
        Integer x = new Integer(100);
        Integer y = new Integer(100);

        if(x.equals(y)) {
            System.out.println(x + "==" + y);//equals를 사용해서 같다가 표시
        } else {
            System.out.println(x + "!=" + y);
        }
    }
}

 

 

  • parse-계열 메서드
    • 문자형을 숫자 데이터로 바꾸어주는 메서드이다
    • 사용법은 (변수) = (숫자형).Parse(변수);이다
    • 변환과정에서 예기치 못한 에러가 발생할 수 있어 try-catch로 감싸 예외처리를 해줘야한
    • 아래 코드는 11이라는 10진수를 각각의 진법으로 변경한 코드다
package num4.radixtest;

public class Main {
    public static void main(String[] args) {

        String num = "11";

        try {
            int bin = Integer.parseInt(num,2);
            int oct = Integer.parseInt(num,8);
            int dec = Integer.parseInt(num,10);//dec=Integer.parseInt(num)과 같다
            int hex = Integer.parseInt(num,16);

            System.out.println("기본값 : " + num);//기본값 11출력
            System.out.println("2진수 : " + bin);//2진수로 변환 3이 출력
            System.out.println("8진수 : " + oct);//8진수로 변환 9가 출력
            System.out.println("10진수 : " + dec);//10진수라 입력값 11이 출력
            System.out.println("16진수 : " + hex);//16진수로 변환 17이 출력

        } catch (NumberFormatException e) {
            System.out.println("Error:"+e);
        }
    }
}

오늘의 회고

  • 병원 예약이 있는날이라 하루를 다 날려 공부를 별로 못했다 이렇게 밀리다보면 점점 따라가기 힘들어질텐데 걱정이다
  • 실시간 강의를 못들어서 따로 공부하던 책을 보면서 공부를 했는데 강의에선 못보던 내용이 있어서 그런가 신선했다