Vantagens da orientação a objetos

Tamanho: px
Começar a partir da página:

Download "Vantagens da orientação a objetos"

Transcrição

1 Vantagens da orientação a objetos Torna mais rápidas as atividades de programação e manutenção de sistemas de informação; Tem caráter unificador: trata todas as etapas do desenvolvimento de sistemas e ambientes sob uma única abordagem; Principais Vantagens: Reusabilidade de código Escalabilidade de aplicações Mantenabilidade Apropriação

2 O que é uma classe Uma classe surge da identificação de características e operações similares em objetos distintos; A classe então é a representação de um conjunto de objetos que compartilham a mesma estrutura de atributos, operações e relacionamentos; A classe especifica a estrutura de um objeto sem informar quais serão seus valores;

3 O que é uma classe Num sistema, trabalha-se com instâncias das classes Uma instância de uma classe é um objeto, onde são carregados os dados pertencentes à instância; Uma classe pode ter qualquer número de atributos, ou mesmo atributo nenhum. Também pode ter qualquer número de operações, ou mesmo nenhuma. Exemplos: formulários, receitas

4 Identificação de classes Numa descrição de um software, normalmente classes são substantivos, enquanto verbos são operações candidatas; Objetivo é modelar somente as coisas importantes para o software; Cada classe deve corresponder a uma abstração de dados relevante para a aplicação; Exemplo: o elevador fecha a sua porta e depois move-se para outro andar;

5 Alertas Classes não devem fazer alguma coisa, mas sim oferecer um número de serviços ou objetos de certo tipo; Cuidado ao projetar uma classe que na verdade deveria ser uma rotina de outra classe; Não começar a se preocupar com herança muito no início do processo de modelagem;

6 A classe ideal deve Estar claramente associada a uma abstração relevante para o sistema; Ter o nome da classe como um substantivo, que caracteriza adequadamente a abstração; Representar um conjunto possível de objetos de tempo de execução; Possuir diversas operações disponíveis para ler as propriedades de uma instância; Possuir diversas operações disponíveis para mudar o estado de uma instância;

7 Existem três categorias de classes: Categorias de classes Classe de análise: descreve uma abstração de dados diretamente do domínio do problema; Classe de projeto: pertencem ao espaço da solução; Classe de implementação: descreve uma abstração de dados introduzida para as necessidades internas dos algoritmos do software (ex.: LinkedList, Array, Vector, etc...);

8 Objetos Difícil separação entre classes e objetos Classe serve de modelo para a criação dos objetos Na classe é definida toda a estrutura e comportamento de um objeto O tópico classes foi abordado primeiro pois é a partir das classes que objetos são gerados

9 Identificação de Objetos A identificação de um objeto ocorre segundo suas característica (atributos) e comportamentos (métodos); Na modelagem de sistemas, um objeto é qualquer coisa existente no mundo real; É possível a existência objetos concretos ou abstaratos, por exemplo: aluno, mesa, disciplina, estoque, avaliação e etc; Representa a modelagem de conceitos existentes no cotidiano;

10 Atributos As características ou propriedades de um objeto são chamados seus atributos; Os atributos identificam o estado de um objeto e representam uma abstração do tipo de dados do mesmo; Conforme aumenta o número de atributos, mais fácil é de identificar este objeto;

11 Comportamento Comportamentos modificam o estado do objeto ou prestam serviços a outros objetos (operações); Quando o estado de um objeto for alterado externamente, esta alteração DEVE ser realizada através de operações; Método é a implementação de uma operação;

12 Métodos Os métodos de uma classe manipulam somente as estruturas de dados daquela própria classe, não podendo acessar diretamente dados de outra classe (encapsulamento) ; O acesso aos dados de outra classe DEVE ser feito através da solicitação de serviços; Mensagem é a chamada de uma operação de um objeto sobre outro;

13 Modelagem de objetos Realizar uma avaliação da relação entre atributos e métodos Todo objeto possui limites nítidos com relação ao problema em estudo, portanto, a modelagem deve ser feita dentro de um determinado contexto; Alerta: excesso de atributos e métodos pode significar divisão de classes;

14 Identidade de um objeto Os objetos se distinguem uns dos outros pela sua própria existência, e não pelos valores de seus atributos; Os objetos, assim como na vida real ocupam espaço físico, no computador ocupam memória;

15 Encapsulamento A utilização de um sistema orientado a objetos não deve depender de sua implementação interna, e sim somente de sua interface; O encapsulamento é a propriedade que mantém protegidos os atributos e determinadas operações; Os atributos de um objeto só podem ser acessados e atualizados pelas operações do próprio objeto;

16 Interface A interface de uma classe serve como camada intermediára entre esta classe e o mundo externo; Ela protege os usuários de uma classe de quaisquer alterações, as quais têm de ser feitas de modo transparente para o usuário; As operações (métodos) são a interface da classe, pois é a partir dela que outros objetos se relacionam com a classe;

17 Ocultamento Objetos tem a propriedade de ocultamento de informações Normalmente, não se permite que os objetos saibam como os outros objetos são implementados; Os detalhes de implementação são ocultados no próprio objeto; Exemplo: carro;

18 Acesso a informações 4 tipos de encapsulamento para acessar informações de um objeto: Privado (private) Package/ Default Protegido (protected) Público (public) Menor Visibilidade Maior visibilidade

19 Modificando a acessibilidade Privado: somente o objeto que possui o atributo pode alterar ou acessar este atributo para ler ou alterar o valor que está armazenado nele; Default/Package: permite que o objeto que contém o atributo mais os outros membros do mesmo pacote* possam acessar o atributo sem restrições; * Pacote: ítem de agrupamento utilizado nas linguagens orientadas a objetos pode ser visto simplesmente como um grupo de elementos;

20 Modificando a acessibilidade Protegido: o próprio objeto, objetos do mesmo pacote, e ainda seus objetos descendentes podem acessar/modificar o valor do atributo; Público: o atributo pode ser acessado diretamente por qualquer outro objetosem que se tenha que chamar uma operação no objeto que possui este atributo;

21 Acessibilidade dos métodos Os mesmos tipos de encapsulamento aplicados aos atributos podem ser usados com os métodos operações internas; Não é necessário conhecer a implementação de uma operação para poder usá-la; Possibilita a alteração de como a operação funciona sem que os outros objetos e as chamadas a esta operação tenham que ser alterados;

22 Exemplo: funcionário e pessoa Herança Atributos possíveis de funcionário? Nome, endereço, data de nascimento, estado civil, sexo, data de admissão, cargo, salário; Atributos possíveis de pessoa? Nome, endereço, data de nascimento, estado civil, sexo;

23 Herança Generalização Pessoa Funcionário Especialização

24 Herança Classe mais genérica: Classe mãe ou superclasse; Classe mais específica: Classe filha ou subclasse; O mecanismo de herança das linguagens garante que subclasses recebam, automaticamente, atributos e operações da superclasse;

25 Herança múltipla Tipo especial de herança Java NÃO suporta; Permite que uma classe possua mais de uma superclasse e herde características de todos seus ancestrais; Classe com mais de uma superclasse: classe dejunção;

26 Herança múltipla Vantagem: potencial para maior compartilhamento de código Desvantagem: possibilidade de conflitos de nomes entre as operações herdadas Consequência: maior complexidade dos sistemas;

27 Exemplo herança múltipla Veiculo numpassageiros potencia ano Carro rodas numportas Barco tamanhopes registromarinha Anfibio

28 Herança Contribuição original do paradigma de objetos, que o diferencia da programação com tipos abstratos; Viabiliza a construção de sistemas a partir de componentes reusáveis; Facilita diretamente a extensibilidade em um mesmo sistema;

29 Herança Herança não é limitada a apenas um nível; A árvore de herança (hierarquia de classes) pode ser tão profunda quanto necessário; Métodos e variáveis internas são herdados por todos os objetos dos níveis para baixo; Quanto mais para baixo na hierarquia uma classe estiver, mais especializado o seu comportamento;

30 Exemplo Herança Empregado Executivo Gerente Colaborador Presidente Diretor Gerente Treinamento Gerente Desenvolvimento

31 Exemplo Herança Interpretação: Se B é subclasse de A, então Os objetos da classe B suportam todas as operações suportadas pelos objetos da classe A, exceto aquelas redefinidas; As variáveis de instância de B incluem todas as variáveis de instância de A;

32 Precaução A utilização de herança em linguagens orientadas a objetos pode afetar o encapsulamento de informação; Surge nova categoria de clientes as subclasses; Mudanças na implementação de uma classe poderão comprometer a implementação de suas subclasses;

33 Composição A composição permite que objetos sejam compostos pela agregação de outros objetos ou componentes; Instâncias (objetos) de uma classe são compostas por instâncias de outras classes Formação de uma nova classe como um agregado de classes preexistentes;

34 Composição Decomposição Composição Exemplo: Carro objeto composto por outros objetos

35 Polimorfismo É a capacidade de dois ou mais objetos responderem à mesma mensagem, cada um com seu próprio modo Muitas vezes (nem sempre) o conceito de polimorfismo está ligado à herança. Exemplo : formas geométricas

36 Exemplo polimorfismo Supondo que obj é um objeto, podendo ser retangulo, triangulo ou esfera; Cada objeto tem a propriedade de desenhar a si mesmo obj.desenharretangulo(); obj.desenhartriangulo(); obj.desenharesfera(); DESPERDÍCIO!

37 Exemplo polimorfismo Se quiséssemos desenhar objetos for (...) { if (obj é retângulo) { obj.desenharretangulo(); else if (obj é triângulo) { obj.desenhartriangulo(); else if (obj é esfera) { obj.desenharesfera();

38 Exemplo polimorfismo Entretanto, podemos criar uma classe chamada forma geométrica: class FormaGeometrica { desenhar(); Então, fazemos as classes retângulo, triângulo e esfera herdarem de forma geométrica;

39 Exemplo polimorfismo Com o polimorfismo, não é mais necessário ter uma operação com nome diferente em cada uma das classes para desenhar; Existe uma operação na classe pai (FormaGeometrica), e nas classes filhas (as classes Retangulo, Triangulo e Esfera) a operação é implementada de formas diferentes, de forma específica para cada situação; O objetivo principal do polimorfismo não é a reutilização de código, e sem de simplificar a compreensão do programa;

40 Exemplo polimorfismo Se uma grande quantidade de objetos compartilham o mesmo coportamento com implementações ligeiramente diferentes, encontrar uma maneira de diminuir o número de linhas de código para invocar este comportamento auxilia imensamente; No exemplo, o objeto referenciado por obj será polimórfico, pois pode assumir papel de retângulo, triângulo ou esfera; Desta forma, todos os objetos são tratados como forma geométrica;

41 Exemplo polimorfismo O exemplo anterior implica a existência de métodos com implementação diferente com o mesmo nome em classes distintas; Outras formas simples de polimorfismo: Polimorfismo paramétrico; Overloading; Permite a existência de vários métodos com o mesmo nome, definidos na mesma classe, se diferenciando pelo tipo ou número de parâmetros suportados

42 Exemplo: classe Empregado Exemplo polimorfismo Empregado salario; getsalario(); getsalario(horas);

43 Java Simples e orientada a objetos Projetada pela Sun Microsystems inicialmente para eletrodomésticos em 1991; Atualmente, uma das linguagens de mais ampla difusão e de mais abrangente uso. Concebida inicialmente como um subconjunto de C++; Eliminou construções consideradas complexas ou desnecessárias; Reduzido conjunto de palavras reservadas e um grande poder de expressão.

44 Linguagem robusta Fortemente tipada; Ampla verificação de erros e checagem de tipos em tempo de compilação; Não existem apontadores, e sim referências a objetos criados; Gerência automática da memória (garbage collection).

45 Interpretada e portável Após a compilação, os fontes Java não são executados diretamente pelo hardware; Geração de código intermediário que independe da plataforma e interpretação do mesmo pela máquina virtual Java (JVM); O código intermediário, portanto, não se limita a uma determinada arquitetura; Basta que exista uma JVM sem ela não há como executar um programa..java compilação.class

46 Interpretada e portável (cont.) Programa Java abc.java Compilador abc.class Interpretador Interpretador Interpretador PC Windows Linux Sun Solaris Mac

47 JVM Java Virtual Machine Camada intermediária entre o sistema operacional e as aplicações Java; Traduz os bytecodes (arquivos.class) em instruções de máquina; A grande maioria dos sistemas operacionais possui uma implementação da JVM (Windows, Linux, Solaris, Mac, etc.); Write once, run anywhere.

48 Aspectos de segurança Java oferece várias camadas de controles de segurança que protegem contra código malicioso; Programas Java não podem forjar ponteiros para a memória, nem estourar arrays, nem ler memória que esteja fora das fronteiras de um array ou string; Impede qualquer acesso direto à memória; Bytecodes de códigos de origem desconhecida que são carregados são verificados; O código de origem desconhecida pode rodar, mas é mantido isolado, para não causar danos caixa de areia.

49 Just in Time (JIT) Compilers Traduzem Bytecodes Java para instruções nativas da máquina; Evitam a reinterpretação de blocos de código Java; Úteis se o mesmo bloco de código é executado mais de uma vez; Otimizam a execução de blocos de código repetitivo, como laços; Aumentam o desempenho de programas.

50 Compilador Java (javac); JDK Java Development Kit Visualizador de applets (appletviewer); Interpretador de bytecodes (JVM); Gerador de documentação (javadoc); Debugger (jdb); Ferramenta de gerência de archives Java (jar); Gerador de cabeçalhos e de stub para chamada de métodos nativos (javah); Disassembler (javap).

51 Criando a primeira aplicação Crie um arquivo de nome Hello.java em um editor de texto contendo: public class Hello { public static void main (String[ ] args) { System.out.println ("Hello world!");

52 Criando a primeira aplicação (cont.) Compile o arquivo fonte usando o compilador Java (javac): javac Hello.java O arquivo Hello.class, contendo os bytecodes Java, será criado pelo compilador no mesmo diretório do arquivo fonte; Execute a aplicação usando a JVM: java Hello.java

53 Importando pacotes Um pacote é um conjunto de classes relacionadas: import java.sql.*; import java.io.*; No caso acima, importamos todas as classes de um pacote; Pode-se importar apenas uma classe específica conforme indicado abaixo: Import javax.swing.jframe;

54 Comentários no código /** documentação */ O compilador ignora esse tipo de comentário. O utilitário javadoc, no entanto, utiliza esses comentários para gerar a documentação automática do programa; /* texto /* O compilador ignora todo o texto contido entre as marcações; // linha O compilador ignora todo o texto contido entre a marcação e o final da linha.

55 Definição de classes Uma classe é uma coleção de dados e de métodos que manipulam esses dados; Os dados referentes a uma classe são armazenados em variáveis e as operações sobre eles são implementadas através de métodos; Métodos = construções semelhantes a funções e procedimentos.

56 Definição de classes (cont.) public class Aluno { // Declaração da classe // Variáveis da instância (do objeto) private String nome; private String matricula; private int semestre; // Construtores public Aluno (String n, String m, int s) { this.nome = n; this.matricula = m; this.semestre = s; // Métodos de instância (do objeto) public String getnome () { return nome; public void setnome (String n) { nome = n;

57 Definir antes de usar; Definição de variáveis e constantes Conselho: definir as variáveis próximo de onde elas forem utilizadas; Variáveis definidas dentro de um bloco de código têm a existência limitada ao bloco; Não são permitidas conversões implícitas de tipo.

58 Tipos primitivos O tamanho do tipo em bytes faz parte da especificação da linguagem. Tipo long int short byte double float char boolean Tamanho 8 bytes 4 bytes 2 bytes 1 byte 8 bytes 4 bytes 2 bytes 1 bit Variação ± ± ± a +127 ±1, E+308 ±4, E+38 caracteres UNICODE true, false

59 Conversão de tipos Java permite conversão entre valores inteiros e valores reais; Conversão de ampliação: valor é convertido para um tipo mais amplo Ex: int float Conversão de redução: valor é convertido para outro com menos bits Ex: double int Cuidado: informação pode ser perdida! Ex: converter o int para um byte (compilador reclama) Conversão explícita (cast): é feita colocando-se o nome do tipo pretendido entre parênteses antes da variável a ser convertida.

60 Conversão de tipos - cast int i = 13; byte b = (byte) i; // casting de int para byte i = (int) // casting de double para int Em conversões de números reais para inteiros, a parte fracionária do número real é truncada; O tipo char funciona como um tipo inteiro a maior parte das vezes, podendo, portanto, ser usado em qualquer lugar em que se espere um int ou long.

61 Tipos de referência Classes: Cada classe define um novo tipo de dado a ser manipulado. Vetores: Um vetor representa uma lista de valores de um determinado tipo. Ex: int[ ] vetor de inteiros; aluno[ ] vetor de objetos da classe aluno; aluno[ ][ ] vetor de vetores de aluno.

62 Tipos de referência (cont.) Tipos definidos pelo programador são chamados tipos de referência; Classes e vetores são tipos de dados diferentes dos tipos primitivos são conhecidos como tipos compostos. int [ ] vet = {1, 2, 3; // define vetor de inteiros String str = new String ( Java ); // define a classe String // como objeto

63 Sumário de operadores Operadores. [ ] ( args ) ~! new Tipo de operando objeto, membro vetor, inteiro método, lista de args variável número inteiro booleano classe Operação executada acesso a membro do objeto acesso a elemento do vetor invocação do método incremento, decremento mais, menos complemento (NOT bit a bit) NOT booleano criação de objetos

64 Sumário de operadores (cont.) Operadores ( type ) *, /, % + < <= > >= ==!= = *=, /=, %=, +=. -=,... Tipo de operando tipo, qualquer coisa número, número string, qualquer coisa número, número primitivo, primitivo primitivo, primitivo variável, valor variável, valor Operação executada cast (conversão explícita) multiplicação, divisão e resto concatenação menor/maior igual (o mesmo valor) não igual (valores diferentes) atribuição Atribuição geminada com oper.

65 Exercícios Crie uma classe Teste para exercitar tipos básicos e operadores conforme a seguir: public class Teste { public static void main (String[] args) { 1) Declare três variáveis inteiras (int): valor1, res1, res2. Inicialize-as com os seguintes valores: 1000, pós-incremento de valor 1 e pré decremento de valor 1. Mostrar os valores das variáveis utilizando o comando System.out.println ( ); 2) Declare uma variável do tipo float chamada valor2. Inicialize-a com a variável valor1. Acumule o valor de valor1 novamente em valor2. Mostre o valor da variável valor2;

66 Exercícios (cont.) 3) Declare uma variável do tipo double chamada valor3 e inicialize-a com a variável valor2 multiplicada por 3. Mostre o valor de valor3; 4) Declare uma variável double chamada res3 que recebe a soma das variáveis valor1, valor2 e valor3. A seguir mostre o valor de resultado3; Após a realização de todos os passos, compile e execute.

67 Comando if/else if (expressão) { comandos else { comandos if (user == null) { user = administrador ; else user = nome; Os parênteses que envolvem a expressão são exigidos pela sintaxe; A palavra else é opcional: Neste caso, a expressão condicional é avaliada e, se for verdadeira, o comando que segue o if é executado e o comando após o else é pulado; caso contrário, o comando após o else é executado.

68 Comando switch Provoca um desvio no fluxo de execução; Alternativa ao uso de vários comandos if; switch (n) { case 1: { comandos break; // pára aqui case 2: { comandos break; // pára aqui default: { comandos break; // pára aqui A expressão associada com o comando deve ser byte, char, short ou int. Valores booleanos ou reais não são suportaos, nem o tipo long, apesar de ser um tipo inteiro; O comando só pode ter uma cláusula default.

69 Comando while Permite executar um bloco de código repetidas vezes: while (expressão) { comandos O comando começa por avaliar a expressão. Se falso, o fluxo de execução vai para o próximo comando. Se verdadeiro, o corpo do laço é executado e a expressão é reavaliada. Pode-se criar um laço infinito usando while (true).

70 Comando do Similar ao while, porém o teste da expressão é feito no final do laço; O corpo do laço é executado pelo menos uma vez: do { comandos while (expressão); O laço requer tanto a palavra do para marcar seu início, quanto a palavra while para marcar o seu término e introduzir a expressão condicional; Na prática, o do é menos usado.

71 Comando for Elimina a necessidade de um contador; Os passos de inicialização, teste e atualização constituem as principais manipulações feitas sobre as variáveis do laço e integram a sintaxe do for: for (declaração e inicialização ; teste ; atualização) comando A expressão de inicialização é tipicamente uma expressão de atribuição, enquanto a expressão de atualização é usualmente um incremento/decremento;

72 Comando for (cont.) for (int i = 0; i < 10; i++) { System.out.println (i); O exemplo acima imprime os números de 0 a 9, sem necessidade de atualizar a variável dentro do laço; Todas as informações são colocadas em uma única linha, facilitando a compreensão; Tanto a expressão de inicialização quanto a de atualização podem conter mais de uma variável, separadas por vírgulas: for (int i = 0, j = 10; i < 10; i++, j--) { soma += i * j;

73 Comando for (cont.) As expressões de inicialização, teste e atualização do comando são todas opcionais, porém o caractere de ponto e vírgula que as separa é obrigatório. Se a expressão do teste é omitida, presume-se que ela é sempre verdadeira: for ( ; ; ) // for infinito

74 Comando break Utilizado para transferir o controle para fora do corpo do comando de laço ou switch mais próximo; Portanto, é usado para sair de qualquer tipo de laço; Muito útil para abortar um laço quando algum evento ocorre durante a execução de seu corpo;

75 Comando break (cont.) O seguinte trecho utiliza o break junto ao while: int i = 0; int total = 0; while (i < 100) { total +=i; // total = total + i; if (total >= 200) { break; System.out.println (i); i++;

76 Comando break (cont.) O break é também utilizado junto ao switch, para sair do corpo do comando: switch (resposta) { case 's': case 'S': System.out.println ("A resposta é sim."); break; case 'n': case 'N': System.out.println ("A resposta é não."); break; default: System.out.println ("Resposta inválida.")

77 int total = 0; for (int i = 0; i < 10; i++) { if (i % 2 == 0) { continue; total += i; System.out.println (total); Comando continue Usado para transferir o controle para o fim do corpo do laço, antes da reavaliação da expressão de teste; Causa a interrupção da iteração do laço corrente e o pulo para a próxima iteração do laço; No trecho abaixo, o continue é usado para interromper a execução do resto do corpo do comando forem todos os números pares:

78 Comando return Mecanismo pelo qual os métodos retornam os valores requeridos; Um return aceita um valor simples ou uma expressão que deve ser compatível com o tipo de retorno do método em que está inserido: public class Aluno {... public String getnome (Aluno x) { return x.nome; public void setnome (Aluno x, String n) { x.nome = n; return; // sintaxe para retorno void não é necessária

79 Comando return (cont.) Quando um return é encontrado, o fluxo de execução abandona o método imediatamente, ignorando quaisquer comandos que existam entre o comando de retorno e o final do método; Se um método for void, o return não aceitará nenhum valor de retorno ou expressão.

80 Classes Uma classe encapsula todos os dados e comportamentos que definem um objeto; Contém atributos que são atribuídos a todos os novos objetos desta classe; Dados armazenados em um objeto podem ser tanto primitivos, tais como inteiros ou caracteres, ou referências para outros objetos; Pode conter também métodos que especificam as ações que um objeto pode realizar; Java utiliza pacotes para agrupar classes que estão logicamente relacionadas; Pacotes consistem de classes localizadas num mesmo diretório.

81 Pacotes É um recipiente para classes que estão logicamente relacionadas, por pertencerem a uma mesma aplicação ou por terem funções afins; Ajudam a segmentar partes de uma aplicação complexa em pedaços gerenciáveis; A JVM usa uma construção conhecida como espaço de nomes para gerenciar nomes de identificadores dentro de um programa. É uma porção de memória especialmente alocada para tal: Ex: se o JDK ou outra classe usa um identificador chamado count, um programa não poderá definir uma variável com esse nome.

82 Modificadores de acesso Java provê controle de acesso às classes através de modificadores de acesso: - public o menos restritivo de todos os modificadores de acesso. Uma classe declarada como public pode ser vista e usada por todas as demais classes; - protected o próximo nível de controle. Uma classe definida como protected pode ser vista por qualquer uma de suas subclasses ou por qualquer outra classe definida no mesmo pacote; - private o mais restritivo modificador. Uma classe private não pode ser acessada por nenhuma outra classe; Se um modificador de acesso não é especificado, a classe pode ser vista e usada por qualquer classe dentro do mesmo pacote.

83 Classes e objetos Uma classe é um gabarito para a construção de objetos dessa classe. Um objeto é uma instância de uma classe; Cada objeto de uma classe tem a mesma estrutura de dados e operações. Porém, os valores mantidos nesta estrutura de dados são únicos para cada objeto, e são chamados variáveis de instância.

84 Criação de um objeto Objetos são criados usando o operador new; new cria uma instância de uma classe e retorna uma referência para o novo objeto criado: Aluno a1 = new Aluno ( José ); Aluno a2; a2 = new Aluno ( José ); O operador new retorna uma referência ao novo objeto e não o próprio objeto.

85 O operador new faz três coisas: Criação de um objeto (cont.) Aloca memória para o novo objeto. O operador sabe quanta memória é necessária olhando a definição da classe; Utiliza o construtor da classe para inicializar as variáveis de instância do novo objeto; Retorna uma referência para o objeto criado. Para a referência ao objeto no futuro, ela deve ser guardada em uma variável.

86 Criação de um objeto (cont.) Aluno a1 = null; Foi declarada uma variável com uma referência chamada null. Isto indica que a variável de referência a1 não se refere a nenhum objeto ainda; null pode ser usado com o operador de igualdade para verificar se uma variável de referência já tem uma referência a um objeto: if (a1 == null) {... Pode-se atribuir null a um objeto quando seu uso não for mais necessário. Se nenhuma referência for feita a ele após isso, esse será recolhido pelo garbage collector.

87 Aluno a1 = new Aluno ( José ); Aluno a2 = a1; Atribuindo referências Quando uma variável de referência um objeto é declarada ela recebe o valor null. Para usá-la é necessário inicializá-la: Apenas um objeto foi criado. Atribuindo uma referência para um objeto a outra referência, tem-se duas referências para o mesmo objeto, e não uma cópia do objeto.

88 Variáveis de instância Devem ser declaradas dentro da definição da classe; Para acessar variáveis de instância: public class Aluno { public String nome; private String matricula;...

89 Variáveis de instância (cont.) Aluno a1 = new Aluno (); a1.nome = "José"; if (a1.nome.equals("josé")) { a1.matricula = "123456"; // erro de compilação Essa sintaxe somente é permitida se a variável de instância tiver sido declarada como public.

90 Métodos Na definição de uma classe em um programa orientado por objetos, o comportamento da mesma é implementado nos seus métodos; Um método em Java é equivalente a uma função ou procedimento em outras linguagens; Os elementos integrantes de um método são: Modificador: - Um método declarado como public poderá ser chamado a partir de qualquer classe do programa; - Se o método é declarado como private, ele somente poderá ser invocado por outros métodos da mesma classe; Tipo de retorno: - Primitivo, referência para um objeto e pode não haver retorno (void).

91 Métodos (cont.) Lista de parâmetros, podendo não haver nenhum. public class Aluno {... // mod ret nome (argumentos) public void SetNota (float n) { nota = n;

92 Métodos get/set No exemplo, são definidos dois métodos de instância para a classe Aluno: setnome e getnome. Cria-se um objeto Aluno e atribui-se a referência para este objeto à variável a1. Através de a1, o método getnome é usado para comparar o produto com o literal José. Caso se fizesse necessário alterar o nome do aluno, bastaria utilizar o método setnome passando como parâmetro o novo nome desejado. COMPLETAR

93 Encapsulamento Uma classe bem definida deve separar a sua interface pública da implementação interna. Logo, as variáveis de instância da classe devem ser declaradas como private; Usuários da classe devem invocar os métodos da classe para acessar ou alterar o estado de um objeto; Encapsular corretamente traz como benefício não ser necessário alterar nenhuma linha de código além daquelas referentes à própria implementação da classe.

94 Implementando Classes Implementando Classes

95 Implementando Classes Sobrecarga de Métodos Utilizamos esta ténica para que dois ou mais métodos tenham o mesmo nome, desde que possuam assinaturas diferentes. Assinatura é composta por seu nome, juntamente com o número e tipo dos parâmetros. O tipo de retorno não fará parte da assinatura, portanto não poderá diferenciar métodos sobrecarregados. Ao chamar um método sobrecarregado, o compilador escolherá o método correto a ser chamado, analisando os parâmetros passados na chamada e comparando esses parâmetros com os esperados por cada um dos métodos com aquele nome na definição da classe.

Módulo 06 Desenho de Classes

Módulo 06 Desenho de Classes Módulo 06 Desenho de Classes Última Atualização: 13/06/2010 1 Objetivos Definir os conceitos de herança, polimorfismo, sobrecarga (overloading), sobreescrita(overriding) e invocação virtual de métodos.

Leia mais

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

Curso Adonai QUESTÕES Disciplina Linguagem JAVA 1) Qual será o valor da string c, caso o programa rode com a seguinte linha de comando? > java Teste um dois tres public class Teste { public static void main(string[] args) { String a = args[0]; String

Leia mais

Orientação a Objetos em Java. Leonardo Gresta Paulino Murta leomurta@ic.uff.br

Orientação a Objetos em Java. Leonardo Gresta Paulino Murta leomurta@ic.uff.br Orientação a Objetos em Java Leonardo Gresta Paulino Murta leomurta@ic.uff.br Agenda Introdução; Orientação a Objetos; Orientação a Objetos em Java; Leonardo Murta Orientação a Objetos em Java 2 Agosto/2007

Leia mais

CURSO DE PROGRAMAÇÃO EM JAVA

CURSO DE PROGRAMAÇÃO EM JAVA CURSO DE PROGRAMAÇÃO EM JAVA Introdução para Iniciantes Prof. M.Sc. Daniel Calife Índice 1 - A programação e a Linguagem Java. 1.1 1.2 1.3 1.4 Linguagens de Programação Java JDK IDE 2 - Criando o primeiro

Leia mais

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação de Computadores - I. Profª Beatriz Profº Israel Programação de Computadores - I Profª Beatriz Profº Israel As 52 Palavras Reservadas O que são palavras reservadas São palavras que já existem na linguagem Java, e tem sua função já definida. NÃO podem

Leia mais

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática Folha 1-1 Introdução à Linguagem de Programação JAVA 1 Usando o editor do ambiente de desenvolvimento JBUILDER pretende-se construir e executar o programa abaixo. class Primeiro { public static void main(string[]

Leia mais

2 Orientação a objetos na prática

2 Orientação a objetos na prática 2 Orientação a objetos na prática Aula 04 Sumário Capítulo 1 Introdução e conceitos básicos 1.4 Orientação a Objetos 1.4.1 Classe 1.4.2 Objetos 1.4.3 Métodos e atributos 1.4.4 Encapsulamento 1.4.5 Métodos

Leia mais

JAVA. Introdução. Marcio de Carvalho Victorino. Page 1 1/40 2/40

JAVA. Introdução. Marcio de Carvalho Victorino. Page 1 1/40 2/40 JAVA Marcio de Carvalho Victorino 1/40 Introdução 2/40 Page 1 Programação OO Elementos do modelo OO: Abstração: é o processo de abstrair as características essenciais de um objeto real. O conjunto de características

Leia mais

A Linguagem Java. Alberto Costa Neto DComp - UFS

A Linguagem Java. Alberto Costa Neto DComp - UFS A Linguagem Java Alberto Costa Neto DComp - UFS 1 Roteiro Comentários Variáveis Tipos Primitivos de Dados Casting Comandos de Entrada e Saída Operadores Constantes 2 Comentários /** Classe para impressão

Leia mais

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery Linguagem de Programação JAVA Técnico em Informática Professora Michelle Nery Agenda Regras paravariáveis Identificadores Válidos Convenção de Nomenclatura Palavras-chaves em Java Tipos de Variáveis em

Leia mais

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br Java Marcio de Carvalho Victorino www.dominandoti.eng.br 3. Considere as instruções Java abaixo: int cont1 = 3; int cont2 = 2; int cont3 = 1; cont1 += cont3++; cont1 -= --cont2; cont3 = cont2++; Após a

Leia mais

Linguagens de. Aula 02. Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br

Linguagens de. Aula 02. Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br Linguagens de Programação III Aula 02 Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br Linguagens de Programação Técnica de comunicação padronizada para enviar instruções a um computador. Assim

Leia mais

Conceitos de Linguagens de Programação

Conceitos de Linguagens de Programação Conceitos de Linguagens de Programação Aula 07 Nomes, Vinculações, Escopos e Tipos de Dados Edirlei Soares de Lima Introdução Linguagens de programação imperativas são abstrações

Leia mais

AULA DE JAVA 1 - CONCEITOS BÁSICOS

AULA DE JAVA 1 - CONCEITOS BÁSICOS AULA DE JAVA 1 - CONCEITOS BÁSICOS DAS 5316 Integração de Sistemas Corporativos Roque Oliveira Bezerra, M. Eng roque@das.ufsc.br Prof. Ricardo J. Rabelo ROTEIRO Introdução Fases de um programa Java Strings

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Engenharia da Computação Professor: Rosalvo Ferreira de Oliveira Neto Dados Pessoais Rosalvo Ferreira de Oliveira Neto MSc. em ciência da computação (UFPE) rosalvo.oliveira@univasf.edu.br

Leia mais

Introdução à linguagem

Introdução à linguagem A Tecnologia Java 1 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória disponível Processadores fracos Arquitecturas muito diferentes

Leia mais

BSI UFRPE Prof. Gustavo Callou gcallou@gmail.com

BSI UFRPE Prof. Gustavo Callou gcallou@gmail.com BSI UFRPE Prof. Gustavo Callou gcallou@gmail.com HelloWorld.java: public class HelloWorld { public static void main (String[] args) { System.out.println( Hello, World ); } } Identificadores são usados

Leia mais

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição Lista de Contas Lista de Contas: Assinatura null Quais são os métodos necessários? class ListaDeContas { void inserir (Conta c) { void retirar (Conta c) { Conta procurar (String num) { Listas de Contas:

Leia mais

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Aula 09 Introdução à Java Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Agenda da Aula Java: Sintaxe; Tipos de Dados; Variáveis; Impressão de Dados.

Leia mais

3 Classes e instanciação de objectos (em Java)

3 Classes e instanciação de objectos (em Java) 3 Classes e instanciação de objectos (em Java) Suponhamos que queremos criar uma classe que especifique a estrutura e o comportamento de objectos do tipo Contador. As instâncias da classe Contador devem

Leia mais

Introdução à Linguagem Java

Introdução à Linguagem Java Introdução à Linguagem Java A linguagem Java surgiu em 1991 quando cientistas da Sun, liderados por Patrick Naughton e James Gosling, projetaram uma linguagem pequena para ser utilizada em eletrodomésticos

Leia mais

Java Como Programar, 8/E

Java Como Programar, 8/E Capítulo 2 Introdução aos aplicativos Java Java Como Programar, 8/E (C) 2010 Pearson Education, Inc. Todos os 2.1 Introdução Programação de aplicativo Java. Utilize as ferramentas do JDK para compilar

Leia mais

Programação Orientada a Objetos (DPADF 0063)

Programação Orientada a Objetos (DPADF 0063) Programação Orientada a Objetos (DPADF 0063) Aula 2 Java como ferramenta de experimentação Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas

Leia mais

Programação de Computadores II: Java. / NT Editora. -- Brasília: 2014. 82p. : il. ; 21,0 X 29,7 cm.

Programação de Computadores II: Java. / NT Editora. -- Brasília: 2014. 82p. : il. ; 21,0 X 29,7 cm. Autor José Jesse Gonçalves Graduado em Licenciatura em Matemática pela Universidade Estadual de São Paulo - UNESP, de Presidente Prudente (1995), com especialização em Análise de Sistemas (1999) e mestrado

Leia mais

Sobre o Professor Dr. Sylvio Barbon Junior

Sobre o Professor Dr. Sylvio Barbon Junior 5COP088 Laboratório de Programação Aula 1 Java Prof. Dr. Sylvio Barbon Junior Sylvio Barbon Jr barbon@uel.br 1 Sobre o Professor Dr. Sylvio Barbon Junior Formação: Ciência e Engenharia da Computação (2005

Leia mais

FBV - Linguagem de Programação II. Um pouco sobre Java

FBV - Linguagem de Programação II. Um pouco sobre Java FBV - Linguagem de Programação II Um pouco sobre Java História 1992: um grupo de engenheiros da Sun Microsystems desenvolve uma linguagem para pequenos dispositivos, batizada de Oak Desenvolvida com base

Leia mais

JAVA. Fabrício de Sousa fabbricio7@yahoo.com.br

JAVA. Fabrício de Sousa fabbricio7@yahoo.com.br JAVA Fabrício de Sousa fabbricio7@yahoo.com.br Agenda 2 Características Ambientes de Desenvolvimento Sintaxe Comentários Tipos de dados primitivos Caracteres especiais Variáveis Operadores Aritméticos

Leia mais

Programação por Objectos. Java

Programação por Objectos. Java Programação por Objectos Java Parte 2: Classes e objectos LEEC@IST Java 1/24 Classes (1) Sintaxe Qualif* class Ident [ extends IdentC] [ implements IdentI [,IdentI]* ] { [ Atributos Métodos ]* Qualif:

Leia mais

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc. Sintaxe Geral Tipos de Dados Comentários Comentários: De linha: // comentário 1 // comentário 2 De bloco: /* linha 1 linha 2 linha n */ De documentação: /** linha1 * linha2 */ Programa Exemplo: ExemploComentario.java

Leia mais

Java - Introdução. Professor: Vilson Heck Junior. vilson.junior@ifsc.edu.br

Java - Introdução. Professor: Vilson Heck Junior. vilson.junior@ifsc.edu.br Java - Introdução Professor: Vilson Heck Junior vilson.junior@ifsc.edu.br Agenda O que é Java? Sun / Oracle. IDE - NetBeans. Linguagem Java; Maquina Virtual; Atividade Prática. Identificando Elementos

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Introdução ao Paradigma OO

Leia mais

Java Laboratório Aula 1. Divisões da Plataforma. Introdução a Plataforma Java. Visão geral da arquitetura da

Java Laboratório Aula 1. Divisões da Plataforma. Introdução a Plataforma Java. Visão geral da arquitetura da Java Laboratório Aula 1 Programação orientada a objetos Profa. Renata e Cristiane Introdução a Plataforma Java O que é Java? Tecnologia Linguagem de Programação Ambiente de Execução (JVM) Tudo isso é a

Leia mais

Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP

Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP 1) Introdução Programação Orientada a Objetos é um paradigma de programação bastante antigo. Entretanto somente nos últimos anos foi aceito realmente

Leia mais

Programação Na Web. Linguagem Java Parte II. break com o nome do bloco. Sintaxe. Nome do bloco. Termina o bloco. António Gonçalves ...

Programação Na Web. Linguagem Java Parte II. break com o nome do bloco. Sintaxe. Nome do bloco. Termina o bloco. António Gonçalves ... Programação Na Web Linguagem Java Parte II Sintaxe António Gonçalves break com o nome do bloco Nome do bloco Termina o bloco class class Matrix Matrix { private private int[][] int[][] mat; mat; public

Leia mais

Especialização em desenvolvimento para web com interfaces ricas. Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares

Especialização em desenvolvimento para web com interfaces ricas. Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares Especialização em desenvolvimento para web com interfaces ricas Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares Objetivos Conceito de exceções Tratar exceções pelo uso de try, catch e

Leia mais

Programação por Objectos. Java

Programação por Objectos. Java Programação por Objectos Java Parte 3: Métodos LEEC@IST Java 1/45 Métodos (1) Sintaxe Qualif Tipo Ident ( [ TipoP IdentP [, TipoP IdentP]* ] ) { [ Variável_local Instrução ]* Qualif: qualificador (visibilidade,

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

Programação Orientada a Objetos em java. Polimorfismo

Programação Orientada a Objetos em java. Polimorfismo Programação Orientada a Objetos em java Polimorfismo Polimorfismo Uma característica muito importante em sistemas orientados a objetos Termo proveniente do grego, e significa muitas formas Em POO, significa

Leia mais

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this.

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this. Aula 2 Objetivos Encapsulamento na linguagem Java; Utilizando a referência this. Encapsulamento, data hiding é um conceito bastante importante em orientação a objetos. É utilizado para restringir o acesso

Leia mais

Sintaxe Básica de Java Parte 1

Sintaxe Básica de Java Parte 1 Sintaxe Básica de Java Parte 1 Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marcioubeno.com Fonte: Material da Profª Karina Oliveira Estrutura de Programa Um programa

Leia mais

PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br ROTEIRO 5. Tratamento de Exceções Introdução e conceitos Capturando exceção usando

Leia mais

Programação com Acesso a BD. Programação com OO Acesso em Java

Programação com Acesso a BD. Programação com OO Acesso em Java Programação com OO Acesso em Java a BD Curso: Técnico em Informática Campus: Ipanguaçu José Maria Monteiro Pontifícia Universidade Católica do Rio de Janeiro PUC-Rio Departamento Clayton Maciel de Informática

Leia mais

Lição 9 Trabalhando com bibliotecas de classes

Lição 9 Trabalhando com bibliotecas de classes Lição 9 Trabalhando com bibliotecas de classes Introdução à Programação I 1 Objetivos Ao final da lição, o estudante deverá estar apto a: Explicar o que é programação orientada a objetos e alguns de seus

Leia mais

Algoritmia e Programação APROG. Linguagem JAVA. Básico. Nelson Freire (ISEP DEI-APROG 2012/13) 1/31

Algoritmia e Programação APROG. Linguagem JAVA. Básico. Nelson Freire (ISEP DEI-APROG 2012/13) 1/31 APROG Algoritmia e Programação Linguagem JAVA Básico Nelson Freire (ISEP DEI-APROG 2012/13) 1/31 Linguagem Java Estrutura de um Programa Geral Básica Estruturas de Dados Variáveis Constantes Tipos de Dados

Leia mais

Técnicas de Programação II

Técnicas de Programação II Técnicas de Programação II Aula 06 Orientação a Objetos e Classes Edirlei Soares de Lima Orientação a Objetos O ser humano se relaciona com o mundo através do conceito de objetos.

Leia mais

Comandos de repetição For (inicialização; condição de execução; incremento/decremento) { //Código }

Comandos de repetição For (inicialização; condição de execução; incremento/decremento) { //Código } Este documento tem o objetivo de demonstrar os comandos e sintaxes básicas da linguagem Java. 1. Alguns passos para criar programas em Java As primeiras coisas que devem ser abordadas para começar a desenvolver

Leia mais

Lab de Programação de sistemas I

Lab de Programação de sistemas I Lab de Programação de sistemas I Apresentação Prof Daves Martins Msc Computação de Alto Desempenho Email: daves.martins@ifsudestemg.edu.br Agenda Orientação a Objetos Conceitos e Práticas Programação OO

Leia mais

Java 2 Standard Edition Como criar classes e objetos

Java 2 Standard Edition Como criar classes e objetos Java 2 Standard Edition Como criar classes e objetos Helder da Rocha www.argonavis.com.br 1 Assuntos abordados Este módulo explora detalhes da construção de classes e objetos Construtores Implicações da

Leia mais

Projeto de Software Orientado a Objeto

Projeto de Software Orientado a Objeto Projeto de Software Orientado a Objeto Ciclo de Vida de Produto de Software (PLC) Analisando um problema e modelando uma solução Prof. Gilberto B. Oliveira Estágios do Ciclo de Vida de Produto de Software

Leia mais

insfcanceof new public switch transient while byte continue extends for int null

insfcanceof new public switch transient while byte continue extends for int null Palavras -chave de JAV A abstract catch do final implements long private static throw void boolean char double finally import native protected super throws volatile break class float insfcanceof new public

Leia mais

Unidade IV: Ponteiros, Referências e Arrays

Unidade IV: Ponteiros, Referências e Arrays Programação com OO Acesso em Java a BD Curso: Técnico em Informática Campus: Ipanguaçu José Maria Monteiro Pontifícia Universidade Católica do Rio de Janeiro PUC-Rio Departamento Clayton Maciel de Informática

Leia mais

JAVA VIRTUAL MACHINE (JVM)

JAVA VIRTUAL MACHINE (JVM) JAVA VIRTUAL MACHINE (JVM) Por Leandro Baptista, Marlon Palangani e Tiago Deoldoto, 11 de Abril de 2009 A linguagem de programação Java proporciona o desenvolvimento aplicações que podem ser executadas

Leia mais

Reuso com Herança a e Composiçã

Reuso com Herança a e Composiçã Java 2 Standard Edition Reuso com Herança a e Composiçã ção Helder da Rocha www.argonavis.com.br 1 Como aumentar as chances de reuso Separar as partes que podem mudar das partes que não mudam. Exemplo:

Leia mais

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais Curso de Java Orientação a objetos e a Linguagem JAVA Roteiro A linguagem Java e a máquina virtual Objetos e Classes Encapsulamento, Herança e Polimorfismo Primeiro Exemplo A Linguagem JAVA Principais

Leia mais

Java Básico. Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp

Java Básico. Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp Java Básico Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp Classes Abstratas construção de uma classe abstrata construção de classes derivadas Classes e Herança Uma classe define

Leia mais

Utilizem a classe Aula.java da aula passada:

Utilizem a classe Aula.java da aula passada: Introdução à Java Prof. Bruno Gomes bruno.gomes@ifrn.edu.br Programação Orientada a Objetos Código Exemplo da Aula Utilizem a classe Aula.java da aula passada: public class Aula { public static void main(string[]

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ

UNIVERSIDADE FEDERAL DO PARANÁ CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 02 APRESENTAÇÃO: Apresentação; conceitos básicos da linguagem java; estrutura

Leia mais

Programação Orientada a Objetos em Java. Herança

Programação Orientada a Objetos em Java. Herança Universidade Federal do Amazonas Departamento de Ciência da Computação IEC481 Projeto de Programas Programação Orientada a Objetos em Java Herança Professor: César Melo Slides baseados em materiais preparados

Leia mais

O uso de exceções permite separar a detecção da ocorrência de uma situação excepcional do seu tratamento, ao se programar um método em Java.

O uso de exceções permite separar a detecção da ocorrência de uma situação excepcional do seu tratamento, ao se programar um método em Java. Exceções em Java Miguel Jonathan DCC/IM/UFRJ (rev. abril de 2011) Resumo dos conceitos e regras gerais do uso de exceções em Java O uso de exceções permite separar a detecção da ocorrência de uma situação

Leia mais

Paradigmas de Programação

Paradigmas de Programação Paradigmas de Programação Tipos de Dados Aula 5 Prof.: Edilberto M. Silva http://www.edilms.eti.br Prof. Edilberto Silva / edilms.eti.br Tipos de Dados Sistema de tipos Tipos de Dados e Domínios Métodos

Leia mais

3. PARADIGMA ORIENTADO A OBJETOS

3. PARADIGMA ORIENTADO A OBJETOS Paradigmas de Linguagens I 1 3. PARADIGMA ORIENTADO A OBJETOS Este paradigma é o que mais reflete os problemas atuais. Linguagens orientada a objetos (OO) são projetadas para implementar diretamente a

Leia mais

Criar a classe Aula.java com o seguinte código: Compilar e Executar

Criar a classe Aula.java com o seguinte código: Compilar e Executar Introdução à Java Prof. Bruno Gomes bruno.gomes@ifrn.edu.br Programação Orientada a Objetos Código Exemplo da Aula Criar a classe Aula.java com o seguinte código: public class Aula { public static void

Leia mais

LINGUAGEM DE PROGRAMAÇÃO JAVA

LINGUAGEM DE PROGRAMAÇÃO JAVA LINGUAGEM DE PROGRAMAÇÃO JAVA Curso de Especialização em Tecnologia Java UTFPR Capítulo 1 Parte 1 Introdução à tecnologia Java Ambiente de desenvolvimento Java Introdução à Tecnologia Java O que é Java?

Leia mais

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS João Gabriel Ganem Barbosa Sumário Motivação História Linha do Tempo Divisão Conceitos Paradigmas Geração Tipos de Dados Operadores Estruturada vs

Leia mais

EMENTA DO CURSO. Tópicos:

EMENTA DO CURSO. Tópicos: EMENTA DO CURSO O Curso Preparatório para a Certificação Oracle Certified Professional, Java SE 6 Programmer (Java Básico) será dividido em 2 módulos e deverá ter os seguintes objetivos e conter os seguintes

Leia mais

JavaScript 2.0X 1.0 3.0X 1.1 4.0 4.05 1.2 4.06 4.61 1.3 5.0 1.4 6.0 1.5

JavaScript 2.0X 1.0 3.0X 1.1 4.0 4.05 1.2 4.06 4.61 1.3 5.0 1.4 6.0 1.5 JavaScript Diego R. Frank, Leonardo Seibt FIT Faculdades de Informática de Taquara Fundação Educacional Encosta Inferior do Nordeste Av. Oscar Martins Rangel, 4500 Taquara RS Brasil difrank@terra.com.br,

Leia mais

Herança. Alberto Costa Neto DComp - UFS

Herança. Alberto Costa Neto DComp - UFS Herança Alberto Costa Neto DComp - UFS 1 Motivação Vimos como se faz encapsulamento e a importância de fazê-lo... Contudo, também é possível fazer encapsulamento em algumas linguagens não OO O que mais

Leia mais

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões Professor: Max Pereira http://paginas.unisul.br/max.pereira Ciência da Computação Primeiro Programa em Java public class OlaPessoal

Leia mais

Capítulo 14. Herança a e Polimorfismo. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Capítulo 14. Herança a e Polimorfismo. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Capítulo 14 Herança a e Polimorfismo Objetivos do Capítulo Apresentar os conceitos de herança e de polimorfismo. Explorar os diversos recursos disponíveis no Java para a aplicação da herança e do polimorfismo

Leia mais

Capítulo 3. Programação por objectos em Java

Capítulo 3. Programação por objectos em Java Capítulo 3. Programação por objectos em Java 1/46 Índice Indice 3.1 - Qualificadores de visualização 3.2 - Classe 3.3 - Objecto 3.4 - Métodos 3.5 - Herança 3.6 - Reescrita de métodos 3.7 - Classes abstractas

Leia mais

Material de Apoio 5. int getres() { return res; O que estas classes possuem em comum? 1) 2) 3)

Material de Apoio 5. int getres() { return res; O que estas classes possuem em comum? 1) 2) 3) pg. 1/6 Material de Apoio 5 Herança Observe o código das classes Fatorial e Fibonacci apresentados abaixo. class Fatorial { class Fibonacci { private int n, res; private int n, res; public Fatorial( int

Leia mais

Revisão OO Básico. Orientação a Objetos em Java

Revisão OO Básico. Orientação a Objetos em Java Revisão OO Básico Orientação a Objetos em Java Grupo de Linguagens de Programação Departamento de Informática PUC-Rio Nomenclatura A unidade básica de programação em linguagens orientadas a objetos é a

Leia mais

Prof. Esp. Adriano Carvalho

Prof. Esp. Adriano Carvalho Prof. Esp. Adriano Carvalho Um arquivo contendo uma sequência de comandos em uma linguagem de programação especifica Esses comandosrespeitam regras de como serem escritos e quais são as palavras que podem

Leia mais

Prof. Marcelo Heitor Teixeira marceloheitor.com. Java Exceções e Finalizações

Prof. Marcelo Heitor Teixeira marceloheitor.com. Java Exceções e Finalizações Prof. Marcelo Heitor Teixeira marceloheitor.com Java Exceções e Finalizações # Exceções em Java # Hierarquia de Classes # Lançando, Declarando e Capturando # Classes de Exceções Personalizadas # Entendendo

Leia mais

Programação Orientada a Objetos! Java - Fundamentos. Prof. Sérgio Almagro! e-mail: sergio.ricardo.almagro@gmail.com

Programação Orientada a Objetos! Java - Fundamentos. Prof. Sérgio Almagro! e-mail: sergio.ricardo.almagro@gmail.com Programação Orientada a Objetos! Java - Fundamentos Prof. Sérgio Almagro! e-mail: sergio.ricardo.almagro@gmail.com Estrutura de Programação Bibliografia HORSTMANN, Cay S., CORNELL, Gray. Core Java 2 Volume

Leia mais

DEFINIÇÃO DE MÉTODOS

DEFINIÇÃO DE MÉTODOS Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 2 DEFINIÇÃO DE MÉTODOS Todo o processamento que um programa Java faz está definido dentro dos

Leia mais

7/7/2010. Confiabilidade Independência de Plataforma Segurança Oak se transforma em Java

7/7/2010. Confiabilidade Independência de Plataforma Segurança Oak se transforma em Java Cay Horstmann, Gary Cornell. Core Java, Volume 1 - Fundamentos. Editora: Prentice Hall. Ano: 2007. Edição: 8 The Java Tutorials http://java.sun.com/docs/books/tutorial/ Standard Edition Revisão Geral Fernando

Leia mais

SUMÁRIO CAPÍTULO 1 INTRODUÇÃO AO JAVA... 1

SUMÁRIO CAPÍTULO 1 INTRODUÇÃO AO JAVA... 1 SUMÁRIO CAPÍTULO 1 INTRODUÇÃO AO JAVA... 1 A Origem... 2 O Caminho Para a Aprendizagem... 4 Java Como Plataforma... 6 Finalidade... 9 Características... 11 Perspectivas... 13 Exercícios... 14 CAPÍTULO

Leia mais

Keeper of Knowledge. Capítulo 1 Conceitos Básicos do Java

Keeper of Knowledge. Capítulo 1 Conceitos Básicos do Java Capítulo 1 Conceitos Básicos do Java INTRODUÇÃO O objectivo deste tutorial é ensinar as regras básicas de programação em Java e facilitar a aprendizagem dos capítulos que se seguem. Qualquer dúvida sobre

Leia mais

Escola Superior de Gestão e Tecnologia. Tratamento de Exceções

Escola Superior de Gestão e Tecnologia. Tratamento de Exceções Escola Superior de Gestão e Tecnologia Tratamento de Exceções Objetivos Compreender como o tratamento de exceção e de erro funciona. Como u4lizar try, throw e catch para detectar, indicar e tratar exceções,

Leia mais

Curso. Linguagem Java

Curso. Linguagem Java Seja Bem Vindo! Curso Linguagem Java Carga horária: 40hs 1 Dicas importantes Nunca se esqueça de que o objetivo central é aprender o conteúdo, e não apenas terminar o curso. Qualquer um termina, só os

Leia mais

ruirossi@ruirossi.pro.br

ruirossi@ruirossi.pro.br Tratamento de Exceções Rui Rossi dos Santos ruirossi@ruirossi.pro.br Mediador: Rui Rossi dos Santos Slide 1 o Exceção: condição anormal Introdução o Causas: Falhas na implementação Falhas na operação o

Leia mais

JSP - ORIENTADO A OBJETOS

JSP - ORIENTADO A OBJETOS JSP Orientação a Objetos... 2 CLASSE:... 2 MÉTODOS:... 2 Método de Retorno... 2 Método de Execução... 2 Tipos de Dados... 3 Boolean... 3 Float... 3 Integer... 4 String... 4 Array... 4 Primeira:... 4 Segunda:...

Leia mais

Análise de Programação

Análise de Programação Análise de Programação Conceitos Avançados da Linguagem de Programação Java Prof Gilberto B Oliveira Encapsulamento Proteger o dado dentro de uma classe (capsula segura) Facilita o uso da classe por outros

Leia mais

INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO

INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO Tópicos Estrutura Básica B de Programas C e C++ Tipos de Dados Variáveis Strings Entrada e Saída de Dados no C e C++ INTRODUÇÃO O C++ aceita

Leia mais

Programação Orientada a Objetos em Java

Programação Orientada a Objetos em Java Programação Orientada a Objetos em Java Rone Ilídio da Silva Universidade Federal de São João del-rei Campus Alto Paraopeba 1:14 1 Objetivo Apresentar os principais conceitos de Programção Orientada a

Leia mais

Capítulo 4. Packages e interfaces

Capítulo 4. Packages e interfaces Capítulo 4. Packages e interfaces 1/17 Índice Indice 4.1 - Package 4.2 - Interface 2/17 Índice 4.1 Package 4.1 - Package 4.2 -- Interface 3/17 4.1 Package Package ou pacote está para o Java como as directorias

Leia mais

Guia de Fatores de Qualidade de OO e Java

Guia de Fatores de Qualidade de OO e Java Qualiti Software Processes Guia de Fatores de Qualidade de OO e Java Versã o 1.0 Este documento só pode ser utilizado para fins educacionais, no Centro de Informática da Universidade Federal de Pernambuco.

Leia mais

Capítulo 5 Reuso de Classes

Capítulo 5 Reuso de Classes Java and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. Desenvolvimento Orientado a Objetos com Java Capítulo 5 Reuso de Classes

Leia mais

Aula 1. // exemplo1.cpp /* Incluímos a biblioteca C++ padrão de entrada e saída */ #include

Aula 1. // exemplo1.cpp /* Incluímos a biblioteca C++ padrão de entrada e saída */ #include <iostream> Aula 1 C é uma linguagem de programação estruturada desenvolvida por Dennis Ritchie nos laboratórios Bell entre 1969 e 1972; Algumas características: É case-sensitive, ou seja, o compilador difere letras

Leia mais

Programação Orientada a Objetos. Encapsulamento

Programação Orientada a Objetos. Encapsulamento Programação Orientada a Objetos Encapsulamento de Dados Ocultação de dados Garante a transparência de utilização dos componentes do software, facilitando: Entendimento Reuso Manutenção Minimiza as interdependências

Leia mais

Histórico Et Estrutura t de um programa Java Sintaxe básica de Java. Reinaldo Gomes reinaldo@cefet-al.br. O que é a linguagem Java?

Histórico Et Estrutura t de um programa Java Sintaxe básica de Java. Reinaldo Gomes reinaldo@cefet-al.br. O que é a linguagem Java? Programação Orientada a Objetos Elementos Básicos da Linguagem Java Histórico Et Estrutura t de um programa Java Sintaxe básica de Java Reinaldo Gomes reinaldo@cefet-al.br Definição O que é a linguagem

Leia mais

Programação Orientada a Objetos C ++ 4 Conceitos de OO em Java Classes e Objetos

Programação Orientada a Objetos C ++ 4 Conceitos de OO em Java Classes e Objetos Programação Orientada a Objetos C ++ 4 Conceitos de OO em Java Classes e Objetos Departamento de Informática Prof. Anselmo C. de Paiva Classes O conjunto de requisições que um objeto pode cumprir é determinado

Leia mais

Desenvolvimento OO com Java 3 Estruturas de Controle e Programação Básica

Desenvolvimento OO com Java 3 Estruturas de Controle e Programação Básica Desenvolvimento OO com Java 3 Estruturas de Controle e Programação Básica Vítor E. Silva Souza (vitor.souza@ufes.br) http://www.inf.ufes.br/~vitorsouza Departamento de Informática Centro Tecnológico Universidade

Leia mais

RUI ROSSI DOS SANTOS PROGRAMAÇÃO DE COMPUTADORES EM. Java

RUI ROSSI DOS SANTOS PROGRAMAÇÃO DE COMPUTADORES EM. Java RUI ROSSI DOS SANTOS PROGRAMAÇÃO DE COMPUTADORES EM Java 2ª Edição n Sumário VII Sumário CAPÍTULO 1 Introdução ao Java... 1 A Origem... 2 O Caminho Para a Aprendizagem... 4 Java como Plataforma... 6 Finalidade...

Leia mais

Curso Java Starter. www.t2ti.com 1

Curso Java Starter. www.t2ti.com 1 1 Apresentação O Curso Java Starter foi projetado com o objetivo de ajudar àquelas pessoas que têm uma base de lógica de programação e desejam entrar no mercado de trabalho sabendo Java, A estrutura do

Leia mais

Faculdade Instituto Educare - FIED Curso: Sistemas de Informação Disciplina: Linguagem de Programação I Prof.: Rhyan Ximenes E-mail: rxbrito@gmail.

Faculdade Instituto Educare - FIED Curso: Sistemas de Informação Disciplina: Linguagem de Programação I Prof.: Rhyan Ximenes E-mail: rxbrito@gmail. Um pouco da história Faculdade Instituto Educare - FIED Curso: Sistemas de Informação Disciplina: Linguagem de Programação I Prof.: Rhyan Ximenes E-mail: rxbrito@gmail.com Introdução a Linguagem Java Java

Leia mais

PADI 2015/16. Aula 1 Introdução à Plataforma.NET

PADI 2015/16. Aula 1 Introdução à Plataforma.NET PADI 2015/16 Aula 1 Introdução à Plataforma.NET 1 Sumário 1. Framework.NET Arquitectura 2. Linguagem C# 2.0 Sintaxe C# vs. Java vs. C++ 3. IDE: MS Visual Studio 2005 ou superior Ferramentas Console/Win

Leia mais

Algoritmos e Programação 2. Introdução à Programação Orientada a Objetos. Orientação a Objetos. O que é um paradigma de programação?

Algoritmos e Programação 2. Introdução à Programação Orientada a Objetos. Orientação a Objetos. O que é um paradigma de programação? Algoritmos e Programação 2 Baseado no material do Prof. Júlio Pereira Machado Introdução à Programação Orientada a Objetos O que é um paradigma de programação? É um padrão conceitual que orienta soluções

Leia mais