contando uma história com o.o

Download Contando uma história com O.O

If you can't read please download the document

Upload: vagner-zampieri

Post on 25-Jun-2015

152 views

Category:

Technology


0 download

TRANSCRIPT

2. Contando uma histria com Orientao a Objeto 3. - Ruby, Python, C++, C#, VB.NET, Java, Object Pascal,Objective-C e Smalltalk so exemplos de linguagens deprogramao orientadas a objetos.- ActionScript, ColdFusion, Javascript, PHP (a partir da verso 4.0),Perl (a partir da verso 5) e Visual Basic (a partir da verso 4)so exemplos de linguagens de programao com suportea orientao a objetos. 4. Conceitos bsicos de O.O.- Classe- Objeto/instncia- Atributo- Mtodo- Mensagem- Herana- Associao- Encapsulamento 5. Vou falar dos 3 porquinhos 6. ObjetoUm objeto capaz de armazenar estados atravs de seus atributose reagir a mensagens enviadas a ele, assim como se relacionar eenviar mensagens a outros objetos. Um objeto est associado comclasse.Ex.: Ccero, Heitor e Prtico. 7. AtributosSo as caractersticas do objeto, basicamente a estrutura dedados que vai representar a classe.Ex.: Nome, peso, altura, idade 8. Classes um conjunto de objetos, a classe define o comportamentodos objetos atravs de seus mtodos.Ex.: Animal, Pig, Wolf, House, TypeHouse 9. Vamos ver um pouco de cdigo :) 10. Animal name weight height agePig < Animal house_idWolf < AnimalHouse type_house_id color length width heightTypeHouse name 11. 1.9.3p194 :002 > p1 = Pig.create(name: Ccero) => #1.9.3p194 :012 > p2 = Pig.create(name: Heitor) => #1.9.3p194 :016 > p3 = Pig.create(name: Prtico) => # 12. 1.9.3p194 :005 > w = Wolf.create(name: "Lobo Mau") => #1.9.3p194 :006 > w.speak => "Aaauuuuuuu" 13. type_house = TypeHouse.find 1 => #1.9.3p194 :003 > p1.create_house(type_house_id: type_house.id, color: Amarela) => #1.9.3p194 :004 > p1.save => trueclass TypeHouse < ActiveRecord:Base has_many :housesendclass House < ActiveRecorBase belongs_to :type_house has_many :pigs, dependent: :nullifyendclass Animal < ActiveRecord:Baseendclass Pig < Animal belongs_to :houseend 14. 1.9.3p194 :011 > type_house = TypeHouse.find 2 => #1.9.3p194 :013 > p2.create_house(type_house_id: type_house.id, color: Marrom) => #1.9.3p194 :014 > p2.save => true 15. 1.9.3p194 :015 > type_house = TypeHouse.find 3 => #1.9.3p194 :017 > p3.create_house(type_house_id: type_house.id, color: Vermelha) => #1.9.3p194 :018 > p3.save => true 16. 1.9.3p194 :001 > w = Wolf.last Wolf Load (2.1ms) SELECT "animals".* FROM "animals" WHERE "animals"."type" IN (Wolf) ORDER BY "animals"."id" DESC LIMIT 1 => #1.9.3p194 :002 > w.blow_the_straw_houseVou soprar, vou soprar e sua casa vou derrubarTypeHouse Load (15.3ms) SELECT "type_houses".* FROM "type_houses" WHERE "type_housHouse Load (1.9ms) SELECT "houses".* FROM "houses" WHERE "houses"."type_house_id" = (1.1ms) BEGINPig Load (1.0ms) SELECT "animals".* FROM "animals" WHERE "animals"."type" IN (Pig) ANDSQL (1.6ms) UPDATE "animals" SET "house_id" = NULL WHERE "animals"."type" IN (Pig) ANSQL (1.6ms) DELETE FROM "houses" WHERE "houses"."id" = $1 [["id", 1]] (20.1ms) COMMIT=> [# w.blowing_wooden_houseVou soprar, vou soprar e sua casa vou derrubarTypeHouse Load (0.7ms) SELECT "type_houses".* FROM "type_houses"WHERE "type_houses"."id" = $1 LIMIT 1 [["id", 2]]House Load (0.8ms) SELECT "houses".* FROM "houses"WHERE "houses"."type_house_id" = 2(0.2ms) BEGINPig Load (0.7ms) SELECT "animals".* FROM "animals" WHERE "animals"."type"IN (Pig) AND "animals"."house_id" = 2SQL (0.7ms) UPDATE "animals" SET "house_id" = NULL WHERE "animals"."type" IN (Pig) AND "animals"."house_id" = 2 AND "animals"."id" IN (2)SQL (0.4ms) DELETE FROM "houses" WHERE "houses"."id" = $1 [["id", 2]](17.3ms) COMMIT => [#] 20. 1.9.3p194 :002 > w.blowing_brick_houseLobo - Vou soprar, vou soprar e sua casa vou derrubarPorcos - Lobo tolo, minha casa de tijolo=> nil 21. 1.9.3p194 :005 > w.chimney_climbLobo - vou comer esses porquinhos => nil1.9.3p194 :006 > w.entering_the_chimneyploft!!. O lobo caiu na panela de gua fervente(0.3ms) BEGIN SQL (10.8ms) DELETE FROM "animals" WHERE "animals"."type" IN (Wolf)AND "animals"."id" = $1 [["id", 4]](21.6ms) COMMIT => # 22. 1.9.3p194 :001 > Pig.singingQuem tem medo do lobo mau, lobo mau, lobo mau ... => nil