컴퓨터 프로그래밍에서 객체
란 데이터와 그 데이터를 다루는 동작을 함께 포함하는 것이다. 객체 지향 프로그래밍(OOP)
은 이러한 객체들을 사용하여 프로그램을 만드는 방법을 설명한다.
클래스(Class)
추상화(Abstraction)
인스턴스(Instance)
상속(Inheritance)
다형성(Polymorphism)
캡슐화(Encapsulation)
메세지 전송(message sending)
연관(association)
클래스는 객체 지향 프로그래밍의 핵심 원칙 중 하나인 캡슐화, 상속, 다형성을 구현하는데 사용된다. 이러한 개념을 통해 코드의 재사용성과 유지보수성을 높일 수 있다.
class Bird{ } // 내용이 비어있는 클래스 선언
class Bird // 중괄호는 생략 가능
//클래스 내에 프로퍼티와 메서드가 정의된 경우
class Bird
{
//프로퍼티 ...
//메서드 ...
}
//------------------------------------------------------
class Character {
//정보 > 변수 만들고 지정하고 초기화
var name:String = ""
var hairColor:String = ""
var height:Double = 0.0
//행위, 행동
fun fireBall() {
println("파이어볼!")
}
fun compositing(device1:String, device2:String): String {
var device3 = device1 + device2
println("새로운 무기인 ${device3}입니다")
return device3
}
}
BirdClassDefine.kt
fun main()
{
val coco = Bird() //클래스의 생성자를 통한 객체의 생성
coco.color = "blue" //객체의 프로퍼티에 값 할당
println("coco.color : ${coco.color}") //객체의 멤버 프로퍼티 읽기
coco.fly() //객체의 멤버 메서드의 사용
coco.sing(3)
}
class Bird //클래스의 정의
{
//프로퍼티들(속성, 변수)
//초기화 값을 잘 넣어줘야 한다.
var name : String = "mybird"
var wing : Int = 2
var beak : String = "short"
var color : String = "blue"
//메서드들(함수)
fun fly() = println("Fly wing : $wing")
fun sing(vol : Int) = println("Sing vol : $vol")
}