안녕하세요, 새내기 개발자입니다~!
어제에 이어서 오늘도 class에 대해서 더 알아볼게요!
혹쉬 class가 뭔가요? 라고 주위 코딩 고수님들께 물어보면...
음.. 쉽게 말해 class는 붕어빵 틀이라고 생각하면 된다! 이런 말들을 한번이라도 들어보신 분들 계실까요?
저는 정말 많이 들어본 말이거든요. ㅎㅎ
이해하고 나서 다시 생각해보면 정말 그 비유가 찰떡이지만, 이해가 되기전까진 나혼자 고구마를 먹은것인가? 도무지 무슨말이지? 라는 생각이 들거에요~! 걱정마세요! 저도 이해했답니다!! 클래스의 깊은 복잡한 부분까지 파고들지말고 개념만 이해하셔도 코딩하는데에 있어서 전혀 무리가 없답니다! ㅎㅎ 그럼 이제 시작해볼게요!
Swift에서 클래스는 참조 타입(Reference Type)으로, 객체를 생성하여 여러 변수에 할당하더라도 모두 같은 객체를 참조합니다. 이는 Swift의 구조체(Struct)와는 대조적인 특징이며, 구조체는 값 타입(Value Type)으로 동작합니다.
Swift에서 클래스를 정의하는 방법은 이전에 설명한 대로 클래스 키워드를 사용하여 선언합니다. 클래스는 속성과 메서드를 포함하고, 필요에 따라 초기화 메서드, 소멸자 등을 추가로 정의할 수 있습니다.
<예시코드>
class ClassName {
// 속성(멤버 변수) 선언
var property1: Type
var property2: Type
// 초기화 메서드(Initializer)
init(parameter1: Type, parameter2: Type) {
// 초기화 작업
self.property1 = parameter1
self.property2 = parameter2
}
// 소멸자(Deinitializer)
deinit {
// 객체가 메모리에서 해제될 때 호출되는 코드
}
// 메서드(Method)
func methodName(parameter: Type) -> ReturnType {
// 메서드의 구현 내용
}
// 기타 속성과 메서드 선언
// ...
}
-객체생성과 사용하기
클래스를 기반으로 객체(인스턴스)를 생성하는 방법은 이전에 설명한 대로 init 메서드를 호출하여 객체를 초기화합니다.
위 코드에서 ClassName은 클래스 이름, value1, value2는 해당 타입의 초기 값입니다. 이렇게 생성된 객체를 사용할 때는 객체의 속성과 메서드에 접근하여 데이터를 읽거나 조작할 수 있습니다.
-상속
Swift 클래스는 상속을 지원합니다. 즉, 한 클래스가 다른 클래스의 특성(속성과 메서드)을 물려받아 확장할 수 있습니다. 상속을 사용하여 코드의 재사용성을 높이고 계층 구조를 만들 수 있습니다. 다른 클래스를 상속하기 위해서는 콜론(:) 뒤에 부모 클래스 이름을 명시하면 됩니다.
<예시코드>
class ChildClassName: ParentClassName {
// ChildClassName에만 해당하는 추가적인 속성과 메서드 선언
// ...
}
여기까지 제가 공부한 내용과 class에 대해서 말씀드렸어요~!
내일 또 만나요! ㅎㅎ
좋은 정보 얻어갑니다, 감사합니다.