공부내용정리/안드로이드
Java의 정적 유틸리티 클래스
코딩하는망아치
2021. 8. 25. 22:27
정적 유틸리티 클래스
객체 상태 정보가 없고, 정적 함수만을 제공하는 클래스를 말한다.'정적 유틸리티 클래스'가 존재하는 이유는,Java에서는 모든 함수가 클래스 내부에 있어야 하기 때문인데, 예제를 통해 어떤 경우가 있는지 알아보도록 하자.
토스트 메시지 (Java)
Toast.makeText(getApplicationContext(), "" + number = "는 2의 배수입니다.", Toast.LENGTH_SHORT).show();
토스트 메시지(Kotlin)
Toast.makeText(applicationContext,"${number} 는 2의 배수입니다.", Toast.LENGTH_SHORT).show()
토스트 메시지를 호출하는 코드가 너무 길다는 생각이 든다. 토스트 메세지를 호출할 때 관심이 있는 것은 '메세지 내용'과 '얼마나 길게 표시하는지'의 정보일 것이다. 토스트 메세지는 코드 전체에서 사용하는 코드이므로 좀더 간편ㅇ하게 사용할 수 있도록 함수로 만들어 보자.
먼저 Java의 경우를 생각해 보자.아래의 2개의 함수를 사용하면 간단하게 사용가능하다.
// 짧은 토스트 메세지를 보여주는 함수
public void toastShort(String message){
Toast.makeText(getApplicationContext(), message, Toast.LENGTH_SHORT).show();
}
// 긴 토스트 메세지를 보여주는 함수
public void toastLong(String message){
Toast.makeText(getApplicationContext(), message, Toast.LENGTH_LONG).show();
}
이제 한번 사용해 보자
public void onClick(View view) {
// numberField의 값을 읽어 int 형으로 변환한다.
int number = Integer.parseInt(numberField.getText().toString());
//if, else if, else 문으로 2의 배수, 3의 배수를 체크해 서로 다른 토스트 메세지를 보여준다.
if(number % 2 == 0) {
toastShort("" + number + "는 2의 배수입니다."
} else if (number % 3 == 0){
toastShort("" + number + "는 3의 배수입니다."
} else {
toastShort("" + number);
}
}