public class BalancoTrimestral { public static void main(String[] args) { int gastosJaneiro = 15000; int gastosFevereiro = 23000; int gastosMarco = 17000; int gastosTrimestre = gastosJaneiro +gastosFevereiro + gastosMarco; System.out.println(gastosTrimestre); }} IntroducaoUm breve relato da historia da Programacao Orientada a ObjetosO termo Programacao Orientada a Objetos foi criado por Alan Kay, autor da linguagem de programacao Smalltalk. Mas mesmo antes da criacao do Smalltalk, algumas das ideias da POO ja eram aplicadas, sendo que a primeira linguagem a realmente utilizar estas ideias foi a linguagem Simula 67, criada por Ole Johan Dahl e Kristen Nygaard em 1967. Note que este paradigma de programacao ja e bastante antigo, mas so agora vem sendo aceito realmente nas grandes empresas de desenvolvimento de Software. Alguns exemplos de linguagens modernas utilizadas por grandes empresas em todo o mundo que adotaram essas ideias: Java, C#, C++, Object Pascal (Delphi), Ruby, Python, Lisp, ...A maioria delas adota as ideias parcialmente, dando espaco para o antigo modelo procedural de programacao, como acontece no C++ por exemplo, onde temos a possibilidade de usar POO, mas a linguagem nao forca o programador a adotar este paradigma de programacao, sendo ainda possivel programar da forma procedural tradicional. Este tipo de linguagem segue a ideia de utilizar uma linguagem previamente existente como base e adicionar novas funcionalidades a ela.Outras sao mais "puras", sendo construidas do zero focando-se sempre nas ideias por tras da orientacao a objetos como e o caso das linguagens Smalltalk, Self e IO, onde TUDO e orientado a objetos.Ideias basicas da POOA POO foi criada para tentar aproximar o mundo real do mundo virtual: a ideia fundamental e tentar simular o mundo real dentro do computador. Para isso, nada mais natural do que utilizar Objetos, afinal, nosso mundo e composto de objetos, certo?!Na POO o programador e responsavel por moldar o mundo dos objetos, e explicar para estes objetos como eles devem interagir entre si. Os objetos "conversam" uns com os outros atraves do envio de mensagens, e o papel principal do programador e especificar quais serao as mensagens que cada objeto pode receber, e tambem qual a acao que aquele objeto deve realizar ao receber aquela mensagem em especifico.Uma mensagem e um pequeno texto que os objetos conseguem entender e, por questoes tecnicas, nao pode conter espacos. Junto com algumas dessas mensagens ainda e possivel passar algumas informacoes para o objeto (parametros), dessa forma, dois objetos conseguem trocar informacoes entre si facilmente.Ficou confuso? Vamos a um exemplo pratico: imagine que voce esta desenvolvendo um software para uma locadora e esta locadora tem diversos clientes. Como estamos tentando modelar um sistema baseado no sistema real, nada mais obvio do que existirem objetos do tipo Clientes dentro do nosso programa, e esses Clientes dentro do nosso programa nada mais serao do que objetos que "simulam" as caracteristicas e acoes no mundo virtual que um cliente pode realizar no mundo real.Vamos apresentar exemplo mais detalhadamente mais para frente, mas antes precisamos especificar mais alguns conceitos.O que e uma Classe, Atributo e Metodo? E pra que serve o Construtor?Uma classe e uma abstracao