English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Swift 클래스

Swift 클래스는 코드를 구축하는 데 사용되는 일반적이고 유연한 구조체입니다.

클래스에 속성(상수, 변수)과 메서드를 정의할 수 있습니다.

기타 프로그래밍 언어와는 달리, Swift는 사용자 정의 클래스에 대한 독립적인 인터페이스와 구현 파일을 생성하도록 요구하지 않습니다. 사용자가 해야 할 일은 단일 파일에서 클래스를 정의하는 것입니다. 시스템은 다른 코드에 대한 외부 인터페이스를 자동으로 생성합니다.

클래스와 구조체 비교

Swift에서 클래스와구조체많은 공통점이 있습니다. 공통점은 다음과 같습니다:

  • 값을 저장하기 위해 속성을 정의합니다

  • 기능을 제공하기 위해 메서드를 정의합니다

  • 값에 접근하기 위해 부속 스크립트를 정의합니다

  • 초기화 값을 생성하기 위해 생성자를 정의합니다

  • 확장을 통해 기본 구현을 추가할 수 있습니다

  • 프로토콜에 맞춰 기본 기능을 제공하기 위해 맞춤형을 만듭니다

구조체와 비교해 볼 때, 클래스는 다음과 같은 추가 기능을 가지고 있습니다:

  • thừa kế는 클래스가 다른 클래스의 특성을 상속할 수 있음

  • 타입 변환은 실행 중에 클래스 예제의 타입을 확인하고 설명할 수 있음

  • 디스루트러는 클래스 예제가 할당된 모든 자원을 해제할 수 있음

  • 참조 계산자는 클래스에 대한 여러 참조를 허용합니다

문법:

class classname {
   정의 1
   정의 2
   ……
   정의 N
}

클래스 정의

class student{
   var studname: String
   var mark: Int 
   var mark2: Int 
}

클래스 예제화:

let studrecord = student()

온라인 예제

import Cocoa
class MarksStruct {
    var mark: Int
    init(mark: Int) {
        self.mark = mark
    }
}
class studentMarks {
    var mark = 300
}
let marks = studentMarks()
print("점수는 \(marks.mark)")

위 프로그램 실행 결과는 다음과 같습니다:

점수는 300

참조형으로 클래스 속성을 접근합니다

클래스의 속성은 다음과 같이 참조할 수 있습니다. . 로 접근합니다. 형식은:클래스 이름.속성 이름:

import Cocoa
class MarksStruct {
   var mark: Int
   init(mark: Int) {
      self.mark = mark
   }
}
class studentMarks {
   var mark1 = 300
   var mark2 = 400
   var mark3 = 900
}
let marks = studentMarks()
print("Mark1 is \(marks.mark1)")
print("Mark2 is \(marks.mark2)")
print("Mark3 is \(marks.mark3)")

위 프로그램 실행 결과는 다음과 같습니다:

Mark1 is 300
Mark2 is 400
Mark3 is 900

가능한 동등 연산자

클래스는 참조형입니다. 여러 상수나 변수가 배후에서 동시에 하나의 클래스 예제를 참조할 수 있습니다.

두 개의 상수나 변수가 동일한 클래스 예제를 참조하는지 판단하기 위해 Swift는 두 개의 동등 연산자를 내장했습니다:

가능한 동등 연산자불가능한 동등 연산자
연산자는:====입니다연산자는:!==입니다
두 개의 상수나 변수가 동일한 클래스 예제를 참조하는 경우 true를 반환합니다두 개의 상수나 변수가 다른 클래스 예제를 참조하는 경우 true를 반환합니다

온라인 예제

import Cocoa
class SampleClass: Equatable {
    let myProperty: String
    init(s: String) {
        myProperty = s
    }
}
func ==(lhs: SampleClass, rhs: SampleClass) -> Bool {
    return lhs.myProperty == rhs.myProperty
}
let spClass1 = SampleClass(s: "Hello")
let spClass2 = SampleClass(s: "Hello")
if spClass1 === spClass2 {// false
    print("참조가 같은 클래스 예제 \(spClass1)")
}
if spClass1 !== spClass2 {// true
    print("참조가 다른 클래스 예제 \(spClass2)")
}

위 프로그램 실행 결과는 다음과 같습니다:

참조가 다른 클래스 예제 SampleClass