POO Programação Orientada a Objetos Prof. Vicente Paulo de Camargo PUCGO O CONTEÚDO DOS SLIDES FAZ REFERÊNCIA AO MATERIAL DA APOSTILA K19-K11 E DO LIVRO JAVA USE A CABEÇA E DO LIVRO JAVA COMO PROGRAMAR (DEITHEL)
PROGRAMAÇÃO ORIENTADA A OBJETOS A Programação Orientada a Objetos (POO) surgiu no final da década de 60 com a linguagem Simula-67. Os conceitos de POO foram aprimorados com a linguagem SmallTak C++ e Java popularizaram a POO
PROGRAMAÇÃO ORIENTADA A OBJETOS Na POO um programa é visto como um conjunto de objetos que se comunicam através de mensagens
PROGRAMAÇÃO ORIENTADA A OBJETOS Na POO um programa é visto como um conjunto de objetos que se comunicam através de mensagens Representam os comportamentos de cada objeto
OBJETOS Objetos são usados para representar entidades ou coisas do mundo real Objetos são utilizados para representar a abstração da realidade para solucionar um determinado problema
OBJETOS Objetos são usados para representar entidades ou coisas do A mundo ABSTRAÇÃO real da Objetos realidade é desprezar o sãoqueutilizados é irrelevante para para representar a a abstração da solução realidade do problema para solucionar um determinado problema
OBJETOS Independentemente se é ANIMADO ou INANIMADO, CONCRETO ou ABSTRATO um objeto possui certas características que facilitam sua identificação Essas características são denominadas de ATRIBUTOS Os objetos possuem também COMPORTAMENTOS que representam ações que são executadas pelo objeto
OBJETOS Um OBJETO possui ATRIBUTOS e COMPORTAMENTOS
OBJETOS CARRO e PESSOA
OBJETOS Um atributo é uma variável que pertence a um objeto Os dados de um objeto são armazenados em seus atributos
OBJETOS NÃO ESQUEÇA: Os objetos não representam apenas coisas concretas como os clientes de um banco ou de uma loja Os objetos são utilizados para representar também coisas abstratas como, por exemplo, conta bancária, uma consulta médica e outros
OBJETOS LEMBRE-SE: UM OBJETO É UMA VARIÁVEL DEFINIDA EM UM PROGRAMA E, EVIDENTEMENTE, ALOCA UM ESPAÇO NA MEMÓRIA DO COMPUTADOR
CLASSES Os objetos são classificados conforme suas semelhanças A POO utiliza o conceito de CLASSE para modelar e codificar os objetos com mesmas CARACTERÍSTICAS e COMPORTAMENTOS Uma classe é um modelo ou molde para criação de objetos Um objeto é denominado de INSTÂNCIA DE UMA CLASSE
CLASSES Os objetos são classificados conforme suas semelhanças A POO utiliza o conceito de CLASSE para modelar e codificar os objetos INSTÂNCIA comé O mesmas SINÔNIMO CARACTERÍSTICAS e COMPORTAMENTOS DE OBJETO. UM OJETO É UMA INSTÂNCIA DE UMA DETERMINADA CLASSE Uma classe é um modelo para criação de objetos Um objeto é denominado de INSTÂNCIA DE UMA CLASSE
CLASSES NÃO ESQUEÇA: ANTES DE UM OBJETO SER CRIADO DEVEMOS DEFINIR SEUS ATRIBUTOS E SEUS COMPORTAMENTOS ESSA DEFINIÇÃO É REALIZADA EM UMA CLASSE
CLASSES CONSIDERANDO QUE UM OBJETO É UMA VARIÁVEL, ENTÃO O TIPO DESSA VARIÁVEL É A PRÓPRIA CLASSE QUE MODELA O OBJETO É POR ISSO QUE UM OBJETO É UMA INSTÂNCIA DE UMA CLASSE
CLASSES JAVA Cada programa Java é uma classe Não esqueça: Cada programa fonte em Java tem a extensão.java Lembre que: Um programa Java compilado tem a extensão.class EXEMPLO DE CLASSE CODIFICADA EM JAVA
CLASSES JAVA E OBJETOS Todo programa Java é uma classe Uma aplicação Java orientada a objetos poderá conter várias classes Só uma dessas classes possuirá o public static void main(...) Essa classe é o programa principal da aplicação As demais classes serão modelos ou moldes dos objetos da aplicação Qualquer classe poderá instanciar objetos de outra classe Uma classe, em certas situações, poderá instanciar os seus próprios objetos Em Java, a criação de um objeto objx de uma classe ClasseX possui o seguinte formato: ClasseX objx = new ClasseX();
CLASSES JAVA E OBJETOS Seja uma aplicação que permite acessar dados de pessoas. Neste caso, a aplicação terá duas classes A classe principal e uma classe para modelar objetos de pessoas Exemplo de codificação da aplicação: Esta classe é o molde para objetos pessoa Objeto p da classe Pessoa class Principal { public static void main(string[] args) { Pessoa p = new Pessoa(); p.nome = Nome de Teste ; p.idade= 25; Na codificação Java para se acessar (ou alterar) o conteúdo de um atributo de um determinado objeto, de uma forma geral, deve-se informar o objeto seguido de ponto(.), que é seguido pelo nome do atributo class Pessoa{ String nome; int idade; Esta é a classe principal da aplicação. Ela possui main()
CLASSES JAVA E OBJETOS Complementos sobre a aplicação class Principal { public static void main(string[] args) { Pessoa p = new Pessoa(); p.nome = Nome de Teste ; p.idade= 25; class Pessoa{ String nome; int idade; Instanciação do objeto p da classe Pessoa
CLASSES JAVA E OBJETOS Melhorando a aplicação. Escrevendo os dados do objeto Pessoa class Principal { public static void main(string[] args) { Pessoa p = new Pessoa(); p.nome = Nome de Teste ; p.idade= 25; String s = Nome= +p.nome+ \n ; s = s+ Idade= +p.idade; System.out.print(s) class Pessoa{ String nome; int idade; Ou: String s= Nome= +p.nome+ \n ; s+ = Idade= +p.idade; Concatena os conteúdos de cada atributo do objeto p na variável String s
Exemplo da classe Carro public class Carro { String marca; String modelo; int marcha; int ano; import java.util.*; public class Principal { public static void main(string[] args) { Scanner sc = new Scanner(System.in); Carro c = new Carro(); System.out.print("Modelo:"); String mo=sc.next(); System.out.print("Marca:"); String ma=sc.next(); System.out.print("Marcha:"); int mch=sc.nextint(); System.out.print("Ano:"); int a=sc.nextint(); c.ano = a; c.marca=ma; c.marcha=mch; c.modelo=mo; String s ="Objeto c:"+"\n"; s+="modelo="+c.modelo+"\n"; s+="marca ="+c.marca+"\n"; s+="marcha="+c.marcha+"\n"; s+="ano ="+c.ano; System.out.print(s);
CLASSES JAVA E OBJETOS Exercício de Fixação Elabore uma aplicação que permita criar dois objetos da classe ContaBancaria, sendo que essa classe possui os seguintes atributos: numbanco(int),numagencia (int), nomeagencia (String) e limite (double). A aplicação deverá solicitar os conteúdos de cada atributo pelo teclado e, em seguida, deve escrever os conteúdos de cada atributo dos dois objetos criados. Use JOptionPane para entrada e saída dos dados