Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > b611ea73723a8287cce23d3124a6eeea > files > 278

howto-sgml-ko-2006-5mdv2010.0.noarch.rpm

#!/bin/bash
# obj-oriented.sh: ½© ½ºÅ©¸³Æ®¿¡¼­ °´Ã¼ ÁöÇâÀû ÇÁ·Î±×·¡¹Ö Çϱâ.
# Stephane Chazelas ÀÛ¼º.


person.new()        # C++ ÀÇ Å¬·¡½º ¼±¾ðó·³ º¸ÀÔ´Ï´Ù.
{
  local obj_name=$1 name=$2 firstname=$3 birthdate=$4

  eval "$obj_name.set_name() {
          eval \"$obj_name.get_name() {
                   echo \$1
                 }\"
        }"

  eval "$obj_name.set_firstname() {
          eval \"$obj_name.get_firstname() {
                   echo \$1
                 }\"
        }"

  eval "$obj_name.set_birthdate() {
          eval \"$obj_name.get_birthdate() {
            echo \$1
          }\"
          eval \"$obj_name.show_birthdate() {
            echo \$(date -d \"1/1/1970 0:0:\$1 GMT\")
          }\"
          eval \"$obj_name.get_age() {
            echo \$(( (\$(date +%s) - \$1) / 3600 / 24 / 365 ))
          }\"
        }"

  $obj_name.set_name $name
  $obj_name.set_firstname $firstname
  $obj_name.set_birthdate $birthdate
}

echo

person.new self Bozeman Bozo 101272413
# "person.new" ÀνºÅϽº »ý¼º(½ÇÁ¦·Î´Â ÀÎÀÚ¸¦ ÇÔ¼ö·Î ³Ñ±â´Â °ÍÀÓ).

self.get_firstname       #   Bozo
self.get_name            #   Bozeman
self.get_age             #   28
self.get_birthdate       #   101272413
self.show_birthdate      #   Sat Mar 17 20:13:33 MST 1973

echo

# »ý¼ºµÈ ÇÔ¼ö¸¦ º¸·Á¸é 
# typeset -f
# ¶ó°í ÇØ º¸¼¼¿ä(È­¸éÀÌ ÁÖ·ç·è ¿Ã¶ó°¡´Ï±î Á¶½ÉÇϼ¼¿ä).

exit 0