분류 전체보기380 swift 메소드 정리 swift 메소드 정리 메서드 메서드는 특정 타입에 관련된 함수를 뜻한다. 스위프트에서 클래스, 구조체, 열거형 은 인스턴스 메서드를 정의할 수 있다. 또한 타입 자체와 관련된 기능을 실행하는 타입 메서드를 정의할 수도 있다. 인스턴스 메서드 인스턴스 메서드는 특정 타입의 인스턴스에 속한 함수를 뜻한다. 인스턴스 내부의 프로퍼티 값을 변경하거나 특정 연산 결과를 반환하는 등 인스턴스와 관련된 기능을 실행한다. 인스턴스 메서드는 인스턴스가 존재할 때만 사용할 수 있다. 참고로 아래 코드에서 LevelClass의 인스턴스 메서드가 level 인스턴스 프로퍼티의 값을 수정한다. 자신의 프로퍼티 값을 수정할 때 클래스의 인스턴스 메서드는 크게 신경 쓸 필요가 없다. 하지만 구조체나 열거형은 값 타입이므로 메서드.. 2022. 10. 31. swift 프로퍼티 정리 2 swift 프로퍼티 정리 2 ✅프로퍼티 감시자 프로퍼티 감시자를 사용하면 프로퍼티의 값이 변경됨에 따라 적절한 작업을 수행할 수 있습니다 프로퍼티 감시자는 프로퍼티의 값이 새로 할당될 때마다 호출합니다. 프로퍼티 감시자는 저장 프로퍼티 뿐만 아니라 프로퍼티를 재정의해 상속받은 저장 프로퍼티 또는 연산 프로퍼티에도 적용가능합니다. 상속 받지 않은 연산 프로퍼티에는 프로퍼티 감시자를 사용할 필요가 없으며 할 수도 없습니다. 연산 프로퍼티의 접근자(get)와 설정자(set)를 통해서 프로퍼티 감시자를 구현할 수 있기 때문입니다. 연산 프로퍼티는 상속받았을 때만 프로퍼티 재정의를 통해서 프로퍼티 감시자를 사용합니다. ✅프로퍼티 감시자 종류 willSet - 프로퍼티 값이 변경되기 전에 호출 didSet - 프로.. 2022. 10. 28. swift 프로퍼티 정리 1 swift 프로퍼티 정리 1 종류 1.저장 프로퍼티 - 인스턴스의 변수 또는 상수를 의미한다. (클래스, 구조체에서 사용) 2.연산 프로퍼티 - 값을 저장하는것이 아니라 특정 연산을 실행한 결과값을 의미한다. (클래스, 구조체, 열거형에 사용) 3.타입 프로퍼티 - 타입에 사용되는 프로퍼티 참고 프로퍼티 감시자 - 프로퍼티의 값이 변하는 것을 감시한다. 값이 변할때 값의 변화에 따른 특정 작업을 실행한다. (저장 프로퍼티에 적용가능) 저장프로퍼티 var 키워드 - 변수 저장 프로퍼티 let 키워드 - 상수저장 프로퍼티 저장 프로퍼티를 정의할 때 프로퍼티 기본값과 초깃값을 지정해 줄 수 있다. 참고 *구조체의 저장 프로퍼티가 옵셔널이 아닐때 - 구조체는 저장 프로퍼티를 모두 포함하는 이니셜라이저를 자동으로.. 2022. 10. 24. swift - 클래스와 구조체 정리하기 swift - 클래스와 구조체 구조체와 클래스 구조체와 클래스는 개발자가 데이터를 용도에 맞게 묶어서 표현하고자 할 때 유용하다. 구조체의 인스턴스는 값 타입이고, 클래스의 인스턴스는 참조 타입이다. struct Person{ var name: String var age: Int } 구조체 인스턴스의 생성 및 초기화 구조체 정의를 하고, 구조체의 인스턴스를 생성하고 초기화 하려면 기본적으로 생성되는 멤버 와이즈 이니셜라이저를 사용한다. 구조체에 기본 생성된 이니셜라이저의 매개변수는 구조체의 프로퍼티 이름으로 자동 저장된다. 인스턴스가 생성되고 초기화 된 후 프로퍼티 값에 접근하고 싶다면 ( . ) 마침표를 사용하면 된다. [참고] 구조체를 상수 let으로 선언하면 인스턴스 내부의 프로퍼티 값은 변경할 수.. 2022. 10. 17. 캡슐화 - 정보은닉 캡슐화 - 정보은닉 객체가 특정한 목적을 위해 필요한 변수나 메소드를 하나로 묶는 것을 뜻한다. 클래스를 만들때 이 클래스에서 만들어진 객체가 목적을 잘 수행할 수 있도록 변수와 메서드를 관련성이 있게 클래스에 구성해야 한다. 1.상속을 받지 않았다면 객체 멤버는 객체를 생성한 후 객체 참조 변수를 이용해 접근해야 한다. 2.정적 멤버는 클래스명.정적멤버 형식으로 접근하는 것을 권장한다. 정적 멤버인 경우 클래스명.정적멤버 형식으로 접근해야하는 이유는 일관된 형식으로 접근하기 위해서다. 그리고 객체를 생성한 경우에는 객체참조변수명.정적멤버 형태로도 접근할 수도 있다. 정적 멤버는 어떤 경우에 쓰나? -사람 클래스의 인구수 -고양이의 다리 개수 사람.인구, 고양이.다리개수 형식으로 접근하는 것이 홍길동.인.. 2022. 10. 14. 다형성에는 오버라이드와 오버로드가 있다 다형성에는 오버라이드와 오버로드가 있다 다형성: 사용편의성 객체 지향에서 다형성이라고 하면 오버라이딩과 오버로딩이라고 할 수 있다. 물론 상위 클래스와 하위 클래스 사이에서도 다형성을 이야기 할 수 있고, 인터페이스와 그것의 구현 클래스 사이에서도 다형성을 이야기 할 수 있지만 가장 기본은 오버라이딩과 오버로딩이라고 할 수 있다. 오버라이딩과 오버로딩 -같은 메서드 이름. 같은 인자 목록으로 상위 클래스의 메서드를 재정의 => 오버라이딩 -같은 메서드 이름. 다른 인자 목록으로 다수의 메서드를 중복정의 => 오버로딩 ride - 올라타다 load - 적재하다. 결과 다형성과 메모리 위 그림은 5번째 줄을 실행한 후 메모리 상태이다. 그림에서 주목할 것은 Penguin 클래스가 상위 클래스인 Animal .. 2022. 10. 13. 상속은 상위 클래스기능을 하위 클래스로 확장하고 재사용하는 기술 상속은 상위 클래스기능을 하위 클래스로 확장하고 재사용하는 기술 상속 : 재사용 + 확장 상속은 조직도가 아니라 재사용과 확장으로 이해하는 것이 맞다. 즉, 분류도로 이해해야 한다. 동물은 포유류의 부모가 아니다. 고래의 부모가 포유류일 수도 없다. 동물 중 분류를 조금더 세분화해서 포유류와 조류가 나온다. 포유류를 조금 더 분류해서 고래, 박쥐가 나오는 것이다. 객체 지향에서의 상속은 상위 클래스의 특성을 하위 클래스에서 상속하고 거기에 더해 필요한 특성을 추가 확장해서 사용할 수 있다는 의미이다. 정리 -객체지향의 상속은 상위 클래스의 특성을 재사용하는 것이다. -객체지향의 상속은 상위 클래스의 특성을 확장하는 것이다. -객체지향의 상속은 is a kind of 관계를 만족해야 한다. (해석:하위 클.. 2022. 10. 13. 클래스 맴버 vs 객체 멤버 클래스 맴버 vs 객체 멤버 클래스 맴버 vs 객체 멤버 = static 멤버 vs 인스턴스 멤버 클래스와 객체를 구별하는 법 -생물인 경우 “나이가 어떻게 되죠?” -무생물인 경우 “제조일자가 어떻게 되죠?” 객체는 유일무이하게 존재하는 실체이기 때문에 속성에 값을 가지고 있다. 클래스는 개념이면서 분류 체계일 뿐이므로 속성에 값을 가질 수 없다. 하지만 아래 질문은 어떤가? 미키의 꼬리는 몇개인가? 쥐의 꼬리는 몇개인가? 모든 질문의 답은 한개다. 위 질문에서 미키마우스는 객체다. 당연히 꼬리 개수에 답이 있다. 그런데 쥐는 클래스인데 꼬리 개수에 답이 있다. 꼬리 개수는 객체의 속성이지만 모든 객체가 같은 값을 가지고 있기에 클래스를 통해 질문해도 하나라는 답을 알 수 있다. 위 그림을 보면 Mou.. 2022. 10. 11. 자바에서 객체들은 메모리에 어떻게 표시될까? 자바에서 객체들은 메모리에 어떻게 표시될까? 객체지향은 인간이 눈으로 보고, 느끼고, 생활하는 현실 세계처럼 프로그래밍을 할 수는 없을까? 라는 고민 속에서 탄생했다. 즉, 0과 1로 대변되는 기계에 맞춰서 사고하던 방식을 버리고 현실세계를 실제로 인지하는 방식으로 프로그램을 만들자는 것이다. (객체지향이 현실 세계를 반영한다.) 객체지향의 큰그림 -세상에 존재하는 모든 것은 사물, 즉 객체이다. -각각의 사물은 고유하다. -사물은 속성을 갖는다. -사물은 행위를 한다. 그리고 사물을 하나하나 이해하기 보다는 사물을 분류(class)해서 이해하는 것이 인간의 인지법이다. -직립보행을 하며 말을 하는 존재를 사람이라고 분류한다. -밤하늘의 반짝이는 사물을 별이라고 분류한다. 손흥민, 김종민 이라고 하는 존.. 2022. 10. 7. 이전 1 2 3 4 5 6 7 ··· 43 다음