투케이2K

67. (kotlin/코틀린) companion object const val 사용해 static final 데이터 및 메소드 정의 , 호출 실시 본문

Kotlin

67. (kotlin/코틀린) companion object const val 사용해 static final 데이터 및 메소드 정의 , 호출 실시

투케이2K 2022. 9. 26. 14:13

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Kotlin

 

[소스 코드]

    // TODO [테스트 메소드 정의 실시]
    fun testMain(){
        Log.i("---","---")
        Log.d("//===========//","================================================")
        Log.i("","\n"+"[Test_Kotlin > testMain() 메소드 : 테스트 함수 동작 실시]")
        Log.d("//===========//","================================================")
        Log.i("---","---")


        /**
         * ------------------------------------
         * TODO [요약 설명]
         * ------------------------------------
         * 1. const val : 상수를 의미합니다. (java >> final)
         * ------------------------------------
         * 2. companion object : 별다른 정의 없이 싱글톤 (singleton) 구현을 지원해줍니다. (java >> static)
         * ------------------------------------
         * */


        // [로직 처리 실시]
        try{

            // ------------------------------------
            // [static final 상수 호출 실시]

            Log.d("---","---")
            Log.w("//===========//","================================================")
            Log.d("","\n"+"[S_FinalData > testMain() 메소드 : static final 상수 데이터 확인]")
            Log.d("","\n"+"[MSG_TYPE_1 : "+S_FinalData.MSG_TYPE_1+"]")
            Log.d("","\n"+"[MSG_TYPE_2 : "+S_FinalData.MSG_TYPE_2+"]")
            Log.w("//===========//","================================================")
            Log.d("---","---")
            // ------------------------------------


            // ------------------------------------
            // [static 메소드 호출 실시]

            S_FinalData.staticMethod()
            // ------------------------------------


            // ------------------------------------
            // [인스턴스 메소드 호출 실시]

            S_FinalData().instanceMethod()
            // ------------------------------------
        }
        catch(e : Exception){
            Log.i("---","---")
            Log.e("//===========//","================================================")
            Log.i("","\n"+"[Test_Kotlin > testMain() 메소드 : 에러 상황 발생]")
            Log.i("","\n"+"[error : "+e.message+"]")
            Log.e("//===========//","================================================")
            Log.i("---","---")
        }
    }




    // TODO [내부 클래스 정의 실시]
    class S_FinalData {

        // TODO [companion object >> static 선언 실시]
        companion object {

            // [TODO const val >> final 상수 선언 실시]
            const val MSG_TYPE_1 = 1
            const val MSG_TYPE_2 = 2


            // [TODO static >> 메소드 정의 실시]
            fun staticMethod(){
                Log.d("---","---")
                Log.w("//===========//","================================================")
                Log.d("","\n"+"[S_FinalData > staticMethod() 메소드 : static >> 메소드 동작]")
                Log.w("//===========//","================================================")
                Log.d("---","---")
            }
        }


        // TODO [인스턴스 생성 >> 메소드 정의 실시]
        fun instanceMethod(){
            Log.d("---","---")
            Log.d("//===========//","================================================")
            Log.d("","\n"+"[S_FinalData > instanceMethod() 메소드 : 인스턴스 생성 >> 메소드 동작]")
            Log.d("//===========//","================================================")
            Log.d("---","---")
        }

    }
 

[결과 출력]

 

 

반응형
Comments