본문 바로가기

JAVA

형 변환, final

형 변환은 문자열을 정수형 이런 식으로 서로의 타입을 변환시키는 것을 의미

String -> int 문자열 -> 정수

int -> String 정수 -> 문자열

 

Integer.parseInt - 정수형으로 변환

 

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

       String num = "123";
       int n = Integer.parseInt(num); 


       System.out.println(n+100);

    }
}
//223  //만약 변환을 안하고 했으면 123100이 출력 됐을거임

" " - 문자열로 변환 

 

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

        int n = 100;
        String num = ""+n;

        System.out.println(num+100);

    }
}
//100100  

 

String.valueOf(); - 문자열로 변환

valueOf(); - 파라미터가 null이면 문자열 "null"을 만들어서 반환한다. *toString 보단 얘 사용하는걸 추천

 

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

        int n = 100;
        String num = String.valueOf(n);

        System.out.println(num+100);

    }
}
//100100

 

Integer.toString(): - 문자열로 변환

toString(); - 대상 값이 null이면 NPE를 발생시키고 Object에 담긴 값이 String이 아니여도 출력한다.

 

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

        int n = 100;
        String num = Integer.toString(n);

        System.out.println(num+100);

    }
}
//100100

Double.parseDouble / Float.parseFloat - 소숫점이 포함된 숫자형태의 문자열 변환

 

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

        String num = "1.2";
        double n = Double.parseDouble(num);

        System.out.println(n+0.1);

    }
}
//1.3

정수 -> 실수

 

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

        int num = 10;
        double n = num;

        System.out.println(n);

    }
}
//10.0

 

실수 -> 정수

 

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

        double num = 10.5;
        int n = (int) num;  //실수 -> 정수로 변환할때 무조건 정수형으로 캐스팅(int) 해줘야 함

        System.out.println(n);

    }
}
//10   //소숫점 생략되서 정수형으로 나옴

 

*실수 형태의 문자열을 정수로 변경하려고하면 NumberFormatException 발생하니 주의!

 

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

        String num = "10.0";
        int n = Integer.parseInt(num);  //실수 형태의 문자열을 정수로 변경하면 오류남 double로 바꿔줘야 오류 안남

        System.out.println(num);

    }
}
//NumberFormatException 오류 발생

final - 자료형에 값을 단 한번만 설정할 수 있게 강제하는 키워드 / 값을 다시 설정 못함

클래스에 붙는 경우 상속 할 수 없다

메소드에 붙는 경우 재정의 할 수 없다

 

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

        final int num = 123;
        num = 456;

        System.out.println(num);

    }
}
//컴파일 에러 발생
public class C20final {

    //final 변수 : 값을 한 번만 할당 할 수 있음

    final int a = 3;

    //a = 4; <<이거 불가능
}

class MyClass20 {
    final int age = 3;
    final String name;

    //생성자를 통해 이렇게 할당 할 수 도 있고
    MyClass20(){
        this.name = "java";
    }

    //생성자를 통해 매개변수를 이용해 할당 할 수 도 있다.
    MyClass20(String name){
        this.name=name;
    }
}

 

 

리스트의 경우도 재할당 안됨 *리스트에 값을 더하거나(add) 빼는(remove) 것은 가능 

 

import java.util.ArrayList;
import java.util.Arrays;

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

        final ArrayList<String> Food = new ArrayList<>(Arrays.asList("파스타", "순대국밥"));

        Food = new ArrayList<>(Arrays.asList("샌드위치", "냉면"));

        System.out.println(Food);

    }
}
//컴파일 에러 발생

 

값을 더하거나(add) 빼는(remove)것도 싫으면 List.of로 절대 불가침한 리스트를 만들 수 있다.

 

import java.util.List;

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

        final List<String> Food = List.of("파스타", "순대국밥");

        Food.add("샌드위치");

        System.out.println(Food);

    }
}
//UnsupportedOpreationException 에러 발생

 

반응형

'JAVA' 카테고리의 다른 글

switch/case  (0) 2022.10.13
if (참, 거짓)  (0) 2022.10.13
Set (집합)  (0) 2022.10.11
Map (Key, Value)  (0) 2022.10.11
ArrayList (리스트) + Generics<> (제네릭스)  (0) 2022.10.07