[Swift] class를 통해 알아보는 Swift의 객체지향 프로그래밍

팔랑이·2023년 6월 12일
0
post-thumbnail

클래스 선언하기

class 클래스이름: 부모 클래스 {
// 프로퍼티
// 인스턴스 메소드
// 타입 메소드
  • 프로퍼티: 본 클래스 내에 포함되는 변수와 상수
  • 타입 메소드: 클래스의 새로운 인스턴스 생성 (앞에 class가 한번 더 붙음)
  • 인스턴스 메소드: 클래스 안에서 작업됨 (클래스 안의 프로퍼티들 작업)

참고로 메소드는 클래스 안에서 선언된 함수를 말한다.


예시를 들어 class를 선언해보자.

  • 참고로 클래스 이름의 첫 번째 문자는 대문자여야 하며, 반대로 프로퍼티나 메소드 이름의 첫 번째 문자는 소문자이다.
class BankAccount{
	var accountBalance: Float = 0
    var accountNum: Int = 0
    // 프로퍼티 (property)
    
    func displayBalance() {
    	print("Number \(accountNum)")
        print("Current balance is \(accountBalance)")
        }
    // 인스턴스 메소드
    
    class func getMaxBalance() -> Float {
    	return 100000.00
    }
    // 타입 메소드
}

클래스 인스턴스 선언 및 초기화 (init)

인스턴스는 클래스를 실체화한 것을 말한다. 한 클래스에 여러 인스턴스를 생성할 수 있다.

  • BankAccount 인스턴스 생성, account1 이라는 변수 통해 접근 가능
var account1: BankAccount = BankAccount()

  • 새로운 인스턴스가 생성될 때 BankAccount class 안에서 accountBalance, accountNum property를 초기화
class BankAccount{
	var accountBalance: Float = 0
    var accountNum: Int = 0
    
    init(number: Int, balance: Float) {
    	accountNum = number
        accountBalance = balance
    }
    // 새로운 인스턴스 생성시 계좌번호와 잔액 초기화
    
    func displayBalance() {
    	print("Number \(accountNum)")
        print("Current balance is \(accountBalance)")
    }
    
    class func getMaxBalance() -> Float {
    	return 100000.00
    }
}


var account1 = BankAccount(number: 3333021866204, balance: 10058)
// 초기화됨

메소드 호출 및 프로퍼티 접근

  • 클래스인스턴스.프로퍼티명 또는
  • 클래스인스턴스.메소드()

를 통해 각 값에 접근할 수 있다.

var balance1 = account1.accountBalance
// account1 의 계좌 잔액 호출

account1.displayBalance()
// account1의 displayBalance 메소드 결과값 호출

BankAccount.getMaxBalance()
// ‼️주의: 타입메소드 호출시 인스턴스가 아닌 클래스로.
profile
정체되지 않는 성장

0개의 댓글