투케이2K

12. (swift/xcode) class 클래스 , struct 구조체 생성 및 init 생성자 초기화 실시 본문

Swift

12. (swift/xcode) class 클래스 , struct 구조체 생성 및 init 생성자 초기화 실시

투케이2K 2021. 10. 8. 19:55

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : SWIFT


[소스 코드]

     /*
     [요약 설명]
     1. class : 클래스를 지정합니다 : 클래스는 상속이 가능
     2. struct : 구조체를 지정합니다 : 구조체는 상속이 불가능
     3. init : 클래스 및 구조체 생성자 초기화를 지정합니다
     */
    
    
    
    // [class 클래스 생성 실시 : 상속이 가능]
    class User_Class {
        var name: String?
        var age: Int?
        
        // 클래스 생성자 초기화 실시
        init(name: String, age: Int){
            // [전역 변수 = 파라미터 값]
            self.name = name
            self.age = age
        }
        
        // 리턴 함수 정의 실시
        func getName() -> String { // name 값을 String 형태로 리턴
            if let data = self.name { // 전역 변수가 nil 아닌 경우
                return data
            }
            else {
                return ""
            }
        }
        
        // 리턴 함수 정의 실시
        func getAge() -> Int { // age 값을 int 형태로 리턴
            if let data = self.age { // 전역 변수가 nil 아닌 경우
                return data
            }
            else {
                return 0
            }
        }
    }
    
    
    
    // [struct 구조체 생성 실시 : 상속 불가능]
    struct User_Struct {
        var name: String?
        var age: Int?
        
        // 구조체 생성자 초기화 실시
        init(name: String, age: Int){
            // [전역 변수 = 파라미터 값]
            self.name = name
            self.age = age
        }
        
        // 리턴 함수 정의 실시
        func getName() -> String { // name 값을 String 형태로 리턴
            if let data = self.name { // 전역 변수가 nil 아닌 경우
                return data
            }
            else {
                return ""
            }
        }
        
        // 리턴 함수 정의 실시
        func getAge() -> Int { // age 값을 int 형태로 리턴
            if let data = self.age { // 전역 변수가 nil 아닌 경우
                return data
            }
            else {
                return 0
            }
        }
    }
    
    
    
    // [테스트 메인 함수 정의 실시]
    func testMain(){
        print("[Program Start]")
        print("")
        
        // [클래스 객체 생성 및 데이터 확인 실시]
        var userClass = User_Class(name: "투케이", age: 28) // 클래스 생성자 초기화 값 삽입
        print("[class] : [init] : [name] : ", userClass.getName()) // 함수 호출 값 확인
        print("[class] : [init] : [age] : ", userClass.getAge()) // 함수 호출 값 확인
        
        // [클래스 변수 값 변경 및 재호출 실시]
        userClass.name = "twok" // set 함수를 생성해서 넣는 방법도 있습니다
        print("[class] : [update] : [name] : ", userClass.getName()) // 함수 호출 값 확인
        print("")
        
        
        // [구조체 객체 생성 및 데이터 확인 실시]
        var userStruct = User_Struct(name: "투케이", age: 28) // 구조체 생성자 초기화 값 삽입
        print("[struct] : [init] : [name] : ", userStruct.getName()) // 함수 호출 값 확인
        print("[struct] : [init] : [age] : ", userStruct.getAge()) // 함수 호출 값 확인
        
        // [구조체 변수 값 변경 및 재호출 실시]
        userStruct.name = "twok" // set 함수를 생성해서 넣는 방법도 있습니다
        print("[struct] : [update] : [name] : ", userStruct.getName()) // 함수 호출 값 확인
        print("")
    }

[결과 출력]


[요약 설명]

/*

[요약 설명]

1. class : 클래스를 지정합니다 : 클래스는 상속이 가능

2. struct : 구조체를 지정합니다 : 구조체는 상속이 불가능

3. init : 클래스 및 구조체 생성자 초기화를 지정합니다

*/


 

반응형
Comments