[아이폰] - 스위프트 클래스(Class) 생성 및 초기화
○ 스위프트 클래스(Class) 생성 및 초기화 |
자바에서 클래스를 쓰듯이 아이폰 스위프트에서도 클래스가 존재한다 자바와 스위프트에서 클래스에 차이점이 있는데 'this -> self' 로 바뀌었고 'super' 를 맨 뒤에 써야한다(자바처럼 앞에 쓸 시 오류 발생) self : 클래스 자신을 나타내는 레퍼런스 변수, 자신의 메소드/속성 접근 시 사용 super : 부모 클래스를 나타내는 레퍼런스 변수, 부모의 메소드/속성/init() 접근 시 사용 클래스 생성 방법 : class 클래스이름 : 부모클래스이름 { 속성 메소드 } 또한 스위프트에서 초기화(생성자 생성)를 시켜줘야하는데, 매개변수가 있을 때와 초기값이 지정되지 않았을 때로 나뉜다 init() : 매개변수가 있을 때 사용(self 사용) convenience override init() : 초기값이 지정되지 않았을 때(디폴트 값, self.init() 사용) import UIKit class Student : NSObject { var kor : Int var eng : Int var math : Int init(kor:Int, eng:Int, math:Int){ // init() 초기화 self.kor = kor self.eng = eng self.math = math super.init() } convenience override init() { // convenience override init() 초기화 self.init(kor:0, eng:0, math:0) } } let student1 = Student() // 인스턴스 생성 student1.kor = 88 student1.eng = 99 student1.math = 100 print(student1.kor) // 88 print(student1.eng) // 99 print(student1.math) // 100 import UIKit class Student : NSObject { var kor : Int // 속성들 var eng : Int var math : Int init(kor:Int, eng:Int, math:Int) { // init() 초기화 self.kor = kor self.eng = eng self.math = math super.init() } convenience override init() { // convenience override init() 초기화 self.init(kor:0, eng:0, math:0) } // 함수 매개변수의 세가지 모습 func setPoint(korGap kor:Int, engGap eng:Int, mathGap:Int) { self.kor = kor self.eng = eng self.math = math } // 자세한 내용을 설명할 때(Gap을 쓴다) func setPoint(kor:Int, eng:Int, math:Int) { self.kor = kor self.eng = eng self.math = math } // 짧게 안내(평소처럼) func setPoint(_ kor:Int, _ eng:Int, _ math:Int) { // 파라미터 생략하는 의미 self.kor = kor self.eng = eng self.math = math } // 일반적인 모습 func getTotal() -> Int { return self.kor + self.eng + self.math } func getAve() -> Double { return Double(self.kor + eng + math) / 3 } } let student1 = Student() // 인스턴스 생성 student1.kor = 88 student1.eng = 99 student1.math = 100
print(student1.kor) // 88 print(student1.eng) // 99 print(student1.math) // 100 let stuPo1 = Student() // 인스턴스 생성 stuPo1.setPoint(korGap: 11, engGap: 12, mathGap: 13) stuPo1.getTotal() // 36
stuPo1.setPoint(12, 13, 14) stuPo1.getTotal() // 39 stuPo1.setPoint(kor: 11, eng: 11, math: 11) stuPo1.getTotal() // 33 |
'아이폰' 카테고리의 다른 글
[아이폰] - 뷰 컨트롤러에서 효과주기(폰트, 정렬 등) (0) | 2018.10.16 |
---|---|
[아이폰] - 스위프트 상속과 오버라이딩 (0) | 2018.10.16 |
[아이폰] - 간단한 계산기 예제 (0) | 2018.09.28 |
[아이폰] - 스위프트 클래스 생성 및 생성자와 초기화 (0) | 2018.09.28 |
[아이폰] - 스위프트 함수 생성 및 호출, 옵셔널(nil) 기능 (0) | 2018.09.28 |