開発環境
- OS X Lion - Apple(OS)
- BBEdit - Bare Bones Software, Inc.(Text Editor)
- Script言語: Python
『初めてのPython 第3版』(Mark Lutz 著、夏目 大 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-393-7) のVI部(オブジェクト指向プログラミング)のまとめ演習8.(動物の分類)を解いてみる。
その他参考書籍
8.(動物の分類)
コード(BBEdit)
sample.py
#!/usr/bin/env python3.3
#-*- coding: utf-8 -*-
class Animal:
def reply(self):
self.speak()
def speak(self):
print("動物の鳴き声")
class Mammal(Animal):
def speak(self):
print("哺乳類の鳴き声")
class Cat(Mammal):
def speak(self):
print("ニャーニャー")
class Dog(Mammal):
def speak(self):
print("ワンワン")
class Primate(Mammal):
def speak(self):
print("Hello python!")
class Hacker(Primate): pass
if __name__ == '__main__':
animal = Animal()
mammal = Mammal()
cat = Cat()
dog = Dog()
primate = Primate()
hacker = Hacker()
for x in [animal, mammal, cat, dog, primate, hacker]:
print(x.__class__.__name__, end=": ")
x.reply()
入出力結果(Terminal)
$ ./sample.py Animal: 動物の鳴き声 Mammal: 哺乳類の鳴き声 Cat: ニャーニャー Dog: ワンワン Primate: Hello python! Hacker: Hello python! $
ちなみにJavaScriptの場合。
コード(BBEdit)
function Animal(){
this.speak = function(){
$('#pre0').append("動物の鳴き声\n");
};
}
Animal.prototype.reply = function(){
this.speak();
};
function Mammal(){
Animal.apply(this, arguments);
this.speak = function(){
$('#pre0').append("哺乳類の鳴き声\n");
};
}
Mammal.prototype = new Animal();
function Cat(){
Mammal.apply(this, arguments);
this.speak = function(){
$('#pre0').append("ニャーニャー\n");
};
}
Cat.prototype = new Mammal();
function Dog(){
Mammal.apply(this, arguments);
this.speak = function(){
$('#pre0').append("ワンワン\n");
};
}
Dog.prototype = new Mammal();
function Primate(){
Mammal.apply(this, arguments);
this.speak = function(){
$('#pre0').append("Hello, JavaScript!\n");
};
}
Primate.prototype = new Mammal();
function Hacker(){
Primate.apply(this, arguments);
}
Hacker.prototype = new Primate();
var animal = new Animal();
var mammal = new Mammal();
var cat = new Cat();
var dog = new Dog();
var primate = new Primate();
var hacker = new Hacker();
var animals = [animal, mammal, cat, dog, primate, hacker];
for(var i = 0; i < animals.length; i++){
animals[i].reply();
}
0 コメント:
コメントを投稿