Java SE 7 e o futuro da linguagem Java

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

Download "Java SE 7 e o futuro da linguagem Java"

Transcrição

1 Java SE 7 e o futuro da linguagem Java Michael Nascimento Santos Summa Technologies do Brasil Ltda

2 Aviso As informações nesta palestra correspondem a declarações de previsão baseadas em expectativas atuais de eventos futuros que envolvem riscos e incertezas incluindo, sem limitação, riscos associados a incertezas inerentes à adequação do momento e sucesso de pesquisas...

3 Agenda > Como o Java SE é definido > Funcionalidades consideradas para inclusão > Mudanças propostas na linguagem > O futuro da linguagem Java > Q&A

4 Agenda > Como o Java SE é definido > Funcionalidades consideradas para inclusão > Mudanças propostas na linguagem > O futuro da linguagem Java > Q&A

5 Definição do Java SE (Antigamente) > Uma umbrella JSR é submetida ao JCP > A JSR já menciona algumas funcionalidades propostas > Escolhe-se o Expert Group > O EG discute o que deve ou não ser incluído e isso resulta na especificação > JSRs para APIs/mudanças da linguagem > Pequenos bugs/alterações listadas > A Sun faz a implementação de referência, aka JDK > A especificação passa por todo processo burocrático de votação e temos uma nova release!

6 Definição do Java SE hoje > Java + YOU (por bem ou por mal) > Apesar da burocracia, há grande influência da comunidade > JSRs lideradas por indivíduos > JSR-310 (Date & Time) > Contribuições ao OpenJDK > Closures prototype > Kijaro, um projeto aberto > Blogs > No entanto, ainda há dois grandes guardiões : > Java SE: Danny Coward > Linguagem Java: Alex Buckley

7 Agenda > Como o Java SE é definido > Funcionalidades consideradas para inclusão > Mudanças propostas na linguagem > O futuro da linguagem Java > Q&A

8 Próximas releases: Java SE > Java SE 6u10 (em breve) > Java Kernel > Applets e aplicações tratadas de forma unificada via JNLP com novo plugin > Java Quick Starter > Diversas melhorias para suportar o JavaFX > Java SE 7 (2009?) - APIs > Desktop (Swing Application Framework, Beans Binding, Validation) > NIO 2 (JSR 203) > JPA 2.0 > Date & Time > Melhorias no gerenciamento da VM (JMX)

9 Swing Application Framework (JSR-296) > Suporte à aplicação como conceito e seu ciclo de vida > Application (launch, initialize, startup, ready, exit, shutdown) > Configuração externa de recursos (textos, cores, ícones) > Sendo reconsiderado no momento > Ações (@Action) > Tasks, com suporte à execução assíncrona, indicação de progresso, interrupção e bloqueio da GUI > Sessions, com persistência do estado da aplicação

10 Swing Application Framework (JSR-296) public class M yapp extends SingleFram eapplication O verride protected void startup() { JLabellabel= new JLabel("H ello W orld"); show (label); } } public static void m ain(string[] args) { Application.launch(M yapp.class,args); } //SingleFram eapplication é um a subclasse de Application

11 Swing Application Framework (JSR-296) ApplicationC ontext c = Application.getInstance().getContext(); ResourceM ap r = c.getresourcem ap(m yform.class); r.getstring("aform at","w orld") => " Hel l o Wor l d" r.getc olor("colorrbg A") => new Col or ( 5, 6, 7, 8) r.getfont("afont") => new Font ( " Ar i al ", Font. PLAI N, 12) resources/m yform.properties astring = Just a string aform at = H ello % s aninteger = 123 aboolean = True anicon = m yicon.png afont = Arial-PLAIN -12 colorrg BA = 5,6,7,8 color0xrg B = #

12 Swing Application Framework (JSR-296) public class M yapp extends SingleFram eapplication Action public void sayh ello() { JLabellabel= new JLabel(); label.setn am e("label"); show (JO ptionpane.created ialog(label)); O verride protected void startup() { show (new JButton(getAction("sayH ello"))); } public static void m ain(string[] args) { Application.launch(M yapp.class,args); } } # resources/m yapp.properties sayh ello.action.text = Say& H ello sayh ello.action.shortd escription = say hello label.text = H ello W orld m ainfram e.title = H ello

13 Beans Binding (JSR 295) > Cria o conceito de Property > Infelizmente, não algo que faça parte da linguagem > Interface com algumas implementações convenientes (BeanProperty, ELProperty etc) > Permite expor propriedades sintéticas, como JTextComponent.text > Provê APIs para conversão e validação > Binding: liga duas propriedades > Possui extensões para facilitar o suporte Swing: > Lists/Maps observáveis > JListBinding, JTableBinding > Um tanto quanto polêmica

14 Beans Binding (JSR 295) Property fnamep = BeanProperty.create( firstname ); Property textp = BeanProperty.create( text ); Bindings.createAutoBinding(READ_WRITE, person, fnamep, textfield, textp).bind(); Property oldp = ELProperty.create( ${age > 50}} ); Bindings.createAutoBinding(READ, person, oldp, label, textp).bind();

15 Beans Binding (JSR 295) Property fnp = BeanProperty.create( firstname ); Property lnp = BeanProperty.create( lastname ); JTableBinding tb = SwingBindings.createJTableBinding(READ, list, jtable); tb.addcolumnbinding(fnp).setcolumnname( First Name ).setcolumnclass(string.class); tb.addcolumnbinding(lnp).setcolumnname( Last Name );.setcolumnclass(string.class); tb.bind();

16 Bean Validation (JSR-303) > Permite restringir o valor das propriedades no domínio através de anotações especiais (constraints) > Define constraints > Permite criar suas próprias anotações de constraints (@ConstraintValidator) e como validá-las (ConstraintValidator<A extends Annotation>) > Permite validações de todo o bean, propriedades individuais ou grupos > Geração de mensagens customizadas > Será integrada a diversos frameworks

17 Bean Validation (JSR-303) public class message="longer than {max} characters") private private Country country; } public class private String name;... }

18 Bean Validation Length { String message() default "{beanckeck.length}"; String[] groups() default {}; int min() default 0; int max() default Integer.MAX_VALUE; } public class LengthConstraint implements Constraint<Length> { public void initialize(length annotation) { } public boolean isvalid(object value) { } }

19 NIO 2 (JSR-203) > Nova API de suporte a filesystems > FileSystem > FileRef > Path > FileStore > Suporte a symbolic links > FileAttributeView > WatchService > SeekableByteChannel > Nova API de Sockets > Asynchronous I/O > Muito mais!

20 JPA 2.0 (JSR-317) > Mapeamento mais flexível > Collections de tipos básicos (wrappers, BigDecimal etc) > Collections de tipos embeddables (Endereco, CPF etc) > Listas ordenadas > Melhor suporte a Maps > Deleção de órfãos > API para locks pessimistas > Cache API > Criteria API > Integração com validação

21 Date & Time API (JSR-310) Date date = new Date(2007, 12, 13, 16, 40); TimeZone zone = TimeZone.getInstance("Asia/HongKong"); Calendar cal = new GregorianCalendar(date, zone); DateFormat fm = new SimpleDateFormat("HH:mm Z"); String str = fm.format(cal);

22 Date & Time API (JSR-310) Date date = new Date(2007, 12, 13, 16, 40); TimeZone zone = TimeZone.getInstance("Asia/HongKong"); Calendar cal = new GregorianCalendar(date, zone); DateFormat fm = new SimpleDateFormat("HH:mm Z"); String str = fm.format(cal);

23 Date & Time API (JSR-310) int year = ; Date date = new Date(year, 12, 13, 16, 40); TimeZone zone = TimeZone.getInstance("Asia/HongKong"); Calendar cal = new GregorianCalendar(date, zone); DateFormat fm = new SimpleDateFormat("HH:mm Z"); String str = fm.format(cal);

24 Date & Time API (JSR-310) int year = ; Date date = new Date(year, 12, 13, 16, 40); TimeZone zone = TimeZone.getInstance("Asia/HongKong"); Calendar cal = new GregorianCalendar(date, zone); DateFormat fm = new SimpleDateFormat("HH:mm Z"); String str = fm.format(cal);

25 Date & Time API (JSR-310) int year = ; int month = 12-1; Date date = new Date(year, month, 13, 16, 40); TimeZone zone = TimeZone.getInstance("Asia/HongKong"); Calendar cal = new GregorianCalendar(date, zone); DateFormat fm = new SimpleDateFormat("HH:mm Z"); String str = fm.format(cal);

26 Date & Time API (JSR-310) int year = ; int month = 12-1; Date date = new Date(year, month, 13, 16, 40); TimeZone zone = TimeZone.getInstance("Asia/HongKong"); Calendar cal = new GregorianCalendar(date, zone); DateFormat fm = new SimpleDateFormat("HH:mm Z"); String str = fm.format(cal);

27 Date & Time API (JSR-310) int year = ; int month = 12-1; Date date = new Date(year, month, 13, 16, 40); TimeZone zone = TimeZone.getInstance("Asia/Hong_Kong"); Calendar cal = new GregorianCalendar(date, zone); DateFormat fm = new SimpleDateFormat("HH:mm Z"); String str = fm.format(cal);

28 Date & Time API (JSR-310) int year = ; int month = 12-1; Date date = new Date(year, month, 13, 16, 40); TimeZone zone = TimeZone.getInstance("Asia/Hong_Kong"); Calendar cal = new GregorianCalendar(date, zone); DateFormat fm = new SimpleDateFormat("HH:mm Z"); String str = fm.format(cal);

29 Date & Time API (JSR-310) int year = ; int month = 12-1; Date date = new Date(year, month, 13, 16, 40); TimeZone zone = TimeZone.getInstance("Asia/Hong_Kong"); Calendar cal = new GregorianCalendar(zone); cal.settime(date); DateFormat fm = new SimpleDateFormat("HH:mm Z"); String str = fm.format(cal);

30 Date & Time API (JSR-310) int year = ; int month = 12-1; Date date = new Date(year, month, 13, 16, 40); TimeZone zone = TimeZone.getInstance("Asia/Hong_Kong"); Calendar cal = new GregorianCalendar(zone); cal.settime(date); DateFormat fm = new SimpleDateFormat("HH:mm Z"); Date caldate = cal.gettime(); String str = fm.format(caldate);

31 Date & Time API (JSR-310) int year = ; int month = 12-1; Date date = new Date(year, month, 13, 16, 40); TimeZone zone = TimeZone.getInstance("Asia/Hong_Kong"); Calendar cal = new GregorianCalendar(zone); cal.settime(date); DateFormat fm = new SimpleDateFormat("HH:mm Z"); Date caldate = cal.gettime(); String str = fm.format(caldate);

32 Date & Time API (JSR-310) int year = ; int month = 12-1; Date date = new Date(year, month, 13, 16, 40); TimeZone zone = TimeZone.getInstance("Asia/Hong_Kong"); Calendar cal = new GregorianCalendar(zone); cal.settime(date); DateFormat fm = new SimpleDateFormat("HH:mm Z"); fm.settimezone(zone); Date caldate = cal.gettime(); String str = fm.format(caldate);

33 Date & Time API (JSR-310) LocalDateTime dt = datetime(2007, 12, 13, 16, 40); TimeZone zone = timezone("asia/hong_kong"); ZonedDateTime date = datetime(dt, zone); DateTimeFormatter fm = hourminutezoneformatter(); String str = fm.print(date);

34 Date & Time API (JSR-310) ZonedDateTime date = builder().year(2007).december(). dayofmonth(13).hour(16).minute(40). timezone("asia/hong_kong").build(); DateTimeFormatter fm = hourminutezoneformatter(); String str = fm.print(date);

35 Problemas da API atual > Mutável > Janeiro é 0, Dezembro é 11, mas os dias vão de 1 a > Date não é uma data > Date usa anos a partir de 1900 > Calendar não pode ser formatado > DateFormat não é thread-safe > DateFormat possui um TimeZone implícito > java.sql.{date, Time, Timestamp} estendem Date > Muitos conceitos não podem ser representados

36 Date & Time API (JSR-310) > Modelo abrangente de data e hora > Type-safe > Interoperável com Date e Calendar > Vão poder ser convertidas para as novas interfaces > Compatível com os padrões XML e SQL > Princípios de design: > Imutável > Fluente > Principle of Least Astonishment > Extensível

37 Date & Time API (JSR-310) > Científica (Instant, Duration, Interval) > Humana > Tipos básicos > LocalDate, LocalTime, LocalDateTime > OffsetDate, OffsetTime, OffsetDateTime > ZonedDateTime > Campos > Year, MonthOfYear, DayOfMonth, DayOfWeek etc. > Regras extensíveis > DateMatcher, TimeMatcher > DateAdjuster, TimeAdjuster > DateResolver

38 Date & Time API (JSR-310) > Solução para o problema do horário de verão! > Novo conceito de TimeZone > Nome > Offset base (ZoneOffset) > Versão das regras de transição do offset > (Se tudo der certo) permitirá atualização das regras da JVM on-the-fly > Sem quebrar objetos existentes > Usando novas regras para objetos criados depois

39 Date & Time API (JSR-310) > Periods > Years, Months etc. > Composições dos valores > Nova API de formatting & parsing > Com builders > Interoperável com API existente > Suporte a outros sistemas de calendário > Suporte aos existentes no JDK > Permitindo extensibilidade > Nova classe para obter a hora atual: Clock > Fácil de testar > Permite atender requisitos de uma forma melhor

40 Agenda > Como o Java SE é definido > Funcionalidades consideradas para inclusão > Mudanças propostas na linguagem > O futuro da linguagem Java > Q&A

41 A linguagem Java > Como evoluir uma linguagem estabelecida? > Assume-se que adicionar features é algo bom > Talvez seja para aplicações > Linguagens precisam ser consistentes > Se existe boxing/unboxing, por que não List<int>? > Java tem como princípio ser backwardscompatible > Ao mesmo tempo que permite que seu código funcione, não permite que a evolução ocorra da forma mais elegante possível

42 Princípios de evolução > Respeitar o passado > Novas keywords quebram o código (assert, enum) > Features removidas quebram o código > Consertar pode quebrar código também > Respeitar o futuro > Features que complementam features podem ser postergadas > Levar em conta outras potenciais adições ao definir a sintaxe > Respeitar o modelo atual > Manter o foco da linguagem > Aumentar a consistência dentro do foco

43 Princípios do modelo atual > Linguagem de alto nível > Clareza > Tipagem estática > Isolamento entre a linguagem e as APIs

44 Features e viabilidade > Propriedades > Reified generics > Closures & extension methods > Suporte XML > Módulos > Melhorias nas anotações > Pequenas mudanças

45 Propriedades > Diversos modelos propostos > Alterando a linguagem > Nova API > Combinação de ambas > Polêmica > Poucas soluções concretas desenvolvidas > Código teria que ser reescrito para tirar proveito > Chances: baixíssimas

46 Reified generics > Desejada por grande parte das pessoas > Poucas soluções propostas > Nenhum protótipo concreto, nem especificação > Requer muito esforço de implementação > Chances: baixíssimas

47 Closures > Diversos modelos propostos > BGGA > FCM > CICE > NIPAD > Muito polêmica na comunidade > Para que código comum tirasse proveito, exigiria reescrita ou adoção de features como extension methods > Chances: baixíssimas

48 Closures > Diversos modelos propostos > BGGA > FCM > CICE > NIPAD (Não Implementem Pelo Amor de Deus!!!) > Muito polêmica na comunidade > Para que código comum tirasse proveito, exigiria reescrita ou adoção de features como extension methods > Chances: baixíssimas

49 Suporte XML > Extremamente polêmica! > Sem protótipo disponível > Sem especificação > Chances: baixíssimas (ufa!)

50 Módulos > Duas JSRs inicialmente > 277: API e modelo de execução > 294: Mudanças na linguagem > Unificada recentemente na JSR-277 > Introduz conceito de restricted keyword: module > Declaração de classes e pacotes integrante do módulo > Declaração de dependências de outros módulos > Novo formato de deployment (JAM) > Potencial interoperabilidade com outros sistemas de módulos (OSGi) > Chances de inclusão: altas

51 Módulos // org/netbeans /core/debug g er.java module org.netbeans.core; packag e org.netbeans.core; public class Debugger {... new ErrorTracker()... } // org/netbeans /core/utils /ErrorTracker.java module org.netbeans.core; packag e org.netbeans.core.utils ; module class ErrorTracker { module int geterrorline() {... } } // org/netbeans Vers ImportModule(name=" java.s e.core", vers ion=" 1.7+") module org.netbeans.core;

52 Melhorias nas anotações > Possui JSR > Mais lugares para usar: > String> > class UnmodifiableList<T> T> List<T> = //...; > Introduz a noção de tipo específico de processador de anotação: type checker > Não tão polêmica (talvez por não estar tão difundida) > Chances: média-alta

53 Pequenas features > Multi-catches: > } catch (AnException, AnotherException e) { tratar(e) } > Safe-rethrow > Permite fazer catch de super-tipo, mas lançar apenas subtipos esperados > Switch para Strings > Chances: muito altas

54 Agenda > Como o Java SE é definido > Funcionalidades consideradas para inclusão > Mudanças propostas na linguagem > O futuro da linguagem Java > Q&A

55 O futuro da linguagem > Nunca vamos ter closures, reified generics ou...? > A opinião está dividida: > Alguns querem que a linguagem fique como está e a evolução ocorra em novas linguagens para a JVM > Alguns temem o que as pessoas farão com features como generics > Alguns querem que Java continue sendo uma linguagem viva e em constante evolução > É como o conselho mais piegas do mundo:

56 Depende de nós > A comunidade precisa decidir > A decisão final a respeito da linguagem ainda não foi tomada > E o melhor provavelmente deve ser um pouco da opinião de cada parcela da comunidade > Colabore manifestando a sua opinião > Blogs > OpenJDK > JUGs > Ou a Globalcode... :-)

57 Conclusão > Diversas APIs estão cogitadas para inclusão > Nem tantas mudanças de linguagem assim > Java vai manter suas características > Há certas coisas que nós nunca vamos ver em Java - operator overloading... :-) > O quão longe a linguagem vai evoluir e até quando vão haver novas versões depende da comunidade > Faça parte da comunidade!

58 Obrigado! Michael Nascimento Santos

59 La pergunta?

JSR 310: Uma nova forma de lidar com datas e horas

JSR 310: Uma nova forma de lidar com datas e horas JSR 310: Uma nova forma de lidar com datas e horas Fábio Kung Michael Nascimento Santos JustJava 2007 Fábio Kung 30/01/2008 JSR 310: Uma nova forma de lidar com datas e horas 2 Michael Nascimento Santos

Leia mais

Desenvolvendo aplicações desktop em Java: presente e futuro

Desenvolvendo aplicações desktop em Java: presente e futuro Desenvolvendo aplicações desktop em Java: presente e futuro Michael Nascimento Santos Conexão Java 2006 Michael Nascimento Santos 7 anos de experiência com Java Expert nas JSRs 207, 250, 270 (Java 6),

Leia mais

Desktop em minutos com genesis, Matisse, Java WebStart e JSR-296

Desktop em minutos com genesis, Matisse, Java WebStart e JSR-296 Desktop em minutos com genesis, Matisse, Java WebStart e JSR-296 Allan Jones Batista de Castro Michael Nascimento Santos Raphael Winckler de Bettio JustJava 2006 Allan Jones Batista de Castro 5 anos de

Leia mais

Novos tempos: javax.time Conheça a nova especificação de Data e Hora

Novos tempos: javax.time Conheça a nova especificação de Data e Hora 1 Novos tempos: javax.time Conheça a nova especificação de Data e Hora Você irá conhecer a nova API de data e hora da plataforma Java. Construída como uma opção ao uso de java.util.date e java.util.calendar,

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

Padrão Arquitetura em Camadas

Padrão Arquitetura em Camadas Padrão Arquitetura em Camadas Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Definição Estimula a organização

Leia mais

TDC2012. EJB simples e descomplicado, na prática. Slide 1

TDC2012. EJB simples e descomplicado, na prática. Slide 1 TDC2012 EJB simples e descomplicado, na prática Slide 1 Palestrantes Kleber Xavier Arquiteto Senior / Globalcode kleber@globalcode.com.br Vinicius Senger Arquiteto Senior / Globalcode vinicius@globalcode.com.br

Leia mais

Curso de Aprendizado Industrial Desenvolvedor WEB

Curso de Aprendizado Industrial Desenvolvedor WEB Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos II Professor: Cheli dos S. Mendes da Costa Servidor de Aplicações WEB Tomcat Servidor Tomcat Foi desenvolvido

Leia mais

Etc & Tal. Volume 2 - Número 1 - Abril 2009 SBC HORIZONTES 44

Etc & Tal. Volume 2 - Número 1 - Abril 2009 SBC HORIZONTES 44 Armazenando Dados em Aplicações Java Parte 2 de 3: Apresentando as opções Hua Lin Chang Costa, hualin@cos.ufrj.br, COPPE/UFRJ. Leonardo Gresta Paulino Murta, leomurta@ic.uff.br, IC/UFF. Vanessa Braganholo,

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

Desenvolvimento Web com Framework Demoiselle versão 1.0

Desenvolvimento Web com Framework Demoiselle versão 1.0 Desenvolvimento Web com Framework Demoiselle versão 1.0 Módulo 07: Outros Componentes Autor: Rodrigo Hjort Serpro / Coordenação Estratégica de Tecnologia / Curitiba www.frameworkdemoiselle.org.br Modificado

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

Persistência de dados com JPA. Hélder Antero Amaral Nunes haanunes@gmail.com

Persistência de dados com JPA. Hélder Antero Amaral Nunes haanunes@gmail.com Persistência de dados com JPA Hélder Antero Amaral Nunes haanunes@gmail.com O que é persistência? A persistência de dados é o fato de pegar um dado e torná-lo persistente, ou seja, salvar em algum banco

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

Introdução a Java. Hélder Nunes

Introdução a Java. Hélder Nunes Introdução a Java Hélder Nunes 2 Exercício de Fixação Os 4 elementos básicos da OO são os objetos, as classes, os atributos e os métodos. A orientação a objetos consiste em considerar os sistemas computacionais

Leia mais

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse Como criar um EJB Criando um projeto EJB com um cliente WEB no Eclipse Gabriel Novais Amorim Abril/2014 Este tutorial apresenta o passo a passo para se criar um projeto EJB no Eclipse com um cliente web

Leia mais

Programação de Interfaces Gráficas. Aula 1. Carlos Eduardo de Carvalho Dantas (carloseduardoxpto@gmail.com) http://carloseduardoxp.wordpress.

Programação de Interfaces Gráficas. Aula 1. Carlos Eduardo de Carvalho Dantas (carloseduardoxpto@gmail.com) http://carloseduardoxp.wordpress. Programação de Interfaces Gráficas Aula 1 Carlos Eduardo de Carvalho Dantas (carloseduardoxpto@gmail.com) http://carloseduardoxp.wordpress.com "Use o seu tempo para melhorar a si mesmo através dos escritos

Leia mais

EJB ainda tem vez no Java EE 6? Fernando Lozano Consultor 4Linux lozano@4linux.com.br

EJB ainda tem vez no Java EE 6? Fernando Lozano Consultor 4Linux lozano@4linux.com.br EJB ainda tem vez no Java EE 6? Fernando Lozano Consultor 4Linux lozano@4linux.com.br Você Gosta do EJB? O EJB esteve por muito tempo na berlinda do mundo Java É pesado... É complicado... Código muito

Leia mais

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

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

Leia mais

Parte I. Demoiselle Mail

Parte I. Demoiselle Mail Parte I. Demoiselle Mail Para o envio e recebimento de e-s em aplicativos Java, a solução mais natural é usar a API JavaMail [http:// www.oracle.com/technetwork/java/java/index.html]. Ela provê um framework

Leia mais

Programação em JAVA. Subtítulo

Programação em JAVA. Subtítulo Programação em JAVA Subtítulo Sobre a APTECH A Aptech é uma instituição global, modelo em capacitação profissional, que dispõe de diversos cursos com objetivo de preparar seus alunos para carreiras em

Leia mais

Seminário - C# DSO II. Desenvolvimento de Sistemas Orientados a Objetos 2. Equipe: Diorges, Leonardo, Luís Fernando, Ronaldo

Seminário - C# DSO II. Desenvolvimento de Sistemas Orientados a Objetos 2. Equipe: Diorges, Leonardo, Luís Fernando, Ronaldo Seminário - C# DSO II Desenvolvimento de Sistemas Orientados a Objetos 2 Equipe: Diorges, Leonardo, Luís Fernando, Ronaldo Roteiro Breve Histórico Plataforma.NET Características da Linguagem Sintaxe Versões

Leia mais

PROGRAMAÇÃO SERVIDOR PADRÕES MVC E DAO EM SISTEMAS WEB. Prof. Dr. Daniel Caetano 2012-1

PROGRAMAÇÃO SERVIDOR PADRÕES MVC E DAO EM SISTEMAS WEB. Prof. Dr. Daniel Caetano 2012-1 PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB PADRÕES MVC E DAO Prof. Dr. Daniel Caetano 2012-1 Objetivos Compreender o conceito de Padrões de Projeto Compreender o Padrão MVC Conhecer o princípio de alguns dos

Leia mais

Exercícios de Revisão Java Básico

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

Leia mais

Organizando Classes em Pacotes. Profa. Thienne Johnson EACH/USP

Organizando Classes em Pacotes. Profa. Thienne Johnson EACH/USP Organizando Classes em Pacotes Profa. Thienne Johnson EACH/USP Criando e usando pacotes Nomeando um pacote Usando membros de pacotes Gerenciando arquivos Exercícios Usando pacotes no Eclipse Tutorial da

Leia mais

Um pouco do Java. Prof. Eduardo

Um pouco do Java. Prof. Eduardo Um pouco do Java Prof. Eduardo Introdução A tecnologia JAVA é composta pela linguagem de programação JAVA e pela plataforma de desenvolvimento JAVA. Os programas são escritos em arquivos-texto com a extensão.java.

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

( TIAGO DOS SANTOS MENDES ) PROGRAMAÇÃO DISPOSITIVOS MOVEIS ANDROID STUDIO

( TIAGO DOS SANTOS MENDES ) PROGRAMAÇÃO DISPOSITIVOS MOVEIS ANDROID STUDIO Serviço Nacional de Aprendizagem Comercial E.E.P. Senac Pelotas Centro Histórico Programa Nacional de Acesso ao Ensino Técnico e Emprego Curso Técnico em Informática ( TIAGO DOS SANTOS MENDES ) PROGRAMAÇÃO

Leia mais

Enterprise Java Beans

Enterprise Java Beans Enterprise Java Beans Prof. Pasteur Ottoni de Miranda Junior DCC PUC Minas Disponível em www.pasteurjr.blogspot.com 1-O que é um Enterprise Java Bean? O Entertprise Java Bean (EJB) é um componente server-side

Leia mais

Java para Desenvolvimento Web

Java para Desenvolvimento Web Java para Desenvolvimento Web Servlets A tecnologia Servlet foi introduzida pela Sun Microsystems em 1996, aprimorando e estendendo a funcionalidade e capacidade de servidores Web. Servlets é uma API para

Leia mais

EJB 3.1: A Community Update

EJB 3.1: A Community Update EJB 3.1: A Community Update Reza Rahman Autor, EJB 3 in Action Expert Group Member, Java EE 6 and EJB 3.1 Fundador, Cognicellence Julho de 2008 1 EJB 3.0: Revisão Breve > As grandes mudanças > EJB simplificado

Leia mais

Programação Concorrente em java - Exercícios Práticos Abril 2004

Programação Concorrente em java - Exercícios Práticos Abril 2004 Programação Concorrente em java - Exercícios Práticos Abril 2004 1. Introdução As threads correspondem a linhas de controlo independentes no âmbito de um mesmo processo. No caso da linguagem JAVA, é precisamente

Leia mais

Curso - Padrões de Projeto Módulo 2: Padrões de Criação

Curso - Padrões de Projeto Módulo 2: Padrões de Criação Curso - Padrões de Projeto Módulo 2: Padrões de Criação Vítor E. Silva Souza vitorsouza@gmail.com http://www.javablogs.com.br/page/engenho http://esjug.dev.java.net Sobre o Instrutor Formação: Java: Graduação

Leia mais

Frameworks - Grails. Aécio Costa

Frameworks - Grails. Aécio Costa Aécio Costa Abstração que une códigos comuns entre vários projetos de software provendo uma funcionalidade genérica. Framework é um conjunto de classes que colaboram para realizar uma responsabilidade

Leia mais

Como já foi muito bem detalhado no Capítulo IV, o jcompany Developer Suite pode ser

Como já foi muito bem detalhado no Capítulo IV, o jcompany Developer Suite pode ser A1Criando um módulo de negócio Capítulo 27 Aplicação dividida em módulos - Introdução Como já foi muito bem detalhado no Capítulo IV, o jcompany Developer Suite pode ser compreendido como uma solução de

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 10 Persistência de Dados

Leia mais

Java Internationalization (i18n)

Java Internationalization (i18n) Java Internationalization (i18n) Java Deployment Course por Jorge H. C. Fernandes (jhcf@di.ufpe.br) DI-UFPE Julho de 1999 Referências Java Tutorial Todos os exemplos mostrados nesta aula foram originados

Leia mais

Começando com Ruby on Rails @gibsongabriel

Começando com Ruby on Rails @gibsongabriel Começando com Ruby on Rails @gibsongabriel Yukiriho 'Matz' Matsumoto http://ruby-lang.org/pt/ Ruby é uma linguagem de programação interpretada, com tipagem forte e dinâmica, que tem como foco a simplicidade

Leia mais

Criando uma agenda simples com NetBeans 6.5

Criando uma agenda simples com NetBeans 6.5 Criando uma agenda simples com NetBeans 6.5 (Swing application framework e Beansbinding) Já faz algum tempo que escrevi uma agenda simples usando o Eclipse com o Visual Class Editor. Demorei em torno de

Leia mais

Aspectos técnicos do desenvolvimento baseado em componentes

Aspectos técnicos do desenvolvimento baseado em componentes Aspectos técnicos do desenvolvimento baseado em componentes Um novo processo de desenvolvimento O uso de componentes traz mudanças no processo de desenvolvimento Além de desenvolver um produto, queremos

Leia mais

Resolvendo objeto-relacional impedance mismatch com hibernate

Resolvendo objeto-relacional impedance mismatch com hibernate Resolvendo objeto-relacional impedance mismatch com hibernate August 7, 2013 Sumário I 1 Introdução 2 3 4 Sumário II 5 Contexto Mapeamento Objeto-Relacional (ORM) é uma técnica de programação para converter

Leia mais

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans Introdução à Linguagem de Programação JAVA

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans Introdução à Linguagem de Programação JAVA P. Fazendeiro & P. Prata POO FP1/1 ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans Introdução à Linguagem de Programação JAVA 0 Iniciar o ambiente de desenvolvimento integrado

Leia mais

Tópicos em Engenharia de Computação

Tópicos em Engenharia de Computação Tópicos em Engenharia de Computação Introdução / Revisão UML e POO (JAVA) Prof. Ivan Prof. Zagari UML Linguagem Unificada. Não é metodologia, processo ou método. Versão atual 2.0 3 categorias de Diagramas

Leia mais

Mapeamento Lógico/Relacional com JPA

Mapeamento Lógico/Relacional com JPA Mapeamento Lógico/Relacional com JPA Elaine Quintino da Silva Doutora em Ciência da Computação pelo ICMC-USP/São Carlos Analista de Sistemas UOL PagSeguro Instrutora Globalcode Agenda! Persistência de

Leia mais

Fixture-Factory. Criando objetos para seus testes. Como criar objetos através de templates para serem utilizados como massa de dados em seus testes.

Fixture-Factory. Criando objetos para seus testes. Como criar objetos através de templates para serem utilizados como massa de dados em seus testes. fixture-factory_ Fixture-Factory Criando objetos para seus testes Como criar objetos através de templates para serem utilizados como massa de dados em seus testes. Começamos testando métodos simples, mas

Leia mais

Capítulo 8. Introdução UML

Capítulo 8. Introdução UML Capítulo 8. Introdução UML 1/42 Índice Indice 8.1 - Introdução UML 8.2 - Modelação estrutural 8.2.1 - Representação de classes e objectos 8.2.2 - Relações entre objectos 8.2-3 - Relações de associação

Leia mais

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural Resumo: Perguntas a fazer ao elaborar um projeto arquitetural Sobre entidades externas ao sistema Quais sistemas externos devem ser acessados? Como serão acessados? Há integração com o legado a ser feita?

Leia mais

JPA: Persistência padronizada em Java

JPA: Persistência padronizada em Java JPA: Persistência padronizada em Java FLÁVIO HENRIQUE CURTE Bacharel em Engenharia de Computação flaviocurte.java@gmail.com Programação Orientada a Objetos X Banco de Dados Relacionais = Paradigmas diferentes

Leia mais

Formação em JAVA. Subtítulo

Formação em JAVA. Subtítulo Formação em JAVA Subtítulo Sobre a APTECH A Aptech é uma instituição global, modelo em capacitação profissional, que dispõe de diversos cursos com objetivo de preparar seus alunos para carreiras em Tecnologia

Leia mais

EXPLORANDO TÉCNICAS E RECURSOS DO GERENCIADOR DE DADOS ABERTOS CKAN. TuaneFaria USP tuanefaria@yahoo.com.br

EXPLORANDO TÉCNICAS E RECURSOS DO GERENCIADOR DE DADOS ABERTOS CKAN. TuaneFaria USP tuanefaria@yahoo.com.br EXPLORANDO TÉCNICAS E RECURSOS DO GERENCIADOR DE DADOS ABERTOS CKAN Prof. Dr. José Eduardo Santarem Segundo USP santarem@usp.br TuaneFaria USP tuanefaria@yahoo.com.br Introdução Disponibilizar Dados Disponibilizar

Leia mais

Aprenda como instalar o plugin EclipseUML no Eclipse e como utilizá-lo para fazer engenharia reversa de seu código-fonte.

Aprenda como instalar o plugin EclipseUML no Eclipse e como utilizá-lo para fazer engenharia reversa de seu código-fonte. Omondo EclipseUML Ricardo Rodrigues Lecheta Aprenda como instalar o plugin EclipseUML no Eclipse e como utilizá-lo para fazer engenharia reversa de seu código-fonte. Introdução Neste tutorial será apresentado

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

Projeto Demoiselle. Para perguntas e respostas, utilizem a lista de discussões de usuários da comunidade: demoiselle-users@lists.sourceforge.

Projeto Demoiselle. Para perguntas e respostas, utilizem a lista de discussões de usuários da comunidade: demoiselle-users@lists.sourceforge. Projeto Demoiselle Para perguntas e respostas, utilizem a lista de discussões de usuários da comunidade: demoiselle-users@lists.sourceforge.net Palestrantes: Antônio Carlos Tiboni Luciana Campos Mota 20/07/2009

Leia mais

Prototype, um Design Patterns de Criação

Prototype, um Design Patterns de Criação Prototype, um Design Patterns de Criação José Anízio Pantoja Maia Este artigo tem como finalidade compreender o funcionamento do padrão de projeto prototype, serão abordados os participantes que compõe

Leia mais

Banco de Dados Modelo Conceitual, Lógico, Físico, Entidade- Relacionamento (ER) Hélder Nunes

Banco de Dados Modelo Conceitual, Lógico, Físico, Entidade- Relacionamento (ER) Hélder Nunes Banco de Dados Modelo Conceitual, Lógico, Físico, Entidade- Relacionamento (ER) Hélder Nunes Modelos de banco de dados Modelo de banco de dados é uma descrição dos tipos de informações que estão armazenadas

Leia mais

DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS. PROFª. M.Sc. JULIANA H Q BENACCHIO

DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS. PROFª. M.Sc. JULIANA H Q BENACCHIO DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS PROFª. M.Sc. JULIANA H Q BENACCHIO Links importantes http://www.android.com/ Site oficial de toda a documentação, downloads e informações sobre a plataforma. http://developer.android.com/

Leia mais

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA P. Fazendeiro & P. Prata POO FP1/1 ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA 0 Inicie o ambiente de desenvolvimento integrado

Leia mais

Computação II Orientação a Objetos

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 Classes abstratas Até agora, usamos interfaces toda vez que queríamos representar algum conceito abstrato

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

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS Campus Cachoeiro de Itapemirim Curso Técnico em Informática Disciplina: Análise e Projeto de Sistemas Professor: Rafael Vargas Mesquita Este exercício deve ser manuscrito e entregue na próxima aula; Valor

Leia mais

Notas de Lançamento Lançamento Aconex 15.1.20 Publicado dia 6 de Fevereiro de 2015, para cobrir o periodo de lançamentos entre dia 15 de Fevereiro e

Notas de Lançamento Lançamento Aconex 15.1.20 Publicado dia 6 de Fevereiro de 2015, para cobrir o periodo de lançamentos entre dia 15 de Fevereiro e Notas de Lançamento Lançamento Aconex 15.1.20 Publicado dia 6 de Fevereiro de 2015, para cobrir o periodo de lançamentos entre dia 15 de Fevereiro e 15 de Março Sumário Este lançamento inclui melhorias

Leia mais

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena Tópicos Motivação e Objetivos LP e SOA Processo ADESE

Leia mais

THREADS EM JAVA. George Gomes Cabral

THREADS EM JAVA. George Gomes Cabral THREADS EM JAVA George Gomes Cabral THREADS Fluxo seqüencial de controle dentro de um processo. Suporte a múltiplas linhas de execução permite que múltiplos processamentos ocorram em "paralelo" (em computadores

Leia mais

Java Threads. Introdução

Java Threads. Introdução Java Threads mleal@inf.puc-rio.br 1 Introdução O único mecanismo de concorrência suportado explicitamente pela linguagem Java é multi-threading. threading. Os mecanismos de gerenciamento e sicronização

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Curso: Sistemas de Informações Arquitetura de Software Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 7 JPA A Persistência com JPA Para configurar o JPA

Leia mais

Programação Orientada a Objetos e Java - Introdução. Carlos Lopes

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

Leia mais

Feature-Driven Development

Feature-Driven Development FDD Feature-Driven Development Descrição dos Processos Requisitos Concepção e Planejamento Mais forma que conteúdo Desenvolver um Modelo Abrangente Construir a Lista de Features Planejar por

Leia mais

Spring: Um suite de novas opções para Java EE

Spring: Um suite de novas opções para Java EE Spring: Um suite de novas opções para Java EE Alberto J Lemos (Dr. Spock) Instrutor Globalcode Ricardo Jun Taniguchi Instrutor Globalcode 1 Agenda > Sobre o Spring Framework > Escopo de integração com

Leia mais

Esse update é 10: Novos applets e JavaFX

Esse update é 10: Novos applets e JavaFX Esse update é 10: Novos applets e JavaFX Jorge Diz Instrutor Globalcode Objetivos Objetivos: Mostrar o que vem por ai no desktop/ browsertop Ver se os applets agora vão pegar Onde está JavaFX? Agenda >Applets:

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

4 O Workflow e a Máquina de Regras

4 O Workflow e a Máquina de Regras 4 O Workflow e a Máquina de Regras O objetivo do workflow e da máquina de regras é definir um conjunto de passos e regras configuráveis. Ao longo de sua execução, um usuário consegue simplificar o seu

Leia mais

Categorias de Padrões

Categorias de Padrões Categorias de Padrões Padrão Arquitetural ou Estilo Arquitetural Padrão de Design (Design Patterns) Idiomas Categorias de Padrões ESTILOS ARQUITETURAIS PADRÕES DE DESIGN IDIOMAS Padrões de Design Os subsistemas

Leia mais

MAC-0462 Padrões arquiteturais para sistemas baseados em componentes reconfiguráveis

MAC-0462 Padrões arquiteturais para sistemas baseados em componentes reconfiguráveis MAC-0462 Padrões arquiteturais para sistemas baseados em componentes reconfiguráveis Microkernel Service Locator Dependency Injection Exemplo Classe Auditor Salva registros de eventos no banco de dados

Leia mais

II Semana TI. Curso ASP.NET AJAX. Raphael Zanon Rodrigues zanonr@gmail.com. UNIVEM - Prof. Elvis Fusco

II Semana TI. Curso ASP.NET AJAX. Raphael Zanon Rodrigues zanonr@gmail.com. UNIVEM - Prof. Elvis Fusco II Semana TI Curso ASP.NET AJAX Raphael Zanon Rodrigues zanonr@gmail.com UNIVEM - Prof. Elvis Fusco Apresentação O que é o AJAX? AJAX e o desenvolvedor AJAX para ASP.NET AJAX prático O que é AJAX? AJAX

Leia mais

JAVA 1.5 na plataforma J2SE 5.0 Tiger Novas Construções, Sintaxe, Tipos e Polimorfismo

JAVA 1.5 na plataforma J2SE 5.0 Tiger Novas Construções, Sintaxe, Tipos e Polimorfismo JAVA 1.5 na plataforma J2SE 5.0 Tiger Novas Construções, Sintaxe, Tipos e Polimorfismo GENERICS (Tipos Parametrizados, Classes Parametrizadas) : têm o objectivo de tornar as Colecções seguras em termos

Leia mais

Universidade da Beira Interior

Universidade da Beira Interior Universidade da Beira Interior Relatório Apresentação Java Server Pages Adolfo Peixinho nº4067 Nuno Reis nº 3955 Índice O que é uma aplicação Web?... 3 Tecnologia Java EE... 4 Ciclo de Vida de uma Aplicação

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

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

Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Características Roteamento

Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Características Roteamento Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Características Roteamento Professor Rene - UNIP 1 Roteamento Dinâmico Perspectiva e histórico Os protocolos de roteamento dinâmico são usados

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

Exemplo 1. Um programa que cria uma instância de uma classe que herda da classe Frame

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

Leia mais

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 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

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

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

e-stf WebServices Processo Eletrônico Smart Client Documentação

e-stf WebServices Processo Eletrônico Smart Client Documentação SUPREMO TRIBUNAL FEDERAL Secretaria de Tecnologia da Informação e-stf WebServices Processo Eletrônico Smart Client 1 Histórico da Revisão Data Versão Descrição Autor 20/06/2008 1.0 Criação do documento

Leia mais

gerenciamento de portais e websites corporativos interface simples e amigável, ágil e funcional não dependendo mais de um profissional especializado

gerenciamento de portais e websites corporativos interface simples e amigável, ágil e funcional não dependendo mais de um profissional especializado O NetPublisher é um sistema de gerenciamento de portais e websites corporativos (intranets ou extranets), apropriado para pequenas, médias e grandes empresas. O conteúdo do website pode ser atualizado

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 10 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de coesão e acoplamento. DESENVOLVIMENTO Projetar

Leia mais

Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread.

Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread. 5 THREADS Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread. 5.1 VISÃO GERAL Uma definição mais abrangente para threads é considerá-lo

Leia mais

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES Alexandre Egleilton Araújo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil araujo.ale01@gmail.com, jaime@unipar.br Resumo.

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

Tecnologia Java. Daniel Destro do Carmo Softech Network Informática daniel@danieldestro.com.br

Tecnologia Java. Daniel Destro do Carmo Softech Network Informática daniel@danieldestro.com.br Tecnologia Java Daniel Destro do Carmo Softech Network Informática daniel@danieldestro.com.br Origem da Tecnologia Java Projeto inicial: Oak (liderado por James Gosling) Lançada em 1995 (Java) Tecnologia

Leia mais

Tutorial RMI (Remote Method Invocation) por Alabê Duarte

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

Leia mais

Breve introdução. Uma breve introdução. Simplicidade e Poder. Rápido Dinâmico Robusto

Breve introdução. Uma breve introdução. Simplicidade e Poder. Rápido Dinâmico Robusto Breve introdução Uma breve introdução Rápido Dinâmico Robusto Simplicidade e Poder Linguagem dinâmica Arquitetura Mapeamento Objeto Relacional Convenção DRY YAGNI KISS Groovy MVC Hibernate Sobre configuração

Leia mais

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 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

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

Manipulação de Banco de Dados com Java. Ms. Bruno Crestani Calegaro (bruno.calegaro@ifsc.edu.br) Maio/ 2015

Manipulação de Banco de Dados com Java. Ms. Bruno Crestani Calegaro (bruno.calegaro@ifsc.edu.br) Maio/ 2015 Manipulação de Banco de Dados com Java Ms. Bruno Crestani Calegaro (bruno.calegaro@ifsc.edu.br) Maio/ 2015 Acesso a um SGBD Em sistemas mais simples o uso de arquivos pode ser usado mas para aplicações

Leia mais

Kerio Exchange Migration Tool

Kerio Exchange Migration Tool Kerio Exchange Migration Tool Versão: 7.3 2012 Kerio Technologies, Inc. Todos os direitos reservados. 1 Introdução Documento fornece orientações para a migração de contas de usuário e as pastas públicas

Leia mais

Aplicações Desktop: Swing/SubMacroForms. Carlos Renato Alves Gouveia Novembro/2008 cgouveia@fes.br

Aplicações Desktop: Swing/SubMacroForms. Carlos Renato Alves Gouveia Novembro/2008 cgouveia@fes.br Aplicações Desktop: Swing/SubMacroForms Carlos Renato Alves Gouveia Novembro/2008 cgouveia@fes.br Carlos Renato Alves Gouveia Especialista em Engenharia de Web Sites pela UFMS; Professor Universitário

Leia mais

8 Classes Internas. Desenvolvimento OO com Java. Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.

8 Classes Internas. Desenvolvimento OO com Java. Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes. Desenvolvimento OO com Java 8 Classes Internas Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do

Leia mais