A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Implementação Orientada a Objetos Marcia A. S

Apresentações semelhantes


Apresentação em tema: "Implementação Orientada a Objetos Marcia A. S"— Transcrição da apresentação:

1 Implementação Orientada a Objetos Marcia A. S
Implementação Orientada a Objetos Marcia A. S. Bissaco Universidade de Mogi das Cruzes

2 Créditos Apresentação preparada com material de apresentações de:
Danielle Martins Pedro Toledo Rodrigo Rocha

3 Programação orientada a objetos
Objetivo da disciplina Ao final do semestre, o aluno deverá ter aprendido quais os conceitos básicos da técnica de programação orientada a objetos e quais as características de uma linguagem de programação orientada a objetos. O aluno deverá também ter adquirido habilidades e competências para desenvolver programas de baixa complexidade usando a linguagem Java.

4 Programação orientada a objetos
Ementa Histórico e evolução das técnicas de programação. Conceitos de implementação orientada a objetos. Linguagens de programação orientadas a objetos. Ferramentas para desenvolvimento de aplicações orientadas a objetos e introdução a linguagem orientada a objetos (Java). Implementação de classes, atributos e métodos. Trabalhando com objetos. Tipos primitivos e classes relacionadas. Operadores. Estruturas condicionais e de repetição. Encapsulamento e modificadores de acesso. Herança simples. Polimorfismo. Pacotes. Tratamento de exceções.

5 Programação orientada a objetos
Conteúdo Programático Introdução à Orientação a Objetos: Evolução dos paradigmas e técnicas de programação. Conceitos de implementação orientada a objetos. Linguagens de programação orientadas a objetos e introdução à linguagem Java. Tipos primitivos e operadores. Classes e Objetos. Atributos e Métodos. Assinatura e chamada de métodos. Encapsulamento e modificadores de acesso. Métodos construtores e sobrecarga (overload) de métodos. Métodos estáticos e conversão de tipos Agregação e composição de objetos Herança e Polimorfismo. Classes abstratas e sobrescrita (overwrite) de métodos. Pacotes. Tratamento de exceções.

6 Programação orientada a objetos
Conceitos de classe-objeto; Atributos, métodos; Herança; Conceitos de public, private protected; Encapsulamento; Relação generalização-especialização; Polimorfismo; Troca de mensagens entre objetos.

7 Programação orientada a objetos
Metodologia e forma de avaliação Aulas práticas em laboratório. Apresentação dos conceitos e fixação através de exercícios no computador. Desenvolvimento de um projeto que consiste em uma aplicação real envolvendo os conceitos de orientação a objetos estudados. A avaliação do desempenho do aluno referente aos conceitos explicados e implementados no laboratório será realizada através de 2 avaliações escritas (compondo 80% da nota). A avaliação da capacidade do aluno em resolver problemas será realizada através dos desafios solicitados (compondo 20%).

8 Bibliografia Bibliografia Básica
Pádua, W, P. F. “Engenharia de Software”. Fundamentos, métodos e padrões. Editora: LCT, 2001. Santos Neto, ANTONIO GONÇALVES DOS. Java na Web. 1. Rio de Janeiro / Ciência Moderna, 2011.  WINDER, Russel; ROBERTS, Graham.; Desenvolvendo software em Java (3ª Ed); < /pages/ >  RUTTER, Jake. Smashing jQuery: Interatividade Avançada com JavaScript Simples, Bookman, <

9 Bibliografia Bibliografia Complementar:
ARNOLD, Ken ; GOSLING, James ; HOLMES, David. A Linguagem de Programação Java, 4ª edição, Bookman,   <  ROMAN, Ed; AMBLER, Scott W.; JEWELL, Tyler . Dominando Enterprise Javabeans, 2ª Edição, Minha Biblioteca. Web. 20 November <  BARNES, D.; KÖLLING, Michael. Programação orientada a objetos com Java: uma introdução prática usando o Blue J. São Paulo: Pearson Prentice Hall, p. + 1 CD-ROM ISBN Número de Chamada:  B261p  BRAUDE, Eric . Projeto de Software: Da programação à arquitetura: Uma abordagem baseada em Java, Minha Biblioteca. Web. 20 November <  GOODRICH, Michael T. ;TAMASSIA, Roberto . Estruturas de Dados e Algoritmos em Java, 4ª edição, Minha Biblioteca. Web. 20 November <

10 Bibliografia Booch, G; Rumbaugh, J. ; Jacobson, I.” UML -Guia do usuário”. Editira Campus Cay S. ; Horstmann; Gary Cornell “ Core Java – Volume I – Fundamentals”. Sun Microsystems Press Deitel, H. M.; Deitel, P. J. “Java como programar”. Editora Bookman 2000. Coad, P, Yourdon, E, Análise baseada em objetos. Editora Campus – Coad, P, Yourdon, E, Projeto baseada em objetos. Editora Campus Coad, P. ; Nicola, J. Object-oriented Programming. Editora Yourdon Press

11 Links www.caelum.com.br (java e orientação a objetos – FJ 11)
(site voltado para perguntas e respostas técnicas e objetivas na área de T.I. e programação.) (História do Java) (convenções do Java)

12 Programação orientada a objetos
Datas importantes Avaliação P1 (19/10) Prova integrada (30/11) (30%) Avaliação P2 (30/11) Projeto (7/12) Exercícios: todas as aulas Atividade pontuada: (5/10 e 23/11)

13 Ferramentas de trabalho
Documentação: UML (Astah, outros); Implementação/execução: Linguagem java Editor de código: Bloco de notas ou Notepad ++ Termo/Expressão Descrição JRE Java Runtime Environment. Instala a JVM para execucao de classes Java JDK Java Development Kit. API para desenvolvedores. Inclui compilador JVM Java Virtual Machine

14 Orientação a Objetos Conceito: O termo orientação a objetos significa organizar o mundo real como uma coleção de objetos; Exemplos de Linguagens que implementam OO: Smalltalk; Object Pascal (DELPHI); C++; C#; Java; Visual Basic; Python; Ruby; Objective C.

15 Muitas empresas não adotam OO devido a
Incerteza; Falta de pessoas treinadas; Porque OO não é a “bala de prata”, não resolve todos os problemas.

16 Mudança de Paradigma

17 Paradigma Conceito: “Paradigma é um conjunto de regras que estabelecem fronteiras e descreve como resolver os problemas dentro destas fronteiras.” Os paradigmas influenciam nossa percepção; ajudam nos a organizar e a coordenar a maneira como olhamos para o mundo...

18 Mudança do enfoque Código fonte organizado em blocos/módulos
Functions e procedures Execução linear Código extenso e confuso Goto e Gosub Difícil reutilização de código Abstração de entidades do mundo real em entidades de código Quebra de um problema grande em pequenos problemas coesos Facilidade de criação / manutenção Focado em reuso

19 Mudança do enfoque Foco no Sistema Foco na Classe

20 Linguagens Orientadas a Objetos
Mudança do enfoque Linguagens Orientadas a Objetos Linguaguens Tradicionais Objeto Valor Classe Tipo Mensagem Chamada de Procedimento Método Procedimento ou Função

21 O que são Objetos? Coisas tangíveis, Eventos e Transação.
Coisas Tangíveis: Livro, Telefone ; Eventos: Copa do mundo, Simpósio; Transação: Um contrato, Um pedido de compra. Todo objeto é uma instância de uma Classe.

22 O que são Objetos? Objetos são pacotes de software compostos de dados e procedimentos, sendo que: procedimentos atuam sobre os dados; dados determinam o estado do objeto. Todo objeto é uma instância de uma Classe.

23 O que são Classes? Uma classe é a abstração de um conjunto de objetos com características semelhantes. Uma classe define o comportamento de seus objetos através de métodos e os estados possíveis destes objetos através de atributos. De forma geral uma classe descreve os serviços providos por seus objetos e quais informações eles podem armazenar.

24 O que são Classes? Classe é um tipo definido que contém o molde, a especificação para os objetos (como, por exemplo, o tipo inteiro contém o molde para as variáveis declaradas como inteiros). É um formatador de objetos. A classe associa funções (comportamentos/métodos) e dados, (atributos) controlando o acesso a estes. Clase é uma entidade de código que abstrai uma entidade do mundo real, agrupando suas características e comportamentos comuns.

25 O que são Classes? Exemplo - Sistema médico: Médico Paciente Consulta
(Mudança de paradigma: Paradigma estruturado) Médico Paciente Consulta nome CRM telefone idade data horario local cadastrar inativar consultar agendar Entidades: Características: Comportamentos:

26 O que são Classes? Exemplo - Sistema médico: Médico Paciente Consulta
(Mudança de paradigma: Paradigma estruturado) Médico Paciente Consulta nome CRM telefone idade data horario local cadastrar inativar consultar agendar Entidades: Características: Comportamentos:

27 O que são Classes? Exemplo - Sistema médico: Classes: Médico nome CRM
(Mudança de paradigma: Paradigma Orientado a Objetos) Classes: Médico nome CRM cadastrar inativar Paciente nome telefone idade cadastrar Consultar Consulta data horario local agendar Atributos: Métodos:

28 O que são Classes? Exemplo - Sistema médico: Classes: Médico nome CRM
cadastrar inativar Paciente nome telefone idade cadastrar Consultar Consulta data horario local agendar Atributos: Métodos:

29 O que é um OBJETO? Uma instância de uma classe
Resumindo: O que é um OBJETO? Uma instância de uma classe Uma classe pode gerar N objetos Tem o mesmo formato da classe que o originou Tem valores individuais para os atributos da classe Existe em tempo de execução Médico nome: João CRM: cadastrar inativar Consulta data: 10/11/2013 horario: 08:30 local: sala 6 agendar Paciente nome: Ana telefone: idade: 42 cadastrar Consultar Paciente nome: Maria telefone: idade: 35 cadastrar consultar Médico nome: João CRM: cadastrar inativar

30 Classes são arquivos do código fonte

31 Modelagem de todas as classes de um sistema

32 Exercício Quais classes poderiam ser criadas para um sistema:
De uma escola Professor, Aluno, Disciplina, Turma, Série, Aula, Boletim, Matrícula, PlanoDeEnsino De uma transportadora Veículo, Motorista, Cidade, Rota, Frota, Carga, NotaFiscal De uma editora de livros Livro, Autor, Capítulo, Editor, Revisor, Revisão, Capa, Índice, Ilustrador, Tradutor, Edição

33 Exercício Quais classes poderiam ser criadas para um sistema:
De uma escola Professor, Aluno, Disciplina, Turma, Série, Aula, Boletim, Matrícula, PlanoDeEnsino De uma transportadora Veículo, Motorista, Cidade, Rota, Frota, Carga, NotaFiscal De uma editora de livros Livro, Autor, Capítulo, Editor, Revisor, Revisão, Capa, Índice, Ilustrador, Tradutor, Edição

34 Objetos ­ Notação Procedimentos Dados

35 Exemplo de objeto Um carro: parar acelerar trocar a marcha buzinar
modelo marca ano trocar a marcha buzinar virar

36 Exemplo de objeto Um conta bancária: transferências Emitir extrato
depositar cliente número saldo limite Solicitar saldo sacar transferências

37 Exercício (10 minutos) Liste 3 métodos e 3 atributos para os seguintes objetos: Funcionário; Aluno; Pedido de um cliente;

38 Encapsulamento Conceito: Encapsulamento é definido como uma técnica para minimizar as interdependências entre “módulos'‘. Benefícios: Segurança: protege os atributos dos objetos de serem corrompidos por outros objetos; Independência: “escondendo'' seus atributos e métodos.

39 Troca de mensagens Objetos interagem e comunicam se através de mensagens... Emissor Receptor

40 Mensagens e métodos As mensagens identificam os métodos a serem executados no objeto receptor. Para invocar um método de um objeto, deve-se enviar uma mensagem. Para enviar uma mensagem é necessário: identificar o objeto que receberá a mensagem; identificar o método que o objeto deve executar; passar os argumentos requeridos pelo método.

41 Exemplo de troca de mensagens
Obter preço preço Produto Calcular Total Pedido

42 Métodos ou operações Conceito: É a implementação de um serviço prestado pelo objeto para a comunidade de objetos ou a si mesmo. Tipos de Métodos: métodos de acesso; métodos gerais.

43 Métodos - Exemplos Objeto: Fita de vídeo. Métodos de acesso
situação da fita, nome do filme, preço de aluguel. Métodos gerais cadastramento, empréstimo, exclusão.

44 Classe em Java [ palavra-chave ] ‘class’ NomeDaClasse {
  // comportamentos e variáveis são declarados e descritos entre { } } Sendo assim, para declarar uma classe, coloque a palavra class seguida de um identificador (NomeDaClasse) que será o nome da classe. O identificador pode ser qualquer palavra, exceto palavras reservada da linguagem. Por exemplo, class Conta introduz a declaração de uma nova classe onde Conta é o nome da classe. Dica: Por convenção, o nome de uma classe inicia sempre com uma letra maiúscula. A palavra-chave é opcional e pode ser qualquer uma das seguintes: ‘public’, ‘abstract’, ‘public abstract’ ou  ‘final’.

45 Classe em Java [ palavra-chave ] ‘class’ NomeDaClasse ‘{‘
  // comportamentos e variáveis são declarados e descritos entre o ‘{‘ e o ‘}’ ‘}’ Utilize a palavra-chave ‘public’ para criar um nome de classe que possa ser utilizado em qualquer outra classe de qualquer programa ou pacote. Colocando public na frente de uma declaração de classe, essa só poderá ser utilizada dentro do código de programa ou pacote atual. É importante salientar que pode se declarar mais de uma classe por arquivo, porém, somente uma delas poderá ser public (pública). Assim, o nome do arquivo do código-fonte deverá ser o mesmo da classe pública.

46 Classe em Java Exemplo: public class ClasseExemplo { }
No exemplo, o nome do arquivo onde ClasseExemplo foi definida deve se chamar ClasseExemplo. Declarar essa classe (pública) em outro arquivo não é permitido e irá gerar um erro de compilação. Java considera diferentes letras maiúsculas e minúsculas. Assim, o nome da classe e o nome do arquivo devem ser exatamente iguais. Isso significa que o nome do arquivo deve ser escrito com o ‘C’ maiúsculo (de Classe) e ‘E’ maiúsculo (de Exemplo). As demais letras devem ser minúsculas.

47 Classe em Java (Continuação)
Exemplo: public class ClasseExemplo { } Utilize a palavra-chave ‘abstract’ para indicar que a classe corresponde a uma classe abstrata. Classes abstratas não podem ser utilizadas para a criação de objetos. Elas só servem como “classes-pai”, para que “classes-filhas” sejam criadas a partir delas. Cada classe possui um “corpo” onde você declara os comportamentos (métodos) e variáveis de estado (atributos ou campos). O corpo começa com o caractere ‘ { ‘ e termina com o caractere ‘ } ’.

48 Criando Objetos Um objeto é uma instância de uma classe. Para criar um objeto, utilize a seguinte sintaxe: ‘new’ construtor O comando new também conhecido como operador de criação, cria um novo objeto, alocando memória para o objeto e inicializando essa memória para valores default. O comando new necessita de um operando: o construtor, que é o nome de um método especial que constrói o objeto da seguinte forma: Pessoa umaPessoaQualquer = new Pessoa();

49 Criando Objetos Uma vez construído, o objeto deve ser atribuído a uma variável, para que possa ser utilizado e referenciado no futuro. Preste atenção ao exemplo seguinte: class Pessoa{ } class ProgramaExemplo{ public static void main(Strings parametros[]){ Pessoa umaPessoaQualquer; // declara uma variável que pode armazenar objetos do tipo Pessoa (definido na classe anterior) umaPessoaQualquer = new Pessoa(); // cria uma nova pessoa e coloca-a na variável umaPessoaQualquer        }   }      Nesse exemplo foi definida uma classe chamada Pessoa e após, no programa principal, foi criada uma variável chamada umaPessoaQualquer para receber um objeto do tipo pessoa (note que o tipo da variável é Pessoa, pois a variável é declarada de forma similar à declaração de variáveis do tipo int qualquer outro tipo natural da linguagem). Após, um novo objeto do tipo Pessoa é criado, através do comando new Pessoa(). Esse objeto é colocado na variável  umaPessoaQualquer através do comando de atribuição (sinal de igual).

50 Classe Aluno Aluno - media: double nota1: double nota2: double +
calcularMedia() : void imprimir() : void

51 Código da classe Aluno public class Aluno { private double media;
private double nota1; private double nota2; //Construtor public Aluno() { media = 0; } //Métodos de acesso public double getMedia() { return media; public void setMedia(double media) { this.media = media; public double getNota1() { return nota1; public void setNota1(double nota1) { this.nota1 = nota1; public double getNota2() { return nota2; public void setNota2(double nota2) { this.nota2 = nota2; public void calcularMedia() { media = (nota1 + 2 * nota2) / 3; } public void imprimir() { System.out.println("Nota1 " + nota1); System.out.println("Nota2 " + nota2); System.out.println("Media " + media); public static void main(String args[]) { Aluno aluno; aluno = new Aluno(); aluno.setNota1(new Float(args[0]).floatValue()); aluno.setNota2(new Float(args[1]).floatValue()); aluno.calcularMedia(); aluno.imprimir();

52 Java Declara uma classe chamada Carro
public class Carro { private String modelo; public Carro(String aModelo){ modelo = aModelo; } public String getModelo() { return modelo; public void setModelo(String modelo) { this.modelo = modelo; public String toString(){ return "Modelo: " + modelo; public static void main(String arg[]){ Carro carro = new Carro(arg[0]); System.out.println(carro.toString()); Que tem um atributo modelo do tipo String Possui um construtor parametrizado Possui quatro métodos

53 Java public class Carro { private String modelo; public Carro(String aModelo){ modelo = aModelo; } public String getModelo() { return modelo; public void setModelo(String modelo) { this.modelo = modelo; public String toString(){ return "Modelo: " + modelo; public static void main(String arg[]){ Carro carro = new Carro(arg[0]); System.out.println(carro.toString()); Todo programa Java é executado por um programa chamado "java.exe". A primeira coisa que ele faz é procurar na classe que você passou como parâmetro, um método chamado "main" , que seja público , e que ele não precise instanciar um objeto da classe para chamar - é por isso que ele tem de ser static. Outra coisa que o programa faz é passar os argumentos da linha de comando para essa classe, nessa variável "args". Ou seja: java Carro Siena ele chama o método "public static main" da classe Carro e preenche a variável args com o seguinte valor: args[0] = “Siena"

54 Java public class Carro { private String modelo; public Carro(String aModelo){ modelo = aModelo; } public String getModelo() { return modelo; public void setModelo(String modelo) { this.modelo = modelo; public String toString(){ return "Modelo: " + modelo; public static void main(String arg[]){ Carro carro = new Carro(arg[0]); System.out.println(carro.toString()); carro.toString() é uma instância da classe de cadeia de caracteres String. println é um método que imprime a String retornada pelo método toString() println é um método da subclasse PrintStream denominada out na classe String. Este método escreve na tela a cadeia de caracteres que lhe é passada como parâmetro e faz uma quebra de linha (faz com que a próxima escrita na tela seja na próxima linha).

55 Linguagem Java Lançada em 1996, pela empresa Sun
Adquirida pela Oracle em 2009 Globalmente utilizada – 3 bilhões de dispositivos Linguagem Compilada e Interpretada Independência de plataforma Solução: Java Virtual Machine (JVM) JRE – Java Runtime Environment Instala a JVM para execucao de classes Java JDK – Java Development Kit API para desenvolvedores Inclui compilador

56 Maquina Virtual Java (JVM)

57 Instalar o JDK Disponível no site da Oracle para download
ads/index.html

58 Configuração do JDK Para podermos executar os comandos do JDK, temos que configurar variaveis de ambiente do Windows Essas variaveis vao dizer ao sistema operacional onde localizar o SDK para executar os comandos solicitados Clique com o botao direito sobre “Meu Computador” e acesse as Propriedades.

59 Configuração do JDK Na janela de Propriedades, clique na aba “Avancado” Clique no botao “Variáveis de ambiente”

60 Configuração do JDK Não apague o valor de nenhuma váriavel existente!
Localize a variável PATH Clique em editar

61 Configuração do JDK Localize o final do texto na variavel PATH
Iremos acrescentar o caminho da seguinte pasta do JDK (localizar o diretorio instalado) Separar com ponto-e-virgula ; Ex: acrescentar o seguinte caminho: ;C:\Arquivos de programas\Java\jdk1.7.0_04\bin

62 Configuração do JDK Clique em OK Vamos editar a variável CLASSPATH
Se ela ainda não existir, crie uma variável nova com o nome CLASSPATH

63 Configuração do JDK Inclua os seguintes valores na variável CLASSPATH (separados por ponto-e-virgula): Um “ponto” Caminho da pasta lib do JDK Caminho da pasta lib do JRE Ex: .;C:\Arquivos de programas\Java\jre7\lib;C:\Arquivos de programas\Java\jdk1.7.0_04\lib Não esquecer do ponto!

64 Exercício – Executando classe AloMundo
Abra um editor de texto (ex. Bloco de Notas, Notepad++) Digite o seguinte texto: public class AloMundo { public static void main(String[] args) System.out.println("Alo Mundo..."); } Salve o arquivo com o nome AloMundo.java na pasta C:\ex01 Em Java, cria-se uma classe por arquivo e o nome do arquivo deve ser sempre igual ao nome da classe.

65 Exercício – Executando classe AloMundo
Abra o prompt de comando do windows Iniciar -> Executar -> Digite cmd No prompt, navegue até o diretório C:\ex01

66 Exercício – Executando classe AloMundo
Repare que na pasta C:\ex01 existe apenas o arquivo AloMundo.java Vamos compilar este arquivo: no prompt de comando digite javac AloMundo.java Volte na pasta C:\ex01 e veja que agora existe também o arquivo compilado AloMundo.class

67 Exercício – Executando classe AloMundo
Para executar o programa, digite java AloMundo Obs: Nao é necessário escrever a extensão do arquivo na hora de executar, somente na compilação O arquivo que será executado pela JVM é o sempre o arquivo com extensão .class, por isso precisamos compilar antes Se houver erros no código fonte, o compilador não conseguirá gerar o arquivo .class e irá imprimir os erros encontrados


Carregar ppt "Implementação Orientada a Objetos Marcia A. S"

Apresentações semelhantes


Anúncios Google