Programming/Swift

Swift 클래스

patrick610 2020. 6. 23. 00:33
반응형
SMALL

객체지향 프로그래밍

   다양한 플랫폼에서 객체지향 프로그래밍 사용
   iOS/macOS 개발에도 적용

   
   특징

      모든 것을 객체로 취급
      화면(씬) 단위
      화면 내 뷰와 컨트롤
      객체의 속성과 행위


   애플리케이션과 객체

      학사관리 시스템

         학생의 이름, 전공
         수강 신청 과목
         수강 신청하기

      게임

         게임 유닛
         유닛의 위치, 능력
         유닛 이동, 공격/방어 등


   객체지향 프로그래밍 작성 방법

      객체의 속성과 행위



   클래스 정의와 객체 생성

* 클래스 정의 : class [클래스 이름] {}
class Rectangle {
}

* 객체 생성 : [클래스 이름]()
var rect = Rectangel()

 

   객체 생성

* var : 새로운 객체 대입 가능
var rect = Rectangle()
rect = Rectangle()

* let : 새로운 객체 대입 불가
let rect2 = Rectangel()
rect2 = Rectangel()   // 대입 불가

 

 

프로퍼티

   객체의 데이터
   저장/계산 프로퍼티
   값을 저장하고 읽는 행위



   * 저장 프로퍼티

      데이터를 저장하는 용도
      데이터 읽기/쓰기 행위
      객체 생성시 초기화, 초기화 방법 필요

 var obj = MyClass()
 
 obj.intProperty = 10            // set
 obj.floatProperty = 3.1
 
 let val = obj.floatProperty     // get
 val   // Optional(3.1)



   * 계산 프로퍼티

      데이터 저장 안함
      프로퍼티 읽기/쓰기 코드 작성

      값을 얻어오기(get)
      값을 설정하기(set)

var [프로퍼티 이름] : [타입] {
   get {
      return RETURN_VALUE
   }
   set(newValue) {
   }
}

  

      계산 프로퍼티 : 읽고 쓰기
      읽고 쓰기 가능 : get/set 모두 작성
      읽기(get)  전용 : get 선언 생략 가능

var isSquare : Bool {
   get {   // 생략 가능
      return width == height
   }
}

      쓰기(set) 전용은 없음

 

   저장 프로퍼티와 계산 프로퍼티

class Person {
    let thisYear = 2017
    var birthYear : Int = 0
    
    var aget : Int {
        get {
            return thisYear - birthYear
        }
        set {
            birthYear = thisYear - newValue
        }
    }
}
반응형
LIST