Java. Disciplina: Programação Modular Prof. Marco Túlio de Oliveira Valente
|
|
|
- Henrique Soares Gama
- 10 Há anos
- Visualizações:
Transcrição
1 Java Disciplina: Programação Modular Prof. Marco Túlio de Oliveira Valente
2 Introdução James Gosling e equipe (Sun, 1995) Linguagem compilada e posteriormente interpretada bytecode: linguagem intermediária Assembly de uma máquina hipotética Máquina Virtual Java: interpretador de bytecodes Não é novidade: Pascal-P (Wirth, década de 70) Mesma estratégia em C#: CLR e CIL (ou MSIL) Vantagem: portabilidade prog1.java (fonte) COMPILADOR prog1.class (bytecodes) MÁQUINA VIRTUAL JAVA - JVM (INTERPRETADOR) 2
3 Princípios de Projetos Linguagem que fosse: Simples, orientada a objetos, familiar Robusta e segura Arquiteturalmente neutra e portável Alto desempenho Interpretada, multi-thread e dinâmica 3
4 Java é mais simples que C++ Sem ponteiros, apenas referências Sem funções, apenas métodos estáticos Sem variáveis globais, apenas atributos estáticos Sem delete, mas com coletor de lixo Sem arquivos de header, mas interfaces Sem sobrecarga de operadores, apenas de métodos Sem pré-processador, mas com membros final Sem herança múltipla de classes, mas com herança múltipla de interfaces 4
5 Java é mas segura que C++ Não é possíveis acessar quaisquer áreas de memória: Não existe aritmética de ponteiros. Exemplo: p++ Não existem casts não-verificados. Exemplo: (char *) 2 Não existem acessos além dos limites de um vetor. Exemplo: buffer[-1] 5
6 Java é mais portátil que C++ Independência de hardware e sistema operacional. Mesmo programa roda em uma grande variedade de hardware e sistemas operacionais. Programas.java são compilados para uma representação intermediária, chamada bytecode (.class) Máquina Virtual Java (JVM): interpretador de bytecodes 6
7 Java tem mais bibliotecas que C++ Vasta gama de bibliotecas para: construção de interfaces gráficas (java.awt e javax.swing) programação distribuída (java.rmi) programação multithread (java.lang.threads) entrada/saída e redes: (java.io, java.net) estruturas de dados (java.util) bancos de dados (java.sql) etc 7
8 Primeiro Programa // arquivo HelloWorld.java public class HelloWorld { public static void main(string[ ] args){ System.out.println ( Hello, world ); Todo arquivo deve ter uma classe pública com o mesmo nome do arquivo Execução começa pelo método main desta classe Observações: Programa em Java é um conjunto de classes Implementação dos métodos sempre dentro da classe 8
9 Sintaxe e Tipos Primitivos Sintaxe bastante parecida com C/C++. Mesmos comandos básicos: if, switch, while, do while, for, return, break, continue Mesmos operadores aritméticos, lógicos e relacionais Tipos primitivos: boolean (8 bits) char (16 bits) byte (8 bits), short (16 bits), int (32 bits), long (64 bits) float (32 bits), double (64 bits) 9
10 Classes class Point { private double x, y; // campos public Point (double x, double y) { this.x= x; this. y= y; public double getx() { return x; public double gety() { return y; public void move(double dx, double dy) { x=+ dx; y=+ dy; // construtora // métodos 10
11 Classes (cont.) public double distance(point that) { double xdiff= this.x - that.getx(); double ydiff= this.y - that.gety(); return Math.sqrt(xdiff*xdiff + ydiff*ydiff); public void clear() { x= 0; y= 0; 11
12 Objetos Sempre criados via new e alocados no heap. Exemplo: void foo() { Point p1; // p1 e p2 são referências para objetos Point p2; p1= new Point(5,5); p2= new Point(1000,500); double dist= p1.distance(p2); // chamada de método p1 e p2 são duas variáveis alocadas no stack que referenciam (ou apontam para objetos alocados no heap). Em Java, objetos nunca são alocados no stack. 12
13 Programa Equivalente em C++ void foo() { Point *p1; Point *p2; p1= new Point(5,5); p2= new Point(1000,500); double dist= p1->distance(p2); // chamada de método delete p1; delete p2; 13
14 Coletor de Lixo Não existe free ou delete Programador aloca, mas não precisa liberar memória Tarefa normalmente sujeita a diversos erros Funcionamento: Existe na JVM um processo, chamado coletor de lixo, que fica continuamente procurando por objetos que não estão sendo mais referenciados Quando encontra um objeto inacessível, o coletor de lixo libera a área de memória alocada para o mesmo Não se tem controle sobre o momento em que o coletor de lixo roda Não é uma novidade em LP: LISP,
15 Exemplo de Coleta de Lixo class BigClasse { private int x; private int bigvetor []; // vetor de inteiros public BigClasse (int x) { System.out.println ("Criando " + x1); this.x= x1; bigvetor= new int [1024*1024]; protected void finalize () { System.out.println("Eliminando " + x); // BigClasse 15
16 Exemplo de Coleta de Lixo public class Exemplo2 { public static void main(string[] args) { BigClasse p; for (int i= 0; i < 100; i++) p= new BigClasse (i); Método finalize(): chamado automaticamente pelo coletor antes de liberar a área de memória de um objeto Utilidade: liberar outros recursos (que não memória) Exemplo: fechar arquivos, fechar conexões etc 16
17 Semântica de Valor e de Referência C++: objetos tratados com semântica de valor ou referência (programador que decide) void foo() { Point *p1; // semântica de referência Point p2; // semântica de valor... Java: objetos tratados exclusivamente com semântica de referência void foo() { Point p1; // semântica de referência... p1= new Point(10,10); 17
18 Referência this Referência para o objeto receptor de uma chamada de método class Point { private double x, y; public Point (double x, double y) { this.x= x; this. y= y;... 18
19 Membros Estáticos Campos estáticos: semântica de variável global; são campos da classe e não de uma instância em particular. Existem mesmo que não existam objetos da classe Point. class Point { private static Point origin= new Point(0,0);... Métodos estáticos: semântica de funções de C ou C++ São métodos da classe Não dependem de uma instância para serem chamados. Exemplo: Math.sqrt Podem acessar apenas atributos e métodos estáticos Não podem acessar a referência this 19
20 Campos Final Campos read-only. Uma vez inicializados, nunca mais podem ser alterados. Normalmente, são também estáticos. Exemplo: public static final double PI = 3.14; 20
21 Vetores Vetores são tratados com objetos e, portanto, são criados via operador new (e alocados no heap). class Gauss { public static void main(string[] args) { int[] ia = new int[101]; // índices vão de 0 a 100 for (int i = 0; i < ia.length; i++) ia[i] = i; int sum = 0; for (int i = 0; i < ia.length; i++) sum += ia[i]; System.out.println(sum); Tamanho do vetor é definido em tempo de criação; uma vez criado, não pode ser modificado Tentativa de usar um vetor além dos limites permitidos gera uma exceção do tipo ArrayIndexOutOfBoundsException 21
22 Vetores de Vetores Exemplo: float[][] mat= new float[4][4]; setupmatrix(mat); for (int y= 0; y < mat.length; y++) { for (int x= 0; x < mat[y].length; x++) System.out.print(mat[y][x] + " "); System.out.println(); 22
23 Strings Strings são objetos da classe String. Exemplo: String greeting = "Hello world!"; Classe String possui diversos métodos para manipular strings. Exemplos: charat, concat, endswith, length, tolowercase etc Objetos da classe String são imutáveis. Operações sobre strings sempre retornam uma nova string. String original permanece inalterada. 23
24 Herança Possui apenas herança simples de classes Exemplo: class Pixel extends Point { Color color; // novo atributo public void clear() { // redefine (ou sobresceve) método herdado super.clear(); color= null; // chama método da superclasse Polimorfismo: objetos Pixel podem ser usados por qualquer código que espere um Point 24
25 Chamada Dinâmica de Métodos Não existem métodos virtuais; maioria dos métodos são automaticamente considerados virtuais (isto é, chamados dinamicamente) Exceções: métodos privados e estáticos Exemplo: Figura p; // Quadrado e Circulo subclasses de Figura if (... ) p= new Quadrado (4); // atribuição polimórfica else p= new Circulo (3); // atribuição polimórfica double a= p.area (); // chamada dinâmica 25
26 Classe Object Raiz da hierarquia de classes de Java Toda classe (direta ou indiretamente) é subclasse de Object Utilidade: variável do tipo Object pode se referir a qualquer objeto (de qualquer classe) Exemplo 1: void push(object item) {... Exemplo 2: Object oref= new Pixel();... oref = "Alguma String" 26
27 Classe Object Exemplo 3: String name= "Petronius" Object obj= name; name= obj; // Erro de compilação name= (String) obj; // ok Se coerção falhar em tempo de execução, lança-se uma exceção ClassCastException. 27
28 Classes e Métodos final Evitando herança: final class Senha {... class MinhaSenha extends Senha {... // Erro! Evitando redefinição de métodos: class Senha {... public final bool validarsenha () { class MinhaSenha extends Senha {... bool validarsenha () {... // Erro!... 28
29 Classes Abstratas Exemplo: abstract class Figura { public abstract double area (); public abstract double perimetro ();... void foo() { Figura f1; // ok, f1 é apenas uma referência Figura f2= new Figura() // Erro, não é possível instanciar // objetos de classes abstratas Implementação de area() e perimetro() ficará a cargo das subclasses de Figura. 29
30 Interfaces Usadas para enriquecer o modelo de herança simples de Java Permitem alguns benefícios de herança múltipla, sem os problemas que herança múltipla introduz no projeto e implementação de linguagens Interface define um tipo composto apenas por: Assinaturas de métodos Constantes Uma interface não inclui variáveis de instância, nem código para implementação de métodos. Uma classe pode declarar que implementa (implements) uma interface. Neste caso, ela assume o compromisso de implementar todos os métodos desta interface 30
31 Interfaces Exemplo (declaração da interface): interface Comparable { int compareto(object o); Exemplo (implementação da interface): class Professor extends Pessoa implements Comparable { int matr;... int compareto(object o) { Professor that= (Professor) o; Compara this.matr e that.matr, retornando -1, 0 ou 1 31
32 Interfaces Exemplo (uso da interface): void qsort (Comparable[] v) {... Não importa a classe dos objetos do vetor v (ou seja, essas classes ficam livres para herdarem de outras classes) 32
33 Interfaces Interface define um contrato (ou protocolo) entre: Um provedor de serviços (ex: quem implementa compareto) Um usuário de serviços (ex: método de ordenação) Uma classe pode herdar de uma única classe, mas pode implementar múltiplas interfaces. Logo, objetos em Java podem ter múltiplos tipos, incluindo o tipo de sua classe e os tipos das interfaces que ela implementa. Uma interface pode estender uma ou mais interfaces (adicionando novas constantes ou novos métodos). Ou seja, existe herança múltipla de interfaces (a qual não implica em nenhuma forma de reúso de código) 33
34 Classes Genéricas Exemplo: public class Box<T> { private T t; public void add(t t) { this.t = t; public T get() { return t; // T stands for "Type"... Box<Integer> integerbox = new Box<Integer>(); integerbox.add(new Integer(10)); Integer someinteger = integerbox.get(); // no cast! 34
35 Interfaces Genéricas Exemplo de interface genérica: interface Table<T> { T find(string name); É melhor que: interface Table { Object find(string name); 35
36 Interfaces Genéricas Implementação da interface class IntegerTable implements Table<Integer> { private String[] names; private Integer[] values; public Integer find(string name) {... 36
37 Interfaces Genéricas Código que usa interface genérica (1ª tentativa) void processvalues(string[] names, Table<Object> table { for (int i= 0; i < names.length; i++) { Object value= table.find(names[i]); if (value!= null) process(names[i], value); Problema: Table<Integer> t= new IntegerTable(); //... adiciona itens em t String[] names= { "Um", "Dois" ; processvalues(names, t); // Erro! 37
38 Interfaces Genéricas Integer é subtipo de Object. Mas, Table<Integer> não é um subtipo de Table<Object> Exemplo: List<String> ls= new ArrayList<String>(); List<Object> lo= ls; Atribuição acima é válida? Não, conforme justificado a seguir. lo.add(new Object()); // via lo, seria possível adicionar objetos de quaisquer tipos em ls String s= ls.get(0); // não se garante mais que get retorne sempre um string 38
39 Tipos Genéricos e Wildcards List <?>: super-tipo de todas as listas E não List<Object> pelas razões descritas no slide anterior Exemplo: List<String> ls= new ArrayList<String>(); List<Object> lo= ls; // Erro compilação List<?> lu= ls; // ok lu.add(new Object()); // Erro compilação Object o= lu.get(0);?: stands for some unknown type Any parameter we pass to add would have to be a subtype of this unknown type. Since we don't know what type that is, we cannot pass anything in. 39
40 Tipos Genéricos e Wildcards 1a Solução: usando um tipo coringa ilimitado (?) void processvalues(string [] names, Table<?> table { for (int i= 0; i < names.length; i++) { Object value= table.find(names[i]); // OK if (value!= null) process(names[i], value); Table<Integer> t= new IntegerTable(); //... adiciona itens em t String [] names= { "Um", "Dois" ; processvalues(names, t); // ok 40
41 Tipos Genéricos e Wildcards 2a Solução (melhor): usando um tipo coringa limitado void processvalues(string[] names, Table<? extends Number> table { for (int i= 0; i < names.length; i++) { Number value= table.find(names[i]); if (value!= null) process(names[i], value); 41
42 Packages Recurso para modularização de programas em Java Package: conjunto de arquivos Cada arquivo pode possuir, no máximo, uma classe pública O nome do arquivo é o mesmo de sua classe pública Todo pacote possui um nome Exemplo: pacote figuras Com classes públicas Figura, Circulo, Quadrado Arquivo c:\temp\figuras\figura.java: package figuras; public abstract class Figura {... // outras classes (não-públicas) 42
43 Packages Arquivo c:\temp\figuras\circulo.java package figuras; public class Circulo {... // outras classes (não-públicas) Arquivo c:\temp\figuras\quadrado.java package figuras; public class Quadrado {... // outras classes (não-públicas) 43
44 Packages Nome do pacote deve ser igual ao nome do diretório que contém seus arquivos Variável de ambiente CLASSPATH: deve conter o nome do diretório onde se encontra o diretório do pacote Exemplo: set CLASSPATH=%CLASSPATH%;c:\temp 44
45 Packages Como referenciar classes públicas de um pacote fora do mesmo? Via qualificação com o nome do pacote: figuras.figura fig; figuras.circulo c; java.awt.button btnok; Via comando import no início do arquivo: import figuras.*; // importa todas classes de figuras import java.awt.button; // importa apenas classe Button... Figura fig; Circulo c; Button btnok; 45
46 Tratamento de Exceções em Java Como ativar uma exceção: throw <expressão> Expressão deve ser um objeto de uma classe derivada da classe pré-definida Exception Similar a C++, porém incluir um new para criar objeto Métodos devem relacionar na clásula throws todas as exceções que podem encerrar a execução do mesmo Exemplo: class DivisaoPorZero extends Exception { ;... double divisao (double x, double y) throws DivisaoPorZero { if (y = = 0) throw new DivisaoPorZero (); return x / y; 46
47 Tratamento de Exceções em Java Como especificar um tratador de exceções? try {... catch (ExceptionType ident ) {... catch (ExceptionType ident) {... finally {... finally é executado ocorrendo ou não uma exceção no try Exemplo: try {... catch (A e) {... finally {... finally será executado quando: (a) try terminar corretamente; (b) try terminar com uma exceção capturada ou não pelo catch 47
48 Tratamento de Exceções em Java Exemplo sem finally: file.open(); try {... // processa arquivo catch (IOException e) { file.close(); throw e; file.close(); Exemplo com finally: file.open(); try {.. finally { file.close(); 48
49 Exceções Não-Verificadas Exceções Verificadas: Subclasses de Exception Exemplos: IOException, FileNotFoundException Devem ser tratadas no corpo de um método (em um catch) ou explicitamente declaradas na assinatura do método Em resumo, um método somente pode retornar com exceções verificadas que ele lista em sua cláusula throws Exceções não-verificadas: Subclasses de RuntimeException ou Error Normalmente, exceções que representam algum erro na lógica do programa; clientes normalmente não tem o que fazer nestes casos Exemplos: ArrayIndexOutOfBoundsException, NullPointerException 49
50 Java RMI Disciplina: Programação Modular Prof. Marco Túlio de Oliveira Valente
51 Java RMI Middleware para programação distribuída em Java Implementado como um pacote da linguagem 51
52 Java RMI: Exemplo de Aplicação Codificar um servidor com um objeto da seguinte classe: class ContaImpl... {... public float obtersaldo ();... Codificar um cliente que chame remotamente o método obtersaldo() deste objeto 52
53 Java RMI: Exemplo de Aplicação Passo 1: Definição da interface remota (assinatura dos métodos que serão invocados remotamente) // arquivo Conta.java import java.rmi.remote; import java.rmi.remoteexception; interface Conta extends Remote {... public float obtersaldo () throws RemoteException;... 53
54 Java RMI: Exemplo de Aplicação Passo 2: Implementação da Interface Remota (servidor) class ContaImpl extends UnicastRemoteObject implements Conta { private int numero; private float saldo= 0.0; public ContaImpl (int n) throws RemoteException { numero= n; public float obtersaldo () throws RemoteException { return saldo; public static void main (String[] args) {... Conta c= new ContaImpl (804); Naming.rebind ( Conta804, c); // registra este objeto 54
55 Java RMI: Exemplo de Aplicação Passo 3: Implementação do Cliente import java.rmi.*; import java.rmi.server.*; public class ClienteImpl { public static void main (String[] args) {... Conta c= (Conta) Naming.lookup ( // + args[0] + /Conta804 ); float s= c.obtersaldo(); // chamada remota, mesma sintaxe chamada local... 55
56 Java RMI: Exemplo de Aplicação Passo 4: Compilação Compilação do servidor: javac ContaImpl.java Compilação do cliente: javac ClienteImpl.java Geração de stubs: rmic ContaImpl rmic gera os seguintes arquivos: ComtaImpl_Stub.class: stub do cliente ContaImpl_Skel.class: skeleton (nome dado ao stub do serv.) Passo 5: Execução Execução do Servidor: rmiregistry // registry (permanece em execução) java ContaImpl // servidor (em outro processo) Execução do Cliente: java clienteimpl dcc_srv01 56
57 Passagem de Parâmetros Objetos serializáveis são passador por valor: Classe do objeto deve implementar a interface Serializable Passa-se uma cópia do objeto (atributos + métodos) Objetos remotos são passadas por referência: Passa-se a referência (e não o objeto), a qual pode ser utilizada para realizar um callback no cliente Callback: servidor chama método do cliente Usado, por exemplo, quando o servidor deseja notificar o cliente sobre a ocorrência de algum evento 57
58 Exemplo de Callback Cliente Servidor objeto remoto objeto remoto void g () {... A B void f (A a) { a.g(); // callback a s s.f(a); 58
59 Java RMI - Chat Aplicação de chat usando Java RMI, com a seguinte interface: 59
60 Sistema de Chat em Java RMI conectados remoto void conecta(c c) { adiciona c em conectados void envia (String s) { for (int i= 0; i < conectados.size; i++) conectados[i].display(s); // callback remoto remoto remoto display (s) display (s) display (s) c s.conecta(c);... s.envia( Bom dia! ); c s.conecta(c); c s.conecta(c); 60
61 Reflexão Computacional Disciplina: Programação Modular Prof. Marco Túlio de Oliveira Valente
62 Reflexão Computacional Capacidade de um sistema se auto-inspecionar e auto-manipular Um sistema reflexivo possui dois níveis: Nível básico: contém objetos do domínio da aplicação Meta-nível: contém objetos que permitem acessar propriedades e manipular objetos do nível básico Objeto do meta-nível são chamados de meta-objetos Protocolo de meta-objetos: protocolo de interação com metaobjetos Reificação: ação de transformar em meta-objetos informações do nível base Reflexão envolve duas atividades: Inspeção: quando meta-nível inspeciona informações do nível básico Interseção: quando meta-nível interfere no comportamento ou na estrutura do nível básico 62
63 Reflexão em Java Tudo começa com um meta-objeto do tipo Class Exemplo: Class c= Class.forName( java.util.stack ); Pode-se usar métodos do tipo Class para inspeção de informações: Obter a super-classe do tipo base Obter interfaces que são implementadas pelo tipo base Obter informações sobre os construtores do tipo base Obter informações sobre os métodos do tipo base (modificadores, tipo de retorno, tipo dos parâmetros) Pode-se ainda interceder no nível básico do programa para: Criar objetos de tipos cujos nomes somente serão conhecidos em tempo de execução Obter/definir valores de atributos cujos nomes somente serão conhecidos em tempo de execução Invocar métodos cujos nomes somente serão conhecidos em tempo de execução 63
64 Reflexão em Java Programa que lista informações sobre uma interface cujo nome é informado pelo usuário: Console.readString(s); // le nome da interface do teclado Class c= Class.forName(s); Method[] themethods= c.getmethods(); for (int i = 0; i < themethods.length; i++) { String methodstring= themethods[i].getname(); System.out.println("Name: " + methodstring); String returnstring= themethods[i].getreturntype().getname(); System.out.println(" Return Type: " + returnstring); Class[] parametertypes= themethods[i].getparametertypes(); System.out.print(" Parameter Types:"); for (int k= 0; k < parametertypes.length; k ++) { String parameterstring= parametertypes[k].getname(); System.out.print(" " + parameterstring); System.out.println(); 64
65 Classes Proxy Dinâmicas Recurso de reflexão de Java para criação dinâmica de proxies Proxy: padrão de projeto comum em aplicações distribuídas Proxy: objeto que implementa a mesma interface de um objeto base Age como um intermediário entre objeto base e seus clientes Normalmente, possuem uma referência para objeto base e interceptam todas as chamadas destinadas ao mesmo Exemplo: stubs são exemplos de proxy Em Java, classes proxy dinâmicas têm duas propriedades: Seu código é criado em tempo de execução Implementam interfaces definidas em tempo de criação Instâncias de classes proxy dinâmicas têm ainda um objeto manipulador de invocação (invocation handler), o qual é definido pelo cliente que solicitou a criação das mesmas. 65
66 Classes Proxy Dinâmicas Toda a invocação de método sobre uma instância de uma classe proxy dinâmica é enviada automaticamente para o método invoke do manipulador desta instância, passando os seguintes parâmetros: a instância da classe proxy sobre a qual a invocação foi realizada; um objeto da classe java.lang.reflect.method, o qual reifica o método que está sendo chamado; um vetor do tipo Object que contém os argumentos deste método. 66
67 Classes Proxy Dinâmicas <<interface>> Service service implements Client references DynamicProxyClass service ServiceImpl service references <<interface>> InvocationHandler implements InvocationHandlerIm pl references invoke(object, Method, Object[]) invoke(object, Method, Object[]) 67
68 Exemplo de Classe Proxy class DebugHandler implements java.lang.reflect.invocationhandler { private Object base; private DebugHandler(Object base) { this.base = base; public Object invoke(object proxy, Method m, Object[] args) throws Throwable { Object result; try { System.out.println("before method " + m.getname()); result = m.invoke(base, args); // forward to base object catch (...) {... finally { System.out.println("after method " + m.getname()); return result; // class DebugHandler 68
69 Exemplo de Classe Proxy Exemplo de Uso: interface Foo { Object bar(object obj); class FooImpl implements Foo { Object bar(object obj) { Foo base= new FooImpl(); DebugHandler handler= new DebugHandler(base); Class c= base.getclass(); Foo proxy= Proxy.newProxyInstance(c.getClassLoader(), c.getinterfaces(), handler);... proxy.bar(...); 69
Chamadas Remotas de Procedimentos (RPC) O Conceito de Procedimentos. RPC: Programa Distribuído. RPC: Modelo de Execução
Chamadas Remotas de Chamada Remota de Procedimento (RPC) ou Chamada de Função ou Chamada de Subrotina Método de transferência de controle de parte de um processo para outra parte Procedimentos => permite
Invocação de Métodos Remotos
Invocação de Métodos Remotos Java RMI (Remote Method Invocation) Tópicos Tecnologia RMI Introdução Modelo de camadas do RMI Arquitetura Fluxo de operação do RMI Passos para implementação Estudo de caso
SISTEMAS DISTRIBUÍDOS
SISTEMAS DISTRIBUÍDOS CUP Disk Memoey CUP Memoey Disk Network CUP Memoey Disk Remote Method Invocation (RMI) Introdução Solução JAVA para Objetos Distribuídos Um objeto existe em uma máquina É possível
Java 2 Standard Edition. Fundamentos de. Objetos Remotos. Helder da Rocha www.argonavis.com.br
Java 2 Standard Edition Fundamentos de Objetos Remotos Helder da Rocha www.argonavis.com.br 1 Sobre este módulo Este módulo tem como objetivo dar uma visão geral, porém prática, da criação e uso de objetos
MIDDLEWARE Aplicativos RMI, RPC e eventos Camadas Protocolo Requesição-Respostal Middleware Representação Externa dos Dados Sistemas Operacionais
RMI JAVA MIDDLEWARE Aplicativos RMI, RPC e eventos Protocolo Requesição-Respostal Camadas Middleware Representação Externa dos Dados Sistemas Operacionais RMI REMOTE METHOD INVOCATION Invocação remota
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
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
Sistemas Paralelos e Distribuídos - 2003/2004 Curso: Matemática /Informática Sistemas Distribuídos - 2003/2004 Curso: Ensino da Informática
Java RMI - Remote Method Invocation Folha 5-1 No modelo de programação orientada a objectos, vimos que um programa consiste numa colecção de objectos que comunicam entre si através da invocação dos seus
Invocação de Métodos Remotos RMI (Remote Method Invocation)
Invocação de Métodos Remotos RMI (Remote Method Invocation) Programação com Objetos Distribuídos Um sistema de objetos distribuídos permite a operação com objetos remotos A partir de uma aplicação cliente
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
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:
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
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
A ) O cliente terá que implementar uma interface remota. . Definir a interface remota com os métodos que poderão ser acedidos remotamente
Java RMI - Remote Method Invocation Callbacks Folha 9-1 Vimos, na folha prática anterior, um exemplo muito simples de uma aplicação cliente/ servidor em que o cliente acede à referência remota de um objecto
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
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
Sistemas Distribuídos
Sistemas Distribuídos Marcelo Lobosco DCC/UFJF Comunicação em Sistemas Distribuídos Aula 06 Agenda Modelo Cliente-Servidor (cont.) Invocação Remota de Método (Remote Method Invocation RMI) Visão Geral
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
Programação por Objectos. Java
Programação por Objectos Java Parte 6: Herança e Polimorfismo LEEC@IST Java 1/52 Herança revisão A herança é um mecanismo em que a subclasse constitui uma especialização da superclasse. A superclasse pode
Num sistema de objectos distribuídos, dois conceitos são fundamentais.
Folha 10-1 Java RMI - Remote Method Invocation No modelo de programação orientada a objectos, vimos que um programa consiste numa colecção de objectos que comunicam entre si através da invocação dos seus
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:
Algoritmos e Programação II. Sobrecarga
Algoritmos e Programação II Baseado no Material do Prof. Júlio Machado Sobrecarga Em várias linguagens é comum encontrarmos rotinas que fazem basicamente a mesma coisa, porém, têm nomes distintos porque
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
Análise e Projeto Orientados por Objetos
Análise e Projeto Orientados por Objetos Aula 01 Orientação a Objetos Edirlei Soares de Lima Paradigmas de Programação Um paradigma de programação consiste na filosofia adotada na
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
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
PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES. Prof. Angelo Augusto Frozza, M.Sc. [email protected]
PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES Prof. Angelo Augusto Frozza, M.Sc. [email protected] ROTEIRO 5. Tratamento de Exceções Introdução e conceitos Capturando exceção usando
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
Orientação a Objetos em Java. Leonardo Gresta Paulino Murta [email protected]
Orientação a Objetos em Java Leonardo Gresta Paulino Murta [email protected] Agenda Introdução; Orientação a Objetos; Orientação a Objetos em Java; Leonardo Murta Orientação a Objetos em Java 2 Agosto/2007
Java RMI. RMI Remote Method Invocation. Chamadas Remotas de Procedimentos (RPC) RPC - Implementação
Java Remote Method Invocation Java Remote Method Invocation () é um protocolo Java para comunicação entre processos Permite objetos Java invocar transparentemente métodos de outros objetos (que podem estar
POO Programação Orientada a Objetos. Classes em Java
+ POO Programação Orientada a Objetos Classes em Java + Classes 2 Para que a JVM crie objetos: Ela precisa saber qual classe o objeto pertence Na classe estão definidos os atributos e métodos Programamos
Tutorial RMI (Remote Method Invocation) por Alabê Duarte
Tutorial RMI (Remote Method Invocation) por Alabê Duarte Este tutorial explica basicamente como se implementa a API chamada RMI (Remote Method Invocation). O RMI nada mais é que a Invocação de Métodos
Sistemas Distribuídos
Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: [email protected] Relembrando... Mecanismos de Comunicação Middleware Cenário em uma rede Local
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
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
Computação II Orientação a Objetos
Computação II Orientação a Objetos Fabio Mascarenhas - 2014.1 http://www.dcc.ufrj.br/~fabiom/java Introdução Esse não é um curso de Java! O objetivo é aprender os conceitos da programação orientada a objetos,
Desenvolvimento OO com Java Orientação a objetos básica
Desenvolvimento OO com Java Orientação a objetos básica Vítor E. Silva Souza ([email protected]) http://www.inf.ufes.br/~vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal
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,
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
Sobre o Professor Dr. Sylvio Barbon Junior
5COP088 Laboratório de Programação Aula 1 Java Prof. Dr. Sylvio Barbon Junior Sylvio Barbon Jr [email protected] 1 Sobre o Professor Dr. Sylvio Barbon Junior Formação: Ciência e Engenharia da Computação (2005
Construção de novas Classes em Java. Classes Atributos Métodos Herança...
Construção de novas Classes em Java Classes Atributos Métodos Herança... 1 Exemplo Representação em UML Java (Unified Modeling Language) Stack items : Vector Stack( ) push( ) pop( ) isempty( ) finalize(
Objetos Distribuídos - Programação Distribuída Orientado a Objetos. Luiz Affonso Guedes
Objetos Distribuídos - Programação Distribuída Orientado a Objetos Luiz Affonso Guedes Introdução Conceitos básicos programação distribuída + programação orientada a objetos = Objetos distribuídos Motivação
Uma Introdução à Arquitetura CORBA. O Object Request Broker (ORB)
Uma Introdução à Arquitetura Francisco C. R. Reverbel 1 Copyright 1998-2006 Francisco Reverbel O Object Request Broker (ORB) Via de comunicação entre objetos (object bus), na arquitetura do OMG Definido
Orientação a Objetos e a Linguagem Java
Orientação a Objetos e a Linguagem Java Afrânio Assis [email protected] Novembro/2006 1 Reutilizição com Herança e Composição Novembro/2006 2 Introdução Separar as partes que podem mudar das partes que
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.
Programação Orientada a Objetos e Java - Introdução. Carlos Lopes
Programação Orientada a Objetos e Java - Introdução Carlos Lopes POO e Java Objetivo: proporcionar uma visão dos conceitos de POO e do seu uso na estruturação dos programas em Java. Classes e objetos em
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.
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.
BSI UFRPE Prof. Gustavo Callou [email protected]
BSI UFRPE Prof. Gustavo Callou [email protected] HelloWorld.java: public class HelloWorld { public static void main (String[] args) { System.out.println( Hello, World ); } } Identificadores são usados
Sistemas Distribuídos: Conceitos e Projeto Java RMI
Sistemas Distribuídos: Conceitos e Projeto Java RMI Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.deinf.ufma.br 19 de agosto
Java RMI. Alcides Calsavara
Java RMI Alcides Calsavara Objetivos Permitir que um método de uma classe Java em execução em uma máquina virtual JVM chame um método de um objeto (instância de uma classe Java) situado em outra máquina
Paradigmas da Programação PPROG. Linguagem JAVA. Interfaces. (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33
PPROG Paradigmas da Programação Linguagem JAVA Interfaces (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33 PPROG Motivação para usar Interfaces Definição de Interface
7 RTTI e Interfaces. Desenvolvimento OO com Java. Vítor E. Silva Souza ([email protected]) http://www.inf.ufes.
Desenvolvimento OO com Java 7 RTTI e Interfaces Vítor E. Silva Souza ([email protected]) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do
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
Programação Orientada a Objetos C++
Programação Orientada a Objetos em C++ Sumário Histórico Comparação com Java Encapsulamento Tratamento de classes e objetos Herança Polimorfismo Histórico Desenvolvido por Bjarne Stroustrup dos Bell Labs
Computação II - Java Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Herança, Polimorfismo e Construtores
Computação II - Java Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Herança, Polimorfismo e Construtores 1 Exercícios Exercício 1: Construtores e Testes Analise a classe Conta.java, mostrada na
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[]
Aplicações, durante a execução, podem incorrer em muitas espécies de erros de vários graus de severidade Quando métodos são invocados sobre um objeto:
Tratamento de Exceções Prof. Bruno Gomes [email protected] Programação Orientada a Objetos Exceções Aplicações, durante a execução, podem incorrer em muitas espécies de erros de vários graus de severidade
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:
Sistemas Distribuídos Métodos de Invocação Remota IV. Prof. MSc. Hugo Souza
Sistemas Distribuídos Métodos de Invocação Remota IV Prof. MSc. Hugo Souza Nesta aula, complementando os conceitos que vimos nas aulas anteriores [aula 15, aula 16 e aula 17], vamos praticar a segunda
Exercícios de Revisão Java Básico
Exercícios de Revisão Java Básico (i) Programação básica (estruturada) 1) Faça um programa para calcular o valor das seguintes expressões: S 1 = 1 1 3 2 5 3 7 99... 4 50 S 2 = 21 50 22 49 23 48...250 1
Invocação de Métodos em Objectos Remotos
Invocação de Métodos em Objectos Remotos Invocações de métodos remotas e locais A remote invocation B local C invocation local E invocation local invocation D remote invocation F Page 1 1 Invocação de
Slide 1 Deitel/Deitel, 8e. Java Como programar Copyright 2010 Pearson Education
Java Como Programar, 8/E Slide 1 Slide 2 Slide 3 Métodos genéricos e classes genéricas (e interfaces) permitem especificar, com uma única declaração de método, um conjunto de métodos relacionados ou, com
Introdução à Programação. Interface, Polimorfismo e Dynamic Binding
Introdução à Programação Interface, Polimorfismo e Dynamic Binding Interface Programador Java PLENO Possuir sólida experiência em programação Desenvolvimento na linguagem JAVA Webservice, Struts ou JSF(desejável)
15-09-2009. Membros de classe e de instância. PARTE III: Java e OO - detalhes. Exemplo 1: método. Exercício. Exemplo 1 corrigido
PARTE III: Java e OO - detalhes Membros de classe e instâncias Pacotes Visibilidade Classes aninhadas Membros de classe e de instância De classe Static Método não necessita de objeto para ser chamado.
Invocação Remota MC704
Invocação Remota MC704 Aplicações distribuídas Aplicação distribuída: conjunto de processos que cooperam entre si para prover um serviço ou realizar uma computação normalmente processos precisam invocar
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 [email protected] Fonte: Material da Profª Karina Oliveira Estrutura de Programa Um programa
Encapsulamento de Dados
Encapsulamento de Dados Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno [email protected] Fonte: Material da Profª Karina Oliveira Modificadores de Visibilidade Especificam
Implementando uma Classe e Criando Objetos a partir dela
Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 04 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 2 Prof. Cristóvão Cunha Implementando uma Classe
APÊNDICE A EXEMPLO DE APLICAÇÃO
APÊNDICE A EXEMPLO DE APLICAÇÃO Para ilustrar os três métodos de distribuição de objetos apresentados nesta dissertação iremos, a seguir, mostrar um exemplo de implementação de uma aplicação. São apresentadas
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
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
Exemplo 1. Um programa que cria uma instância de uma classe que herda da classe Frame
6. Como aplicações gráficas funcionam em Java? Todas as aplicações gráficas em Java usam instâncias de classes existentes, que por serem parte da linguagem podem ser executadas em todas as versões de Java
Sistemas Distribuídos Métodos de Invocação Remota II. Prof. MSc. Hugo Souza
Sistemas Distribuídos Métodos de Invocação Remota II Prof. MSc. Hugo Souza Nesta aula, complementando os conceitos que vimos nas aulas anteriores [aula 15], vamos praticar a programação de laboratório
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
1.6. Tratamento de Exceções
Paradigmas de Linguagens I 1 1.6. Tratamento de Exceções Uma exceção denota um comportamento anormal, indesejado, que ocorre raramente e requer alguma ação imediata em uma parte do programa [GHE 97, DER
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
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
Programação Orientada a Objetos (DPADF 0063)
Programação Orientada a Objetos (DPADF 0063) Aula 5 Herança Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas para Internet Prof. Bruno
Java Threads. Introdução
Java Threads [email protected] 1 Introdução O único mecanismo de concorrência suportado explicitamente pela linguagem Java é multi-threading. threading. Os mecanismos de gerenciamento e sicronização
Herança. Algoritmos e Programação II. Aula 5 Herança
Algoritmos e Programação II Aula 5 Herança *Adaptado do material do Prof. Júlio Machado Herança Uma característica importante da programação orientada a objetos é permitir a criação de novas classes com
Tratamento de Exceções. Alberto Costa Neto DComp - UFS
Tratamento de Exceções Alberto Costa Neto DComp - UFS [ Conteúdo ] Introdução Hierarquia de Erros e Exceções Erros e Exceções predefinidos Bloco try Bloco finally Cláusula throws Lançando exceções Capturando
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
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) [email protected]
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
Laboratório de Computação VI JAVA IDL. Fabricio Aparecido Breve - 981648-9
Laboratório de Computação VI JAVA IDL Fabricio Aparecido Breve - 981648-9 O que é Java IDL? Java IDL é uma tecnologia para objetos distribuídos, ou seja, objetos em diferentes plataformas interagindo através
Módulo 02 Programação Orientada a Objetos. Última atualização: 07/06/2010
Módulo 02 Programação Orientada a Objetos Última atualização: 07/06/2010 1 Objetivos Definir conceitos de orientação a objetos: o abstração, encapsulamento, pacotes. Discutir reutilização de código em
Programação Orientada a Objetos (DPADF 0063)
Programação Orientada a Objetos (DPADF 0063) Aula 6 Polimorfismo Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas para Internet Prof.
Programação Estruturada. Programação Estruturada. Idéias Básicas da Programação Estruturada
Programação Estruturada Programação Estruturada Paradigmas de Linguagens de Programação As linguagens desse paradigma são muitas vezes chamadas de linguagens convencionais, procedurais ou imperativas.
Relevância e Motivação. Programação Orientada a Objetos Utilizando Java. Qualidade do Software. Objetivos. Cancelamentos.
Programação Orientada a Objetos Utilizando Java Pedro de Alcântara dos Santos Neto e-mail: [email protected] Home Page: http:// www.ufpi.br/pasn Relevância e Motivação Técnicas a serem utilizadas na prática
Objetivos: Sun recomenda que utilize o nome de domínio da Internet da empresa, para garantir um nome de pacote único
Pacotes e Encapsulamento Prof. Bruno Gomes [email protected] Programação Orientada a Objetos Introdução Permite o agrupamento de classes em uma coleção chamada pacote Um pacote é uma coleção de classes
Sistemas Distribuídos
Sistemas Distribuídos Comunicação Remota Gustavo Reis [email protected] 1 Comunicação entre processos está no coração de todo sistema distribuído. Não tem sentido estudar sistemas distribuídos
Prof. Jhonatan Fernando
Prof. Jhonatan Fernando Métodos Programação OO Instâncias de variáveis (objetos) Mensagens Classes Herança Polimorfismo Encapsulamento Abstração Programação Estruturada Procedimentos e funções Variáveis
Aula 3 Objeto atual com referencia THIS e Classes com Herança
Aula 3 Objeto atual com referencia THIS e Classes com Herança Profº Msc. Alexsandro M. Carneiro Engenharia de Computação Tec. Análise e Des. De Sistemas Tópicos Abordados Controlee de Acesso Herança Definição:
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
