클래스와 객체의 정의

Anna·2024년 6월 7일
0

코틀린

목록 보기
14/28
post-thumbnail

OOP (Object-Oriented Progtamming)

컴퓨터 프로그래밍에서 객체란 데이터와 그 데이터를 다루는 동작을 함께 포함하는 것이다. 객체 지향 프로그래밍(OOP)은 이러한 객체들을 사용하여 프로그램을 만드는 방법을 설명한다.

  • 절차적 프로그래밍의 한계를 극복하고자 나온 언너의 한 가지 방법론
  • 프로그램의 구조를 객체 간 상호작용으로서 표현하는 프로그래밍 방식
  • 객체와 관계를 표현하고 이를 통해 확장과 재사용이 용이

객체지향 개념상의 용어들

클래스(Class)
추상화(Abstraction)
인스턴스(Instance)
상속(Inheritance)
다형성(Polymorphism)
캡슐화(Encapsulation)
메세지 전송(message sending)
연관(association)

클래스(Class)란?

  • 분류, 계층, 등급 등의 우리말 뜻
  • 특정 대상을 분류하고 특징(속성)과 동작 활동(함수) 내용을 기록

클래스는 객체 지향 프로그래밍의 핵심 원칙 중 하나인 캡슐화, 상속, 다형성을 구현하는데 사용된다. 이러한 개념을 통해 코드의 재사용성과 유지보수성을 높일 수 있다.

클래스의 선언

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")
}

정리 - 객체(object)와 클래스(class)의 차이

0개의 댓글