self 프로퍼티

hyein·2022년 8월 19일
0

Swift

목록 보기
7/9
post-custom-banner

클래스, 프로퍼티 개념이 아직 익숙하지 않아 클론 코딩을 하면서 self. 투성이인 문서를 이해하기 어려워 정리하게 되었다. 고로 틀린 정보가 있을 수 있다.
결국 노션에 정리함!

모든 인스턴스는 암시적으로 생성된 self 프로퍼티를 갖는다.
(모든 인스턴스는 self 프로퍼티를 갖는다)
// 인스턴스: 클래스, 구조체, 열거형에서 생성된 객체
// 프로퍼티: 클래스, 구조체, 열거형에 연관된 값이나 정보

언제 사용하는가?

메서드의 매개변수가 아닌 인스턴스 프로퍼티를 지칭할 때, self 프로퍼티를 사용한다.

self.에서 '.'은 무엇인가?

인스턴스가 생성되고 초기화된 후(이니셜라이즈된 후) 프로퍼티 값에 접근하고 싶을 때 마침표(.)를 사용한다.

//예시1
class LevelClass {
	var level: Int = 0
    }
func levelUp() {
	print("Level Up")
    level = level + 1
    }
    
var levelClassInstance: LevelClass = LevelClass() //levelClassInstance는 LevelClass 클래스에서 생성된 객체이다 = 인스턴스이다
levelClassInstance.levelUp() //.은 인스턴스의 프로퍼티(값/정보)에 접근하고 싶어 사용한 것, 여기서는 변수 level의 값에 접근한다는 것이다. 

예시

// 예시1의 LevelClass 클래스에  매개변수로 정수값을 전달인자로 넣어주면 
// level의 값이 입력된 매개변수로 변하는 메소드를 추가 하려한다.
func jumpLevel(to level: Int) { //전달인자 레이블: to, 	매개변수 이름: level
	self.level = level 
    // LevelClass 클래스의 level 프로퍼티 값을 
    // jumpLevel 메소드의 매개변수의 이름인 level에 입력된 값으로 바꾸려 하는데
    // 프로퍼티 이름과 매개변수 이름이 같다. 
    // 두 이름을 구별해주기 위해 인스턴스 프로퍼티 앞에 self.를 붙여준다. 
}
post-custom-banner

0개의 댓글