• Like
Aula 1 - Linguagem III
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Aula 1 - Linguagem III

  • 181 views
Published

Aula 1 - Linguagem III

Aula 1 - Linguagem III

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
181
On SlideShare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
5
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. UNIJUÍ – DETEC – Ciência da Computação Prof. Msc. Juliano Gomes Weber (jgw@unijui.edu.br) Linguagem de programação III Notas de Aula – Aula 01 1º Semestre - 2010 jgw@unijui.edu.br
  • 2. • Objetivo da aula de hoje • • • Apresentações: • Tópicos que serão abordados na disciplina; • Alunos; • Professor; Sistemática de avaliação; Revisão de conteúdo base para esta disciplina; jgw@unijui.edu.br
  • 3.  Tópicos que serão abordados na disciplina  Persistência de Objetos - Banco de dados e Java  Programação em Rede - Sockets  Programação para Internet  Principal ferramenta NETBEANS IDE Tecnologias Web jgw@unijui.edu.br
  • 4. Sobre vocês ?  Apresentação individual     Semestre letivo individual? Trabalha na área? Experiência com programação? Experiência com Java?
  • 5.  Formação    Sobre o Professor Bacharel em informática UNIJUI – 2001 Mestre em Computação - UFSM - 2009 Histórico Profissional     Unijuí - Programador Sênior; Unicruz - Professor do curso de Ciência da computação; Escola técnicas, Sistemas comercias, sistemas para internet; Desenvolvimento de sistemas complexos;  Análise e desenvolvimento de sistemas;
  • 6. Sistemática de avaliação     Avaliação contínua e individual; Trabalho para a disciplina (será definido em breve); Provas; Trabalhos individuais;
  • 7. Início da revisão - Orientação à objetos Utiliza uma perspectiva mais humana de observação da realidade, incluindo objetos, classificação e compreensão hierárquica
  • 8. Contexto Histórico A    crise do desenvolvimento do software: Demanda muito superior à capacidade de desenvolvimento; Qualidade insuficiente dos produtos; Estimativas de custo e tempo raramente cumpridas nos projetos.  Surge a Engenharia de Software
  • 9. Engenharia de Software Busca organizar esforços no desenvolvimento de ferramentas, metodologias e ambientes de suporte ao desenvolvimento de software
  • 10. Programação Orientada a Objetos  Foco nos dados (objetos) do sistema, não nas funções  Estruturação do programa é baseada nos dados, não nas funções  As funções mudam mais do que os dados
  • 11. Paradigma Orientado a Objetos  Pressupõe que o mundo é composto por objetos  Objeto é uma entidade que combina estrutura de dados e comportamento funcional  Os sistemas são modelados como um número de objetos que se interagem
  • 12. Procedimental vs OO
  • 13. Paradigma Orientado a Objetos A orientação a objetos surgiu nos primórdios da década de 70, com as linguagens ADA, SIMULA e Small Talk.  Ficou bastante difundida nos anos 80, com linguagens como o C++, e teve uma recente explosão em difusão nos anos 90, através da linguagem Java.  Hoje é um padrão de fato!
  • 14. Benefícios da OO  Reutilização  Extensibilidade  Manutenção  Redução na quantidade de erros
  • 15. Encapsulamento     Usado para esconder detalhes de implementação Não é necessário saber como a classe está implementada para chamar o método necessário. Basta saber a interface do método Os atributos de um objeto só devem ser manipulados pelos métodos do próprio objeto (orientação a objeto pura).
  • 16. Variáveis da Instância X da Classe Variáveis da classe    Só existe uma cópia de cada variável Todos as instâncias acessam a mesma cópia das variáveis São criadas apenas uma vez assim que o sistema reconhece a classe Variáveis da Instância    Existe uma cópia para cada instância criada Cada instância acessa a sua cópia São criadas sempre quando uma nova instância é gerada
  • 17. Identificando Objetos  Em uma sala existe um conjunto de objetos físicos que podem ser facilmente identificados, modelados e classificados como objetos OO.  Mas em um problema onde o espaço é uma aplicação de software, os objetos podem não ser facilmente encontrados.
  • 18. Identificando Objetos Os objetos podem ser identificados analisando-se o problema ou fazendo um “parser gramatical” do texto contendo a descrição do problema  Objetos são determinados sublinhando-se cada substantivo;
  • 19. Objetos, classes, métodos e atributos Detalhando...
  • 20. Objetos  Mundo real formado por elementos: Objetos  Objetos podem ser coisas concretas ou abstratas  Ex: Carro, Pessoa, Emissão de Nota, etc
  • 21. Estado do Objeto  Conjunto de suas propriedades associadas a seus valores correntes  Propriedades geralmente referenciadas como Atributos  Ex: Propriedades:  Cor = Vermelha  Ano = 2001  Velocidade = 0 Km/h  Combustível = Gasolina
  • 22. Comportamento do Objeto  Conjunto de serviços ou operações que outros objetos podem requisitar  Operações geralmente referenciadas como Métodos  Representa como o objeto reage às Mensagens a ele enviadas Operações  Ex     Acelerar ( ) Frear ( ) Acender Faróis ( ) Virar a Direita ( )
  • 23. Identidade Única  Objetos têm existência própria  São distintos mesmo se seus estados e comportamento forem iguais  Identificador que permite referência inequívoca  Ex Ferrari do Luciano
  • 24. Classes  No mundo real, diferentes objetos desempenham o mesmo papel Automóveis A estrutura e o comportamento comuns dos objetos podem ser agrupados
  • 25. Classes  Modelo que descreve a estrutura e o comportamento de objetos comuns = Classe  Objetos que se comportam da maneira especificada pela classe são ditos Instâncias dessa classe  Ex Ferrari do Luciano é um Instância da Classe Automóvel
  • 26. Classe abstrata  Pelo menos um de seus métodos está declarado mas não têm implementação associada.  Método abstrato: método sem implementação  Não gera instância  Só pode ser usada como base para outras classes   herança Cada subclasse deverá implementar o método abstrato da superclasse (classe abstrata)
  • 27. Exemplo Pessoa abstratos telefone alterarTelefone(tel.) Professor Aluno telefone telefone alterarTelefone(tel.) alterarTelefone(tel.)
  • 28. Polimorfismo  Polimorfismo é a habilidade de diferentes instâncias, de classes diferentes, responderem a mesma mensagem de diferentes maneiras.   executar métodos com a mesma assinatura mas implementados de maneira diferente Classe polimórfica:  quando instâncias suas ou instâncias de classes derivadas suas possuem mensagens que nem sempre são respondidas da mesma maneira - a resposta irá depender do contexto da execução.
  • 29. Restrição de acesso (métodos e atributos)  Public: sem restrição. Qualquer objeto pode acessar tal método/atributo  Private: apenas o objeto que possui o método/atributo pode acessa-lo  Protect: apenas os objetos das classes do mesmo pacote podem acessar o método/atributo  Default:   atributo -> C++: private / JAVA: private método -> C++: private / JAVA: public
  • 30. OO e JAVA  Como java? implementar o paradigma OO em
  • 31. Definindo Classes em Java public class NomeDaClasse { CorpoDaClasse } O corpo de uma classe pode conter • atributos • métodos • construtores (inicializadores) • outras classes...
  • 32. Exemplo public class LeImprime { /** Lê e imprime um string */ public static void main(String[] args) { String nome; nome = Util.readStr(); System.out.println(nome); } }
  • 33. Definindo Atributos em Java public class Livro { private int anoDePublicacao; private int numeroDePaginas; private String titulo; ... }  cada atributo tem um tipo específico que caracteriza as propriedades dos objetos da classe  int e String denotam os tipos cujos elementos são inteiros e strings
  • 34. Tipos em Java  Primitivos      char int boolean double ...  Referência    classes (String, Object, Livro, Conta, etc.) interfaces arrays Os elementos de um tipo primitivo são valores, enquanto os elementos de um tipo referência são (referências para) objetos!
  • 35. Definindo Atributos em Java public class Pessoa { private int anoDeNascimento; private String nome, sobrenome; private boolean casado = false; ... }  vários atributos de um mesmo tipo podem ser declarados conjuntamente  podemos especificar que um atributo deve ser inicializado com um valor específico
  • 36. Definindo Métodos em Java public class Conta { private String numero; private double saldo; } public void creditar(double valor) { saldo = saldo + valor; } ... Um método é uma operação que realiza ações e modifica os valores dos atributos do objeto responsável pela sua execução
  • 37. Definindo Métodos em Java public class Conta { ... } parâmetros do método public void debitar(double valor) { saldo = saldo - valor; } tipo de retorno corpo do método Por quê o debitar não tem como parâmetro o número da conta?
  • 38. Outro exemplo... public class <nome> { public static void main (<parametros>) { <declarações> <comandos> } } Onde, main: método por onde se inicia a execução public: parâmetro de acesso static: indica que main se aplica à classe void: indica que main não retorna um valor
  • 39. Definindo Métodos em Java O tipo do valor a ser retornado pelo método  Nome do método  Lista, possivelmente vazia, indicando o tipo e o nome dos argumentos a serem recebidos pelo método Usa-se void para indicar que o método não retorna nenhum valor, apenas altera os valores dos atributos de um objeto
  • 40. Definindo Métodos em Java public class Conta { private String numero; private double saldo; } public String getNumero() { return numero; } public double getSaldo() { return saldo; } ... Os métodos que retornam valores como resultado usam o comando return
  • 41. O Corpo do Método  Comandos que determinam as ações do método  Estes comandos podem    realizar simples atualizações dos atributos de um objeto retornar valores executar ações mais complexas como se comunicar com outros objetos
  • 42. Comunicação entre objetos  Os objetos se comunicam para realizar tarefas  A comunicação é feita através da troca de mensagens ou chamada de métodos  Cada mensagem é uma requisição para que um objeto execute uma operação específica conta.creditar(45.30) variável contendo referência para objeto nome do método a ser executado
  • 43. Exercício  Crie  Crie uma classe Pessoa com 2 atributos uma classe Aluno que seja uma classe filha da classe Pessoa