● 클래스: 변수와 함수의 모음(연관성 있는 함수와 변수를 한군데에 모아 그룹화하고 사용하기 쉽게 이름을 붙여놓은 것) ⇒ ①클래스의 작성 & ②생성자 작성과
-> ③생성자 호출을 통한 생성자 코드 실행과 인스턴스 생성(클래스 인스턴스화) & ④클래스 사용(클래스 내부에 정의된 변수와 함수 사용)
※ 변수의 타입으로 설정할 수 있는 거의 대부분의 것들이 실은 ‘CLASS’임,
이미 개발자들은 사람들이 자주 사용하는 요소들을 클래스로 만들어 놓았음.
int도 실은 하나의 클래스임.(즉, var가 int 라는 클래스 타입을 가지도록 한다!) ctrl을 누른 후 클릭하면 class안에 감춰진 코드들이 다 짜여져 있음. 여기에 우리가 사용 가능한 프로퍼티와 메서드가 미리 만들어 져있어서, 클래스 사용방법과 같이 class.프로퍼티호출 / class.(메서드호출) 의 방법으로 활용가능.
※ 인스턴스를 찍어내는 틀 만들기. 자동차 틀을 만든다고 하면, 이 틀 안에
자동차의 속도, 연비, 탑승 인원 등의 변수를 만들어 놓고, 브레이크를 밝고 시동을 걸며 엑셀을 밟는 것과 같은 함수의 기본 정보를 탑재해 두면, 후에 이 생성자 함수를 통해 여기에 값만 대입하면 바로 바로 객체를 만들어 낼 수 있을 것임. 구체적인 객체를 만들어 낸다고 해서 ‘생성’자인 것.
※ 클래스(빵틀)->생성자 호출(빵 만들기)->인스턴스(빵)
※ 빵 틀에서 빵을 찍어내 듯, 생성자 함수를 호출하여 클래스에서 정의해 둔 속성과 메소드를 가진 데이터 객체를 만들 수 있는데, 이를 인스턴스(Instance) 라고 부른다.
※ 클래스의 구성요소(변수와 함수)
맴버 변수/속성(Property) : 클래스 내의 변수
맴버 함수/메소드(Method) : 클래스 내의 함수
생성자(Constructor) : 클래스 명과 동일한 함수
※ 클래스 안에 정의된 변수는 프로퍼티라고 하지만 함수 안에 정의된 변수는 프로퍼티가 아닌 변수(지역 변수)라고 한다.
class 클래스명 {
var 변수A // 프로퍼티: 함수 밖에 있어야 합니다.
fun 함수(){
var 변수B // 변수(또는 지역변수): 함수 안에 있어야 합니다.
}
}
클래스의 기본 구조
class 클래스명 {
var 변수
fun 함수() {
// 코드
}
}
문자열을 저장할 수 있는 string 클래스의 코드
class String{
var length: Int
fun plus(other: Any){
// code
}
fun compareTo(other: String){
// code
}
}
length 변수로 문자열의 길이를 알 수 있고, plus 함수는 문자열을 이어붙일 수 있다.
또한 compareTo는 문자열을 비교하는 기능을 제공한다.
① 클래스 코드 작성하기
class 클래스이름 {
// 코드블록- 클래스 스코프 (class scope)
}