투케이2K

111. (swift/xcode) Designated 및 Convenience init 사용해 클래스 생성자 초기화 수행 실시 본문

Swift

111. (swift/xcode) Designated 및 Convenience init 사용해 클래스 생성자 초기화 수행 실시

투케이2K 2022. 10. 12. 11:36

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : SWIFT

 

[소스 코드]

    // MARK: - [내부 클래스 정의 실시]
    class user {
        
        // [전역 변수 선언]
        let name: String
        let age: Int
        let sex: String

        
        // [Designated init (지정 초기화)]
        init(name: String, age: Int, sex: String) {
            self.name = name
            self.age = age
            self.sex = sex
        }

        
        // [Convenience init (편의 초기화)]
        convenience init(age: Int, sex: String) {
            self.init(name: "TWOK", age: age, sex: sex)
        }
    }
  
  
  
  
  
  
    // MARK: - [테스트 메인 함수 정의 실시]
    func testMain() {
        print("")
        print("====================================")
        print("[\(self.ACTIVITY_NAME) >> testMain() :: 테스트 함수 시작 실시]")
        print("====================================")
        print("")
        
        
        /*
         ------------------------------------
         [요약 설명]
         ------------------------------------
         1. Designated init (지정 초기화) : 해당 클래스에 의해 선언된 모든 property를 모두 초기화하고 init 을 진행합니다
         ------------------------------------
         2. Convenience init (편의 초기화) : 해당 클래스에 의해 선언된 일부 property를 지정해서 init 을 진행합니다
         ------------------------------------
         */
        
        
        
        // [로직 처리 실시]
        let designated_init = user(name: "투케이", age: 12, sex: "M")
        print("")
        print("====================================")
        print("[\(self.ACTIVITY_NAME) >> testMain() :: designated_init]")
        print("-------------------------------")
        print("name :: \(designated_init.name)")
        print("-------------------------------")
        print("age :: \(designated_init.age)")
        print("-------------------------------")
        print("sex :: \(designated_init.sex)")
        print("====================================")
        print("")
        
        
        let convenience_init = user(age: 29, sex: "M")
        print("")
        print("====================================")
        print("[\(self.ACTIVITY_NAME) >> testMain() :: convenience_init]")
        print("-------------------------------")
        print("name :: \(convenience_init.name)")
        print("-------------------------------")
        print("age :: \(convenience_init.age)")
        print("-------------------------------")
        print("sex :: \(convenience_init.sex)")
        print("====================================")
        print("")
    }
 

[결과 출력]


반응형
Comments