Vous êtes sur la page 1sur 109

Trilha do aprendizado do desenvolvimento geral em Java

O que um aplicativo Java SE?


um aplicativo desenvolvido na Plataforma Java, Standard Edition (Java SE). Os mesmos aplicativos Java SE no modificados podem ser executados praticamente em qualquer computador, qualquer que seja o sistema operacional, como Microsoft Windows, Solaris, Linux ou Mac OS X. O segredo dessa portabilidade do aplicativo o Java Runtime Environment, que est disponvel gratuitamente para a maioria dos sistemas operacionais, incluindo os acima mencionados. Alm de ser uma plataforma para aplicativos de rea de trabalho em vrias plataformas, a Java SE a base de outras tecnologias, como a Plataforma Java, Enterprise Edition. Tambm possvel criar cdigos que forneam lgica secundria para aplicativos da Web e empresariais.

Primeiros passos

Tutorial de incio rpido de Java

Screencasts

Demonstrao: Recurso de inspe

Demonstrao: suporte do NetB

Demonstrao: Recursos do Proj

Tutoriais e artigos
Desenvolvendo aplicativos Java

Demonstrao: trabalhando com

o o

Viso geral do suporte a JDK 7 no NetBeans IDE Empacotamento e distribuio de aplicativos Java Desktop Desenvolvendo aplicativos Java gerais Criando, importando e configurando projetos Java Configurao de Projetos de formato livre avanados Suporte aos processadores de anotao no NetBeans IDE Parte I: utilizando o Project Lombok Parte II: utilizando processadores de anotao personalizados prprios Ajuda para codificao no Editor Java do NetBeans IDE Refatorao com Inspecionar e Transformar no editor Java do NetBeans IDE Importando projetos do Eclipse para o NetBeans IDE Carto de atalhos de teclado Construindo, depurando e testando Usando o depurador visual de erros no NetBeans IDE Habilitando o Java Web Start no NetBeans IDE Usar o NetBeans IDE para unir arquivos JAR em um nico arquivo JAR Escrevendo testes JUnit Depurando aplicativos multissegmentados Maven Melhores prticas do Maven Criando um aplicativo Maven Swing usando Hibernate Criando perfil do cdigo-fonte Introduo criao de perfil de aplicativos Java

Demonstrao: deteco de bloq Demonstrao: etapa visual em

Demonstrao: usando o avaliad

Demonstrao: depurao multis

Documentos de contribui

Adicionando uma tela de splash

Integrao do ANTLR sem apren

Lista completa de palavras-chav Geertjan na Dzone).

Configurando o Netbeans para g

Configurar o NetBeans usando a Refatorao simplificada

Personalizando a aparncia do N

Outros recursos
o o o
Sistema de projeto geral Compilao e construo Projeto de forma livre

Perguntas frequentes dos usuri

Usando pontos de criao de perfil Criao de perfil avanada: Teoria em prtica Estudo de caso do NetBeans Profiler Linguagens de script Introduo ao Groovy Monitoramento e gerenciamento de JMX Primeiros passos com o monitoramento de Java Management Extensions (JMX) Adicionando instrumentao JMX a um aplicativo Java Desenvolvendo um gerenciador JMX e conectando a um agente JMX remoto

o o o o o

Depurando Criao de perfil Editando MySQL e Java - Recursos

Seminrios Web sob demanda so Aprendendo Java: recursos

Introduo ao Java do JavaPassi Os tutoriais Java

Suporte aos processadores de anotao no NetBeans IDE


Amostra contribuda por Jesse Glick. Contedo

Introduo Mapa das opes javac e comandos IDE Utilizando projeto Lombok para anotaes do usurio Utilizando processador de anotaes personalizado no IDE Consulte tambm

Esse tutorial de duas partes demonstra como possvel anexar processadores de anotao a um projeto e utiliz-los enquanto estiver trabalhando no cdigo no IDE. O NetBeans possui suporte incorporado a processadores de anotaes personalizados. Agora possvel especificar convenientemente processadores de anotao para serem executados com o projeto e visualizar os resultados do processo de anotao diretamente no editor Java atravs do autocompletar cdigo e navegao. A primeira parte do tutorial exibe a utilizao do processador de anotao de terceiros, Projeto Lombok, no NetBeans IDE. A segunda parte do tutorial fornece explicaes sobre como adicionar um processador de anotao de autoescrita em um projeto. O cdigo amostra para essa parte do tutorial contribudo por Jesse Glick. Para concluir este tutorial, so necessrios dos seguintes recursos e softwares. Software ou recurso NetBeans IDE Verso necessria 6.9, 7.0, 7.1

Java Development Kit (JDK) verso 6 Observaes:

O suporte a processadores de anotaes personalizadas foi adicionado na verso 6.9 do IDE NetBeans. Este tutorial no funcionar com verses anteriores do IDE.

Introduo
Anotaes so mecanismos da linguagem de programao Java que so utilizados para manter metadados sobre os elementos do aplicativo. Anotaes mantm metainformaes sobre como os elementos anotados devem ser processados pelo compilador, durante uma implementao ou tempo de execuo. Em outras palavras, anotaes so comentrios do cdigo que podem ser processadas por outros programas e ferramentas. possvel utilizar anotaes personalizadas para realizar uma variedade de tarefas: marcar partes do aplicativo (por exemplo, a informao de direitos autorais, mtodos de teste, etc.), gerar cdigo automaticamente, analisar as opes de linha de comando, desenvolver servios da Web, e outros. As informaes sobre como anotaes personalizadas devem ser processadas so passadas para o compilador Java atravs dos processadores de anotao personalizados. JSR 269 implementado em JDK 6 fornece uma API original para processadores de anotao escrita. possvel escrever seu prprio processador de anotao personalizado ou utilizar as solues de terceiros. Para informaes iniciais sobre anotaes no JDK 6, consulte os recursos a seguir:

Documentao Java SE - Anotaes Tutorial Java SE - Anotaes Na prtica, anotaes so mais utilizadas combinadas com Java Persistence API (JPA), que parte da especificao Java EE e algumas outras tecnologias, como o JAXB (Java Architecture para ligao XML). Utilizando JPA, classes Java podem ser anotadas como entidades que mais tarde podem ser persistidas em um dispositivos de armazenamento. Para desenvolver aplicativos com base JPA, conveniente para utilizar estruturas como por exemplo o EclipseLink, que agrupado com o IDE. Como ponto inicial para mais informaes sobre escrever aplicativos com base JPA no NetBeans IDE, consulte Iniciar com aplicativos Java EE 6.

Mapa das opes do javac e comandos IDE para processamento de anotao


Como mencionado acima, no Java SE 6 javac, o processamento de anotao foi incorporada como funcionalidade integrada do compilador Java. O compilador localiza automaticamente processadores de anotao por padro como caminho de classe de usurio (a menos que o processamento de anotao estiver desabilitado explicitamente). Alm disso, o caminho de busca ou o caminho para processadores de anotao particular podem ser especificados utilizando opes javac. Na tabela abaixo, possvel visualizar um mapa das opes javac relacionado ao processamento de anotao e os comandos correspondentes no IDE. Para mais informaes sobre opes javac no JDK 6, consulte javac Compilador da linguagem de programao Java. Observao. No IDE, as opes de processamento de anotaes de todos os aplicativos Java, com exceo de aplicativos da plataforma NetBeans, so especificadas na janela Propriedades do projeto. Para abrir a janela Propriedades do projeto, clique com o boto direito do mouse em seu projeto e selecione Propriedades. Opes Java 6 javac Comando IDE Descrio

Propriedades do projeto > Construo > Compilao > campo Processadores de Especifique explicitamente o processador de anotao para executar. Esta opo elimina a necessidade de criar arquivos de configurao do servio do provedor (METAINF/services/javax.annotation.processing.Processor)

-processor

anotao. Especifique um nome completo qualificado do processador de anotao no campo Processador de anotao. Propriedades do projeto > Construo > Compilao > habilitar a caixa de verificao

A compilao continua sem qualquer processamento de anotao. O mecanismo de descoberta do processador de anotao no utilizando durante a compilao.

-proc:none

Habilitar processamento de anotao Quando a caixa de verificao estiver desabilitada, o projeto compilado sem qualquer

processamento de anotao. Propriedades do projeto > Bibliotecas > guia Processador Especifique o caminho para um projeto IDE, biblioteca ou um processador de anotao. Utilize esta opo se um processador de anotao e anotaes so empacotados em arquivos JAR separados. Propriedades do projeto > Bibliotecas > guia Compilador Especifique o caminho para um projeto IDE, biblioteca ou um Especifica onde localizar arquivos de classe de usurio e (opcionalmente) processadores de anotao e arquivos cdigofonte. Esse caminho localizado para processadores de anotao se o -processorpath no for especificado. arquivo Jar que contm um processador de anotao e declaraes de anotao. Utilize esta opo se um processador de anotao e anotaes so empacotados em um nico arquivo JAR. Propriedades do projeto > Construo > Compilao > campo Opes do processador Adicione opes que devem ser passadas para o processador de anotao associado ao projeto. Esse valor opcional. Especifica onde localizar processadores de anotao; se essa opo no for oferecida, o caminho da classe localizado por processadores (veja abaixo).

arquivo Jar que contm um processorpath

-classpath

-Akey[=value]

(Opcional) Opes para passar para o processador de anotao.

Prximas etapas
Leia as partes a seguir do tutorial para aprender como utilizar anotaes no IDE.

Parte I: Utilizando projeto Lombok para anotaes personalizadas Parte II: Utilizando prprio processador de anotao personalizado no IDE

Suporte aos processadores de anotao no NetBeans IDE, Parte I: Utilizando o projeto Lombok

Contedo

Introduo Mapa das opes javac e comandos IDE Utilizando projeto Lombok para anotaes personalizadas

o o o

Criando um novo projeto Java Habilitando anotaes personalizadas para o projeto Escrevendo uma aplicao com a utilizao de anotaes personalizadas Lombok Utilizando processadores prprios de anotao personalizado no IDE Consulte tambm Para demonstrar como as anotaes personalizadas funcionam dentro do NetBeans IDE, vamos usar o Projeto Lombok, que fornece uma forma conveniente de gerar automaticamente diversos elementos de cdigo Java, tais como getters, setters, construtores e outros. Para maiores informaes sobre os recursos, visite owebsite do projeto Lombok. Entretanto, tenha em mente que o projeto Lombok inclui alguns recursos que podem no funcionar em todos os ambientes de desenvolvimento. Para concluir este tutorial, voc precisa dos seguintes recursos e softwares. Software ou recurso NetBeans IDE Verso necessria 6.9, 7.0, 7.1

Java Development Kit (JDK) verso 6 Observaes:

O suporte a processadores de anotaes personalizadas foi adicionado na verso 6.9 do IDE NetBeans. Este tutorial no funcionar com verses anteriores do IDE.

Criando um novo projeto Java


Neste exerccio voc cria um projeto Java simples e uma classe denominada MyBooks.java que demonstra as anotaes em ao. . 1. 2. 3. Escolha Arquivo > Novo projeto e selecione Aplicativo Java como o tipo de projeto. Na pgina Nome e localizao do assistente do Novo projeto, digite TestAnn como nome do projeto. Digite testann.TestBooks no campo Criar classe principal para substituir o nome padro da classe. Clique em Terminar. " class="margin-around b-all">captura de tela do assistente Novo Projeto

package testann; public class MyBooks { private int year; //fields private String title; private String author; } 4. Coloque o ponteiro do mouse na declarao da classe e pressione Ctrl-Espao para criar o suporte de concluso de cdigo no editor. 5. Selecione MyBooks (int year, String title, String author) - generate na lista de concluso de cdigo para gerar um construtor para MyBooks.java.

6.

Salve as alteraes.

Habilitando anotaes personalizadas (lombok.jar) para o projeto


Neste exerccio, voc ir modificar a janela de propriedades do projeto para adicionar um biblioteca classpath do projeto e ativar o processamento de anotaes no editor. 1. 2. 3. Efetue o download do arquivo lombok.jar e salve no sistema. Clique com o boto direito no n do projeto TestAnn e escolha Propriedades. Selecione a categoria Bibliotecas na caixa de dilogo Propriedades do projeto.

4.

Clique em Add JAR/Pasta na aba Compilar e localize o arquivo lombok.jar baixado.

Os recursos adicionados na guia Compilao correspondem opo -classpath do compilador Java. Como lombok.jar um arquivo JAR nico que contm definies de anotao e processadores de anotaes. recomendado adicion-lo classpath do projeto, que a aba Compilao. 5. Escolha a categoria Compilao na janela Propriedades do projeto.

6.

Confirme que a caixa de seleo Ativar o processamento de anotaes esteja selecionada (ela selecionada por padro) e selecione a caixa de seleo Ativar o processamento de anotaes no editor.

A caixa de verificao Habilitar processamento de anotao ativa o processamento de anotao ao construir e compilar o projeto. Se a caixa de seleo no estiver selecionada, a opo -proc:none passada para o compilador Java e a compilao ocorre sem qualquer processamento de anotaes. Ento, se deseja processar anotaes no cdigo, a caixa de verificao Habilitar processamento de anotao deve estar selecionada. Ao selecionar a caixa de seleo, Ativar o processamento de anotaes no editor, o processamento de anotaes ficar visvel no editor. Quaisquer artefatos adicionais que forem gerados por processadores de anotaes (classes, mtodos, campos, etc.) ficam visveis no editor IDE e disponveis para a concluso de cdigo, no 7. Navegador, Ir para tipo, Localizar usos e outros. Clique em OK na janela Propriedades do projeto e retorne para o arquivo MyBooks.java.

Caso voc expanda o n Bibliotecas na janela Projetos, ver que a lombok.jar est agora listada como uma biblioteca do projeto.

Escrevendo uma aplicao com a utilizao de anotaes personalizadas Lombok


1. No arquivo MyBooks.java, digite @Data antes de declarar a classe MyBooks. @Data uma anotao que gera o cdigo clich para classes Java: getters para todos os campos, setters para todos os campos no-finais e o toString apropriado, equals e implementaes hashCode que envolvem os campos da classe. Para aprender mais sobre quais anotaes so suportadas pelo projeto Lombok, consulte a Viso geral dos 2. recursos do Lombok. Clique na dica na margem direita do editor e adicione importar para lombok.Data.

O cdigo resultante no Editor deve ser parecido com o exemplo abaixo.

package testann; import lombok.Data;

@Data public class MyBooks { private int year; //fields private String title; private String author; public MyBooks(int year, String title, String author) { this.year = year; this.title = title; this.author = author; } }
Observe que artefatos de cdigo necessrios, como getters, setters, toString, etc., tm sido gerados e possvel visualiz-los na janela do Navegador. A anotao @Data gera todos os cdigos clichs que so necessrios para uma classe tpica.

possvel tambm invocar a janela de autocompletar cdigo (Ctrl-Espao) e ver que os artefatos gerados esto disponveis para peg-los. Agora, veremos que o projeto compila e os artefatos gerados podem ser chamados de outras partes do programa.

3. Abra o arquivo Testbook.java com o mtodo main e crie um novo objeto da classe MyBooks.

4. package testann; 5. 6. public class TestBooks { 7. 8. public static void main(String[] args) { 9. 10. MyBooks books = new MyBooks(2009, "My Beautiful Dream", "John Smith"); 11. } } 12. Adicione o seguinte cdigo para imprimir os valores da varivel books.
Para voltar os valores, chamamos os mtodos getter que so autogerados por lombok.jar. Enquanto estiver digitando, observe que os artefatos autogerados esto disponveis da janela de autocompletar cdigo.

package testann; public class TestBooks { public static void main(String[] args) { MyBooks books = new MyBooks(2009, "My Beautiful Dream", "John Smith"); System.out.println("Year: " + books.getYear() + ", Title: " + books.getTitle() + ", Author: " + books.getAuthor()); } }
13. Salve as alteraes. 14. Clique com o boto direito do mouse no n na janela Projetos e selecione Executar (F6). Quando voc executa o aplicativo, dever ver a seguinte sada que mostra que o aplicativo foi compilado com xito.

Voc pode ver que os artefatos gerados pelo processador de anotao Lombok esto acessveis de outras partes do programa.

Prxima etapa

Parte II: Utilizando prprio processador de anotao personalizado no IDE

Suporte aos processadores de anotao no NetBeans IDE, Parte II: Usando processadores prprios personalizados de anotao no IDE
Contribuio de Jesse Glick, redigido e mantido por Irina Filippova Contedo

o o

Introduo Mapa de opes javac e comandos IDE Usando o projeto Lombok para anotaes personalizadas Usando processadores personalizados prprios de anotao no IDE Definindo uma anotao e criando um processador de anotao Usando o processador de anotao Consulte tambm

Nesta seo do tutorial, voc aprender aprender como adicionar um processador de anotao personalizado de redao prpria em um projeto no IDE. Este tutorial no lhe ensina como redigir um processador de anotao. Ele explica como adicion-lo em um projeto NetBeans IDE. O aplicativo de amostra usado nesta seo foi criado por Jesse Glick e publicado como uma entrada de FAQ para as verses anteriores do IDE. O processador de anotao usando como exemplo gera uma classe principal para a classe anotada. A classe principal gerada tambm contm um mtodo que chamado da classe anotada. Siga as instrues abaixo sobre como criar e adicionar um processador personalizado de anotao em um projeto do IDE. Para concluir este tutorial, voc precisa dos seguintes recursos e softwares. Software ou recurso NetBeans IDE Verso necessria 6.9, 7.0, 7.1

Java Development Kit (JDK) verso 6 Observaes:

O suporte a processadores de anotaes personalizadas foi adicionado na verso 6.9 do IDE NetBeans. Este tutorial no funcionar com verses anteriores do IDE.

Definindo uma anotao e criando um processador de anotao


Neste exerccio, voc criar um projeto de biblioteca de classes. 1. Escolha Arquivo > Novo projeto e selecione o projeto de Bibliotecas de classes Java na categoria Java. Clique em Prximo. 2. Digite AnnProcessor como nome do projeto e especifique uma localizao para o projeto. Clique em Terminar. Ao clicar em Terminar, o IDE cria o projeto de biblioteca de classes e lista o projeto na janela Projetos. 3. 4. 5. Clique com o boto direito do mouse no n do projeto AnnProcessor na janela Projetos e escolha Propriedades. Na categoria Cdigos-fonte, confirme se JDK 6 est especificado como o formato de cdigo-fonte/binrio. Selecione a aba Bibliotecas e confirme se a plataforma Java est definida como JDK 6. Clique em OK para fechar a janela Propriedades do projeto. Neste exerccio, voc criar dois pacotes Java e uma classe Java em cada um destes pacotes. 1. Crie um pacote Java denominado ann clicando no n Pacotes de cdigo-fonte sob o n do projeto AnnProcessor e escolha Novo > Pacote Java. Digite ann como o nome do pacote e clique em Terminar. 2. Repita a etapa anterior e crie um pacote Java denominado proc. Aps ter criado os dois pacotes Java, a estrutura do projeto dever ser similar seguinte imagem.

3. 4. 5.

Clique com o boto direito do mouse no pacote Java ann e selecione Nova > Classe Java. Digite Handleable para o nome da classe. Clique em Terminar. Modifique o novo arquivo Handleable.java para fazer as alteraes a seguir. Salve o arquivo.

6. package ann; 7. 8. public @interface Handleable { 9. }


assim que as anotaes so declaradas, de forma muito similar a uma declarao de interface. A diferena que a palavra-chave interface precisa ser precedida por um sinal at(@). Essa anotao denominada Handleable. Informaes adicionais: nas declaraes de anotao, voc tambm pode especificar parmetros adicionais, por exemplo, que tipos de elementos podem ser anotados, ou seja, classes ou mtodos. Faa isso adicionando @Target(value = {ElementType.TYPE}) para classes e @Target(value =

{ElementType.METHOD). Portanto, a declarao de anotao se torna tambm anotada com metaannotations. Agora precisamos adicionar um cdigo para que o processador de anotao processe a anotao Handleable. 10. Clique com o boto direito do mouse no pacote proc e selecione Nova > Classe Java. 11. Digite HandleableProcessor para o nome da classe. Clique em Terminar. 12. Modifique a classe HandleableProcessor.java para adicionar o cdigo a seguir. Salve as alteraes.

13. package proc; 14. 15. import ann.Handleable; 16. import java.io.IOException; 17. import java.io.PrintWriter; 18. import java.io.Writer; 19. import java.util.Set; 20. import javax.annotation.processing.AbstractProcessor; 21. import javax.annotation.processing.RoundEnvironment; 22. import javax.annotation.processing.SupportedAnnotationTypes; 23. import javax.annotation.processing.SupportedSourceVersion; 24. import javax.lang.model.SourceVersion; 25. import javax.lang.model.element.Element; 26. import javax.lang.model.element.ElementKind; 27. import javax.lang.model.element.TypeElement; 28. import javax.lang.model.type.TypeMirror; 29. import javax.tools.Diagnostic; 30. import javax.tools.JavaFileObject; 31. 32. @SupportedAnnotationTypes("ann.Handleable") 33. @SupportedSourceVersion(SourceVersion.RELEASE_6) 34. public class HandleableProcessor extends AbstractProcessor { 35. 36. /** public for ServiceLoader */ 37. public HandleableProcessor() { 38. } 39. 40. public boolean process(Set annotations, 41. RoundEnvironment roundEnv) { 42. for (Element e : roundEnv.getElementsAnnotatedWith(Handleable.class)) { 43. if (e.getKind() != ElementKind.FIELD) { 44. processingEnv.getMessager().printMessage( 45. Diagnostic.Kind.WARNING, 46. "Not a field", e); 47. continue; 48. } 49. String name = capitalize(e.getSimpleName().toString()); 50. TypeElement clazz = (TypeElement) e.getEnclosingElement(); 51. try { 52. JavaFileObject f = processingEnv.getFiler(). 53. createSourceFile(clazz.getQualifiedName() + "Extras"); 54. processingEnv.getMessager().printMessage(Diagnostic.Kind.NOTE, 55. "Creating " + f.toUri()); 56. Writer w = f.openWriter(); 57. try { 58. PrintWriter pw = new PrintWriter(w); 59. pw.println("package " 60. + clazz.getEnclosingElement().getSimpleName() + ";"); 61. pw.println("public abstract class " 62. + clazz.getSimpleName() + "Extras {"); 63. pw.println(" protected " + clazz.getSimpleName() 64. + "Extras() {}"); 65. TypeMirror type = e.asType(); 66. pw.println(" /** Handle something. */"); 67. pw.println(" protected final void handle" + name 68. + "(" + type + " value) {"); 69. pw.println(" System.out.println(value);");

70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. }

pw.println(" }"); pw.println("}"); pw.flush(); } finally { w.close(); } } catch (IOException x) { processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, x.toString()); } } return true; } private static String capitalize(String name) { char[] c = name.toCharArray(); c[0] = Character.toUpperCase(c[0]); return new String(c); }
Vamos examinar mais de perto as partes principais que compem o cdigo para o processador de anotaes (observe que, por convenincia, somente partes do cdigo so fornecidas). Primeiro, voc especifica os tipos de anotaes que o processador de anotaes suporta (usando @SupportedAnnotationTypes) e a verso dos arquivos de cdigo-fonte que so suportados (usando @SupportedSourceVersion); nesse caso, a verso JDK 6:

@SupportedAnnotationTypes("ann.Handleable") @SupportedSourceVersion(SourceVersion.RELEASE_6)
A seguir, declare uma classe pblica para o processador que estenda a classe AbstractProcessor do pacote javax.annotation.processing. AbstractProcessor a superclasse padro para processadores de anotao concretos, que contm os mtodos necessrios para processar anotaes.

public class HandleableProcessor extends AbstractProcessor { ... }


Voc agora precisa fornecer um construtor pblico para a classe.

public class HandleableProcessor extends AbstractProcessor { public HandleableProcessor() { } ... }


A seguir, chame o mtodo de process() da classe AbstractProcessor principal. Atravs deste mtodo, as anotaes disponveis para processamento so fornecidas. Alm disso, este mtodo contm informaes sobre o ciclo de processamento.

public class HandleableProcessor extends AbstractProcessor { ... public boolean process(Set annotations, RoundEnvironment roundEnv) { ... } }
A lgica do processador de anotao est contida dentro do mtodo process() da classe AbstractProcessor. Observe que, por meio de AbstractProcessor, voc tambm acessa a interface ProcessingEnvironment, que permite que os processadores de anotao usem diversos recursos teis, como um Filer (um manipulador de arquivamento que permite que os processadores de anotao criem novos arquivos) e um Messager (um meio pelo qual os processadores de anotao reportam erros).

public class HandleableProcessor extends AbstractProcessor {

... public boolean process(Set annotations, RoundEnvironment roundEnv) { //For each element annotated with the Handleable annotation for (Element e : roundEnv.getElementsAnnotatedWith(Handleable.class)) { //Check if the type of the annotated element is not a field. Se for, retorne um erro. if (e.getKind() != ElementKind.FIELD) { processingEnv.getMessager().printMessage( Diagnostic.Kind.WARNING, "No um campo", e); continue; } //Define the following variables: name and clazz. String name = capitalize(e.getSimpleName().toString()); TypeElement clazz = (TypeElement) e.getEnclosingElement(); //Generate a source file with a specified class name. try { JavaFileObject f = processingEnv.getFiler(). createSourceFile(clazz.getQualifiedName() + "Extras"); processingEnv.getMessager().printMessage(Diagnostic.Kind.NOTE, "Creating " + f.toUri()); Writer w = f.openWriter(); Adicione as linhas seguintes ao arquivo : try { PrintWriter pw = new PrintWriter(w); pw.println("package " + clazz.getEnclosingElement().getSimpleName() + ";"); pw.println("public abstract class " + clazz.getSimpleName() + "Extras {"); pw.println(" protected " + clazz.getSimpleName() + "Extras() {}"); TypeMirror type = e.asType(); pw.println(" /** Handle something. */"); pw.println(" protected final void handle" + name + "(" + type + " value) {"); pw.println(" System.out.println(value);"); pw.println(" }"); pw.println("}"); pw.flush(); } finally { w.close(); } } catch (IOException x) { processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, x.toString()); } } return true; } ... } O ltimo bloco neste cdigo declara o mtodo capitalize que usado para colocar em maiscula o nome do
elemento anotado.

public class HandleableProcessor extends AbstractProcessor {

... private static String capitalize(String name) { char[] c = name.toCharArray(); c[0] = Character.toUpperCase(c[0]); return new String(c); } }
89. Compile o projeto clicando com o boto direito do mouse no projeto AnnProcessor e escolhendo Compilar.

Usando o processador de anotao no IDE


Nesta seo, voc criar um projeto de aplicativo Java no qual o processador de anotaes ser usado. 1. Escolha Arquivo > Novo projeto e selecione o tipo de projeto aplicativo Java na categoria Java. Clique em Prximo. 2. 3. Na pgina Nome e localizao, digite Demo como o nome do projeto e especifique o local do projeto. Digite demo.Main no campo Criar classe principal. Clique em Terminar.

4.

Abra a janela Propriedades do projeto e confirme se o JDK 6 est selecionado como o formato de cdigofonte/binrio no painel Cdigo-fonte e que a plataforma Java esteja definida como JDK 6 no painel Bibliotecas.

5.

Modifique a classe Main.java para adicionar o cdigo a seguir. Salve as alteraes.

6. package demo; 7. 8. import ann.Handleable; 9. 10. public class Main extends MainExtras { 11. 12. @Handleable 13. private String stuff; 14. 15. public static void main(String[] args) { 16. new Main().handleStuff("hello");

17. }

}
O cdigo contm os seguintes elementos: declarao de importao para o processador personalizado de anotao ann.Handleable a classe pblica Main que estende a classe MainExtras (MainExtras deveria ser gerada por seu processador de anotao durante a compilao)

o o o o

um campo privado denominado stuff que anotado com a anotao @Handleable o mtodo main que chama o mtodo handleStuff, declarado na classe MainExtras automaticamente gerada Em nosso exemplo simples, o mtodo handleStuff somente imprime o valor atual. Voc pode modificar este mtodo para executar outras tarefas. Aps salvar o cdigo Main.java, voc ver que o IDE relata diversos erros de compilao. Isso acontece

porque o processador de anotao ainda no foi adicionado no projeto. 18. Clique com o boto direito do mouse no n do projeto Demo na janela Projetos, escolha Propriedades e, a seguir, selecione a categoria Bibliotecas na janela Propriedades. 19. Na aba Compilar, clique em Adicionar projeto e localize o projeto AnnProcessor.

A aba Compilar corresponde a opo -classpath do compilador Java. Como o processador de anotao um arquivo JAR nico que contm a definio da anotao e o processador de anotao, ele deve ser adicionado na classpath do projeto, que a aba Compilar. 20. Selecione a categoria Compilar na janela Propriedades e selecione as caixas de seleo Ativar o processamento de anotaes e Ativar o processamento de anotaes no editor.

21. Especifique o processador de anotaes a ser executado clicando no boto Adicionar prximo rea de texto Processadores de anotaes e digite proc.HandleableProcessor no campo Processador de anotaes FQN.

A categoria Compilar na janela Propriedades deve se parecer com a imagem a seguir.

22. Clique em OK na janela Propriedades. Observao. No arquivo Main.java, voc ainda poder ver erros de compilao. Isso porque o IDE ainda no pode localizar o arquivo MainExtras.java que declara o mtodohandleStuff. O arquivo MainExtras.java ser gerado aps voc desenvolver o projeto Demo pela primeira vez. Se Compilar ao salvar estiver ativado para seu projeto, o IDE compilou o projeto quando voc salvou o Main.java. 23. Clique com o boto direito do mouse no projeto Demo e escolha Compilar. Aps compilar o projeto, se voc examinar os projetos na janela Projetos, poder agora ver um novo n Cdigos-fonte gerados com o arquivo demo/MainExtras.java.

Caso voc reveja o contedo do arquivo MainExtras.java gerado, ver que o processador de anotaes gerou a classe MainExtras com o mtodo handleStuff. O mtodohandleStuff aquele chamado a partir do arquivo Main.java anotado.

package demo; public abstract class MainExtras { protected MainExtras() {} /** Handle something. */ protected final void handleStuff(java.lang.String value) { System.out.println(value); } }
24. Clique com o boto direito do mouse no projeto Demo e escolha Executar. Quando voc clicar em Executar, dever ver o seguinte na janela Sada. O projeto Demo compilado e imprime a mensagem.

Envie-nos seus comentrios

Veja tambm
Consulte os seguintes recursos para obter mais informaes sobre anotaes em aplicativos Java:

Documentao do Java SE - Anotaes Tutorial do Java SE - Anotaes Compilador do Java: Opes de processamento de anotao Weblog de Joseph D. Darcy's Weblog - dicas teis sobre a especificao JSR-269

Oracle Technology Network Downloads de software Documentao Pesquisar

Anotaes
Muitas APIs requerem uma grande quantidade de cdigo clich. Por exemplo, para escrever um JAX-RPC servio Web, voc deve fornecer uma interface emparelhado e implementao. Esse clich pode ser gerado automaticamente por uma ferramenta que o programa foi "decorado" com anotaes indicando que os mtodos eram acessveis remotamente. Outras APIs requerem arquivos "lado" para ser mantida em paralelo com os programas. Por exemplo JavaBeans requer um BeanInfo classe para ser mantida em paralelo com um feijo, e Enterprise JavaBeans (EJB) requer um descritor de implantao .Seria mais conveniente e menos propenso a erros, se as informaes contidas nestes arquivos secundrios foram mantidos como anotaes no prprio programa. A plataforma Java sempre teve vrios ad mecanismos de anotao hoc. Por exemplo, o passageiro um modificador de anotao ad hoc, indicando que um campo deve ser ignorado pelo subsistema de serializao, eo @ deprecated tag javadoc uma anotao ad hoc indicando que o mtodo no deve mais ser utilizado. A partir da verso 5.0, a plataforma tem uma anotao de propsito geral (tambm conhecido como metadados ) facilidade que permite que voc definir e usar seus prprios tipos de anotaes. A instalao consiste em uma sintaxe para declarar tipos de anotaes, uma sintaxe para declaraes de anotao, APIs para anotaes de leitura, uma representao arquivo de classe para anotaes, e uma ferramenta de processamento de anotao . Anotaes no afetam diretamente a semntica do programa, mas afetam a forma como os programas so tratados por ferramentas e bibliotecas, que por sua vez pode afetar a semntica do programa em execuo. As anotaes podem ser lidos de arquivos-fonte, arquivos de classe, ou reflexiva em tempo de execuo. Anotaes complementar tags javadoc. Em geral, se a marcao visa prejudicar ou produzir uma documentao, que provavelmente deve ser um tag javadoc, caso contrrio, deve ser uma anotao. Programadores de aplicativos tpicos nunca ter que se definir um tipo de anotao, mas-lo no difcil de faz-lo. Declaraes de tipo de anotao so semelhantes s declaraes de interface normais. Um sinal de arroba-( @ ) precede o interface depalavra-chave. Cada declarao de mtodo define um elemento do tipo de anotaes. Declaraes de mtodo no deve ter quaisquer parmetros ou um throws clusula. Os tipos de retorno esto restritos a primitivos, de Cordas , Classe e enums , anotaes, e matrizes de os tipos precedentes. Os mtodos podem ter valores padro . Aqui est um exemplo de declarao de tipo anotao:

/ ** * Descreve a Solicitao-Para o realce-(RFE), que conduziram * Para a presena do elemento de API anotada. * / public @ interface de RequestForEnhancement { int id (); Sinopse String (); String padro engenheiro () "[no atribudo]"; Data String () default "[no implementado]"; }
Uma vez que um tipo de anotao definida, voc pode us-lo para anotar declaraes. Uma anotao um tipo especial de modificador, e pode ser utilizado em qualquer lugar que outros modificadores (tais como pblico , esttica , ou definitiva ) pode ser usado. Por conveno, anotaes precedem outros modificadores. Anotaes consistem em um sinal de arroba ( @ ) seguido por um tipo de anotao e uma lista entre parnteses de elemento de pares de valores. Os valores devem ser tempo de compilao-constantes. Aqui est uma declarao de mtodo com uma anotao correspondente ao tipo de anotao declaradas acima:

@ RequestForEnhancement ( id = 2868724, sinopse = "Ativar o tempo de viagem", engenheiro = "Mr. Peabody", data = "4/1/3007" ) travelThroughTime public static void (Data destino) {... }
Um tipo de anotao com nenhum elemento considerado um marcador tipo de anotao, por exemplo:

/ ** * Indica que a especificao do elemento API anotada * So preliminares e sujeitos a alteraes.

* / @ interface pblica preliminar {}


permitido omitir os parnteses em anotaes de marcao, como mostrado abaixo:

@ Preliminar public class timetravel {... }


Em anotaes com um nico elemento, o elemento deve ser chamado valor , como mostrado abaixo:

/ ** * Associa um aviso de copyright com o elemento API anotada. * / @ Copyright pblica de interface { Cadeia de valor (); } permitido omitir o nome do elemento e sinal de igual ( = ) em uma anotao de elemento nico elemento cujo nome o valor , como mostrado abaixo: @ Copyright ("2002 Sistemas de Propulso Yoyodyne") OscillationOverthruster public class {... }
Para unir tudo isso, vamos construir um framework de teste simples anotao-based. Primeiro precisamos de um tipo de anotao marcador para indicar que um mtodo um mtodo de teste e deve ser executado pela ferramenta de teste:

importar java.lang.annotation *.; / ** * Indica que o mtodo anotada um mtodo de teste. * Esta anotao deve ser usado somente em mtodos estticos sem parmetros. * / @ Retention (RetentionPolicy.RUNTIME) @ Target (ElementType.METHOD) pblico Teste interface @ {}
Note-se que a declarao de tipo de anotao em si anotada. Tais anotaes so chamados meta-anotaes . O primeiro ( @ Retention (RetentionPolicy.RUNTIME) ) indica que as anotaes com este tipo devem ser mantidas pela VM para que eles possam ser lidos reflexivamente em tempo de execuo. A segunda ( @ Target (ElementType.METHOD) ) indica que este tipo de anotao pode ser utilizado para anotar declaraes mtodo s. Aqui est um programa de exemplo, alguns de cujos mtodos so anotados com a interface acima:

public class Foo { @ Test m1 public static void () {} public static void m2 () {} @ Test m3 public static void () { throw new RuntimeException ("Boom"); } m4 public static void () {} @ Test public static void m5 () {} m6 public static void () {} @ Test public static void m7 () { throw new RuntimeException ("Crash"); } public static void m8 () {} }
Aqui est a ferramenta de teste:

importar java.Lang.reflect *.; pblicas RunTests classe { public static void main (String [] args) throws Exception { int passou = 0, falhou = 0; for (Method m:. Class.forName (args [0]) GetMethods ()) { if ( m.isAnnotationPresent (Test.class) ) { try { m.invoke (null); passou + +; } Catch (Throwable ex) { System.out.printf ("Teste% s falhou:% s% n", m, ex.getCause ()); falhou + +; } } } System.out.printf ("Passed:% d, Falha% d% n", passou, no); } }

A ferramenta leva o nome da classe como um argumento de linha de comando e itera sobre todos os mtodos da classe chamada de tentar chamar cada mtodo que anotado com o teste tipo de anotao (definida acima). A consulta reflexivo para descobrir se um mtodo tem um teste de anotao destaque em verde. Se uma invocao de mtodo de teste gera uma exceo, o teste considerado como tendo falhado, e um relatrio de falha impresso. Finalmente, um resumo impresso mostrando o nmero de testes que passados e falhou. Aqui o que parece quando voc executar a ferramenta de teste sobre o Foo programa (acima):

$ Java RunTests Foo Vazio teste public static Foo.m3 () falhou: java.lang.RuntimeException: Boom Teste public static void Foo.m7 () falhou: java.lang.RuntimeException: Crash Passado: 2, Falha 2
Embora esta ferramenta de teste claramente um brinquedo, ele demonstra o poder de anotaes e pode ser facilmente estendido para superar suas limitaes.
Copyright 1993, 2011, Oracle e / ou dos seus afiliados. Todos os direitos reservados. Fale Conosco

Tecnologia Java
Pesquisa Gabarito

No sabe por onde comear? Veja Caminhos de Aprendizagem


Contedo Tutorial

Recursos Tutorial
Ver o Tutoriais Java Online (Actualizado 2012/06/14 ). Blog Os Tutoriais Java ' tem novidades e atualizaes sobre os tutoriais Java SE. Descarregue a ltima verso do Java pacote Tutoriais .

Em forma de livro
Baixar arquivos de ebook . O Tutorial Java Edition, Quarta.Amazon.com . Errata para o Tutorial Java, quarta edio.

Outros recursos
Desenvolvedor Java SE Guias Documentao da API JavaFX Documentao 2,0 O Java EE 6 Tutorial Documentao do NetBeans

A Oracle Formao e Certificao Profissional


Java Certificao e Formao

Oracle University

Software
O Java Development Kit (JDK) para Java SE 7. NetBeans IDE Java EE SDK

Os tutoriais de Java so guias prticos para programadores que desejam usar a linguagem de programao Java para criar aplicativos. Eles incluem centenas de completo, exemplos de trabalho, e dezenas de lies. Grupos de aulas relacionados so organizados em "trilhas". Os tutoriais de Java principalmente descrever os recursos em Java SE 7. Para melhores resultados, baixar JDK 7 .
O que h de novo

Os tutoriais de Java so continuamente atualizados para acompanhar as mudanas para a plataforma Java e para incorporar o feedback dos nossos leitores. Atualizaes recentes incluem as seguintes caractersticas:

O Generics lio foi totalmente reformulado. A lio atualizada tem informaes mais completas sobre a programao com os genricos, incluindo orientaes para uso de wildcards e restries sobre os medicamentos genricos , e uma pgina de captura Wildcard e Mtodos auxiliar .

Os tutoriais de Java j esto disponveis em dois formatos de ebook: o mobi arquivos ebook para Kindle. Para melhores resultados, recomendamos a visualizao on the Fire Kindle ou Kindle DX. o ePub arquivos ebook para iPad, Nook, e eReaders outros que apiam o ePub formato.

Cada ebook contm uma trilha nica. Voc pode baixar trilhas atravs do link no "em forma de livro" caixa direita. Para obter melhores resultados quando se vem blocos de cdigo pr-formatadas, ajustar a orientao vertical / horizontal e tamanho da fonte do dispositivo para ativar a rea de visualizao possvel.

A Preparao para a Certificao Java Programmer Idioma lio foi reformulado. Os objectivos para cada exame de certificao Java SE 7 esto listados e so fornecidos links para pginas de tutoriais relevantes.

Trails abordando os fundamentos Estas trilhas esto disponveis em forma de livro como O Tutorial Java, Quarta Edio . Para comprar este livro, consulte a caixa direita.

Introduo - Uma introduo tecnologia Java e lies sobre a instalao do Java de desenvolvimento de software e us-lo para criar um programa simples. Aprender a linguagem Java - Lies que descrevem os conceitos essenciais e as caractersticas da linguagem de programao Java. Essenciais Classes Java - Lies sobre excees, entrada bsica / sada, a simultaneidade, expresses regulares, e ao ambiente da plataforma. Colees - Lies sobre o uso e prorroga o Java Collections Framework. Balano - Uma introduo ao Swing GUI toolkit, com uma viso geral dos recursos e um catlogo visual dos componentes. Veja abaixo um tutorial mais abrangente sobre o Swing. Implantao - Como empacotar aplicaes e applets usando arquivos JAR, e implant-los usando o Java Web Start e do Java Plug-in. Preparao para a Certificao Java Programming Language - Lista de treinamento e recursos disponveis do tutorial.

Criao de interfaces grficas


Criando uma GUI com Swing - Uma introduo abrangente para criao de GUI na plataforma Java. Criando um GUI JavaFX - Uma coleo de tutoriais JavaFX.

Trails especializados e Lies Estas trilhas e aulas esto disponveis apenas como pginas da web.

Networking personalizado - Uma introduo aos recursos da plataforma Java redes poderosas. O Mecanismo de Extenso - Como fazer APIs personalizado disponvel para todos os aplicativos em execuo na plataforma Java. Full-Screen API Modo Exclusivo - Como escrever aplicativos que utilizam de forma mais completa de hardware do usurio grfica. Genricos - um aprimoramento do sistema de tipo que apia as operaes em objetos de vrios tipos, fornecendo em tempo de compilao segurana de tipo. Note que essa lio para usurios avanados. A linguagem Java contm uma trilha Generics lio de que recomendado para iniciantes. Internacionalizao - Uma introduo concepo de software para que ele possa ser facilmente adaptado (localizado) para vrios idiomas e regies. JavaBeans - A tecnologia da plataforma Java do componente. JDBC Database Access - Apresenta uma API para a conectividade entre as aplicaes Java e uma grande variedade de bases de dados e fontes de dados. JMX - Java Management Extensions fornece um modo padro de gesto de recursos tais como aplicaes, dispositivos e servios.

JNDI - Java Naming and Directory Interface permite acessar a Naming and Directory Service, tais como DNS e LDAP. JAXP - Apresenta a API Java para XML Processing (JAXP) 1.4 tecnologia. JAXB - Apresenta a arquitetura Java para XML Binding tecnologia (JAXB). RMI - Remote Method Invocation A API permite que um objeto para invocar mtodos de um objeto executando em outra mquina virtual Java. Reflexo - Uma API que representa ("reflete" a) as classes, interfaces e objetos no atual Java Virtual Machine. Segurana - os recursos da plataforma Java que ajudam a proteger aplicaes de software malicioso. Som - Uma API para reproduzir dados de som de aplicaes. Grficos 2D - Como mostrar e imprimir grficos 2D em aplicaes. Sockets Direct Protocol - Como habilitar o protocolo Sockets Direct para aproveitar InfiniBand.

O uso deste pgina (http://docs.oracle.com/javase/tutorial (ltima Atualizao 2012/06/14 )) e todo o material em pginas sob o ttulo "Java Tutoriais O" banner est sujeito a estes avisos legais .

Sobre a Oracle | Oracle Technology Network | Termos de Servio | Acessibilidade da Documentao

Copyright 1995, 2012 Oracle Corporation e / ou suas afiliadas. Todos os direitos reservados.

Original text The objectives for each Java SE 7 certification exam are listed and links are provided to relevant tutorial pages.
Contribute a better translation

Baixar Ebooks download JDK Pesquisar Java Tutoriais Esconder TOC

Orientados a Objetos Conceitos de programao O que um objeto? O que uma classe? O que Herana? O que uma Interface? O que um pacote? Perguntas e Exerccios Pgina Inicial > Aprender a linguagem Java

Anterior Trail Prximo

Lio: Conceitos programao orientada a objeto


Se voc nunca usou uma linguagem de programao orientada a objeto antes, voc precisa aprender alguns conceitos bsicos antes de comear a escrever qualquer cdigo. Esta lio ir apresent-lo a objetos, classes, herana, interfaces e pacotes. Cada discusso se concentra em como esses conceitos se relacionam com o mundo real, oferecendo, simultaneamente, uma introduo sintaxe da linguagem de programao Java.
O que um objeto?

Um objeto um pacote de software do estado relacionado e comportamento. Objetos de software so frequentemente usadas para modelar os objetos do mundo real que voc encontra na vida cotidiana. Esta lio explica como o estado e comportamento so representados dentro de um objeto, introduz o conceito de encapsulamento de dados, e explica os benefcios de projetar seu software desta maneira.
O que uma classe?

Uma classe um modelo ou prottipo a partir do qual os objetos so criados. Esta seo define uma classe que modela o estado eo comportamento de um objeto do mundo real. intencionalmente incide sobre os princpios, mostrando como mesmo uma classe simples pode limpa modelo de estado e comportamento.
O que Herana?

Herana fornece um mecanismo poderoso e natural para organizar e estruturar o seu software. Esta seo explica como as classes herdam o estado eo comportamento de suas superclasses, e explica como derivar uma classe de outra usando a sintaxe simples, desde que pela linguagem de programao Java.
O que uma Interface?

Uma interface um contrato entre uma classe e do mundo exterior. Quando uma classe implementa uma interface, que promete fornecer o comportamento publicado pela interface. Esta seo define uma interface simples e explica as mudanas necessrias para qualquer classe que implementa-lo.
O que um pacote?

Um pacote um namespace para organizando classes e interfaces de uma forma lgica. Colocar o cdigo em pacotes torna grandes projetos de software mais fcil de gerenciar. Esta seo explica por que isso til, e apresenta-lhe o Application Programming Interface (API) fornecida pela plataforma Java.
Perguntas e Exerccios: Conceitos programao orientada a objeto

Utilize as perguntas e exerccios apresentados nesta seo para testar sua compreenso dos objetos, classes, herana, interfaces e pacotes.

Anterior Trail Prximo

Problemas com os exemplos? Tente compilar e executar o Exemplos: Perguntas Frequentes . Reclamaes? Elogios? Sugestes? D-nos a sua opinio . O uso deste pgina e todo o material em pginas sob o ttulo "Java Tutoriais O" banner est sujeito a estes avisos legais .

Sobre a Oracle | Oracle Technology Network | Termos de Uso

Copyright 1995, 2012 Oracle Corporation e / ou suas afiliadas.Todos os direitos reservados.

O que um objeto?
Objetos so fundamentais para compreender orientada a objetos de tecnologia. Olhe ao seu redor agora e voc vai encontrar muitos exemplos de objetos do mundo real: seu cachorro, sua mesa, sua televiso, sua bicicleta. Objetos do mundo real compartilham duas caractersticas: Todos eles tm estado e comportamento . Os ces tm estado (nome, cor, raa, fome) e comportamento (latindo, buscando, abanando a cauda). Bicicletas tambm tem estado (engrenagem atual, cadncia, velocidade atual) e comportamento (mudana de velocidade, mudana de cadncia, aplicando os traves).Identificar o estado eo comportamento de objetos do mundo real uma tima maneira de comear a pensar em termos de programao orientada a objeto. Tome um minuto agora para observar os objetos do mundo real que esto em sua rea imediata. Para cada objeto que voc v, pergunte-se duas perguntas: "Quais os possveis estados pode ser este objeto dentro?" e "O possvel comportamento pode executar esse objeto?". Certifique-se de anotar as suas observaes. Ao fazer isso, voc notar que os objetos do mundo real variam em complexidade; sua lmpada de mesa pode ter apenas dois estados possveis (e fora) e dois comportamentos possveis (ligar, desligar), mas o seu rdio de mesa pode ter adicional estados (ligado, desligado, volume atual, estao atual) e comportamento (ligar, desligar, aumentar volume, diminuir volume, procurar, digitalizar e melodia). Voc tambm pode perceber que alguns objetos, por sua vez, tambm ir conter outros objetos. Estas observaes do mundo real, tudo se traduzir no mundo da programao orientada a objeto.

Um objeto de software.

Objetos de software so conceitualmente semelhantes para objetos do mundo real: eles tambm consistem em comportamento do Estado e afins. Um objeto armazena seu estado emcampos (variveis em algumas linguagens de programao) e expe o seu comportamento atravs de mtodos (funes em algumas linguagens de programao). Mtodos operam sobre o estado interno de um objeto e servir como o principal mecanismo de objeto para objeto de comunicao. Escondendo estado interno e exigindo toda a interao a ser realizado atravs de mtodos de um objeto conhecido como encapsulamento de dados - um princpio fundamental da programao orientada a objeto. Considere-se uma bicicleta, por exemplo:

Uma bicicleta modelado como um objeto de software.

Ao atribuir estado (velocidade atual, a cadncia atual, e engrenagem de corrente) e fornecer mtodos para mudar esse estado, o objeto permanece no controle de como o mundo exterior permitido us-lo. Por exemplo, se a bicicleta tem apenas 6 engrenagens, um mtodo para alterar as engrenagens poderia rejeitar qualquer valor que inferior a 1 ou superior a 6. Agrupamento de cdigo em objetos individuais de software fornece uma srie de benefcios, incluindo: 1. Modularidade: O cdigo fonte para um objeto pode ser escrito e mantido independentemente do cdigo de fonte para outros objetos. Uma vez criado, um objeto pode ser facilmente passado ao redor dentro do sistema. 2. Esconder informao: Ao interagir apenas com os mtodos de um objeto, os detalhes de sua implementao interna permanecem escondidos do mundo exterior. 3. Reutilizao de cdigo: Se um objeto j existe (talvez escrito por outro desenvolvedor de software), voc pode usar esse objeto em seu programa. Isso permite que os especialistas para implementar / testar / depurar tarefa complexa, objetos especficos, que voc pode confiar para ser executado em seu prprio cdigo. 4. Capacidade de conexo e facilidade de depurao: Se um objeto particular torna-se problemtico, voc pode simplesmente remov-lo de sua aplicao e tomada em um objeto diferente como a sua substituio. Isto anlogo a correo de problemas

mecnicos no mundo real. Se um parafuso quebra, voc substitui -lo , no a mquina inteira. Anterior Trail Prximo

O que uma classe?


No mundo real, muitas vezes voc vai encontrar muitos objetos individuais todos do mesmo tipo. Pode haver milhares de outras bicicletas existentes, todos da mesma marca e modelo.Cada bicicleta foi construdo a partir do mesmo conjunto de plantas e, por conseguinte, contm os mesmos componentes. Em termos orientados a objetos, dizemos que a bicicleta umexemplo da classe de objetos conhecida como bicicletas. A classe o modelo a partir do qual objetos individuais so criados. A seguir de
bicicleta

classe uma possvel implementao de uma bicicleta:

classe de bicicleta { int cadncia = 0; int velocidade = 0; int engrenagem = 1; changeCadence void (int newValue) { cadncia = newValue; } vazio changeGear (int newValue) { artes = newValue; } SpeedUp void (int incremento) { velocidade = velocidade de incremento +; } applyBrakes void (int decremento) { velocidade = velocidade - decremento; } printStates (void) { System.out.println ("cadncia:" + cadncia + "Velocidade:" + velocidade + "gear:" gear +); } }

A sintaxe da linguagem de programao Java vai olhar novo para voc, mas o projeto dessa classe com base na discusso anterior de objetos em bicicleta. Os campos cadncia ,velocidade e engrenagem representam o estado do objeto, e os mtodos ( changeCadence , changeGear , acelerao , etc) definir sua interao com o mundo exterior. Voc deve ter notado que a bicicleta classe no contm um principal mtodo. Isso porque no um aplicativo completo, apenas o modelo para bicicletas que podem ser usados em um aplicativo. A responsabilidade de criao e utilizao de novas bicicleta objetos pertence a uma outra classe em seu aplicativo.

Aqui est uma BicycleDemo classe que cria duas separadas bicicleta objetos e invoca seus mtodos:
BicycleDemo classe { public static void main (String [] args) { / / Cria duas diferentes / Objetos / bicicleta Bicicleta bike1 = bicicleta nova (); Bicicleta bike2 = bicicleta nova (); / / Chamar mtodos em / / Esses objetos bike1.changeCadence (50); bike1.speedUp (10); bike1.changeGear (2); bike1.printStates (); bike2.changeCadence (50); bike2.speedUp (10); bike2.changeGear (2); bike2.changeCadence (40); bike2.speedUp (10); bike2.changeGear (3); bike2.printStates (); } }

O resultado deste teste imprime a cadncia final, velocidade e equipamento para as duas bicicletas:
cadncia: 50 velocidade: 10 arte: 2 cadncia: 40 velocidade: 20 arte: 3

O que Herana?
Diferentes tipos de objectos tm, frequentemente, uma certa quantidade em comum com o outro. Mountain bikes, bicicletas de estrada e bicicletas tandem, por exemplo, todos compartilham as caractersticas de bicicletas (velocidade atual, a cadncia atual, a engrenagem de corrente). No entanto, cada um tambm define recursos adicionais que os tornam diferentes: bicicletas em tandem tem dois assentos e dois conjuntos de guido; bicicletas de estrada tm guido queda; algumas bicicletas de montanha tm um anel de corrente adicional, dando-lhes uma relao de marcha mais baixa. Programao orientada a objetos permite que as classes herdam estado comumente utilizados e comportamento de outras classes. Neste exemplo, de bicicleta torna-se agora asuperclasse de MountainBike , Roadbike e TandemBike . Na linguagem de programao Java, cada classe permitido ter uma superclasse direta, e cada superclasse tem o potencial para um nmero ilimitado de subclasses :

Uma hierarquia de classes de bicicletas.

A sintaxe para a criao de uma subclasse simples. No incio da sua declarao de classe, utilizar o estende palavra-chave, seguido do nome da classe a herdar:
classe MountainBike extends bicicleta { / / Novos campos e mtodos que definem / / Uma bicicleta de montanha ir aqui }

Isto d MountainBike todos os mesmos campos e mtodos como de bicicleta , mas permite que seu cdigo para se concentrar exclusivamente nas caractersticas que o tornam nico. Isso torna o cdigo para suas subclasses fcil de ler. No entanto, voc deve ter o cuidado de documentar corretamente o estado eo comportamento que cada superclasse define, uma vez que o cdigo no aparece no arquivo de origem de cada subclasse. Anterior Trail Prximo

O que uma Interface?


Como voc j aprendeu, objetos definir sua interao com o mundo exterior atravs dos mtodos que eles expem. Mtodos de formar o objeto de interface com o mundo exterior; os botes na parte frontal do seu televisor, por exemplo, so a interface entre voc e a fiao eltrica do outro lado do seu invlucro de plstico. Voc pressiona o boto "Power" para ligar a televiso ligada e desligada. Na sua forma mais comum, uma interface um grupo de mtodos relacionados com corpos vazios. O comportamento de uma bicicleta, se especificado como uma interface, pode aparecer como segue:
interface de bicicleta { / / Rotaes das rodas por minuto

changeCadence void (int newValue); vazio changeGear (int newValue); SpeedUp void (int incremento); applyBrakes void (decremento int); }

Para implementar essa interface, o nome da sua classe mudaria (para uma determinada marca de bicicleta, por exemplo, como ACMEBicycle ), e voc pode usar a implementos palavra-chave na declarao da classe:
ACMEBicycle classe implementa {bicicleta / Restante / desta classe / / Implementado como antes }

Implementao de uma interface permite que uma classe para se tornar mais formal sobre o comportamento que ela promete oferecer. Interfaces formar um contrato entre a classe eo mundo exterior, e este contrato imposta em tempo de compilao, o compilador. Se sua classe alega a implementar uma interface, todos os mtodos definidos por essa interface deve aparecer em seu cdigo-fonte antes que a classe ir compilar com sucesso. Nota: Para realmente compilar o ACMEBicycle classe, voc precisa adicionar o pblico palavrachave para o incio dos mtodos de interface implementada. Voc vai aprender as razes para esta tarde nas aulas sobre Classes e Objetos e Interfaces e Herana .

O que um pacote?
Um pacote um namespace que organiza um conjunto de classes relacionadas e interfaces. Conceitualmente voc pode pensar de pacotes como sendo semelhante a pastas diferentes no seu computador. Voc pode manter as pginas em HTML em uma pasta, imagens em si, e scripts ou aplicativos em outro. Como o software escrito na linguagem de programao Java pode ser composto por centenas ou milhares de aulas individuais, faz sentido manter as coisas organizadas, colocando as classes relacionadas e interfaces em pacotes. A plataforma Java fornece uma biblioteca de classes enorme (um conjunto de pacotes) adequado para uso em seus prprios aplicativos. Esta biblioteca conhecido como o "Application Programming Interface", ou "API" para breve. Seus pacotes representam as tarefas mais comumente associados com programao de propsito geral. Por exemplo, uma corda objeto contm o estado eo comportamento de cadeias de caracteres, um arquivo de objeto permite que um programador para criar, apagar, inspecionar, comparar ou modificar um arquivo no sistema de arquivos, um soquete objeto permite a criao e uso de soquetes de rede ; vrios objetos GUI controlar botes e caixas e mais alguma coisa relacionada a interfaces grficas de usurio. H literalmente milhares de classes para escolher. Isso permite que voc, o programador, para se concentrar no design de sua aplicao em particular, ao invs da infra-estrutura necessria para que ele funcione.

A plataforma Java Specification API contm a listagem completa de todos os pacotes, interfaces, classes, campos e mtodos fornecidos pela plataforma Java SE. Carregar a pgina em seu navegador e marc-la. Como um programador, ele se tornar sua pea mais importante de documentao de referncia.

Perguntas e Exerccios: Conceitos programao orientada a objeto


Perguntas

1. 2. 3. 4. 5. 6. 7. 8. 9.

Objetos do mundo real contm ___ e ___. Um objeto de estado do software armazenado em ___. O comportamento de um objeto de software exposta atravs de ___. Escondendo os dados internos do mundo exterior, e acess-lo somente atravs de mtodos expostos publicamente conhecida como ___ dados. Um projeto para um objeto de software chamado de ___. Comportamento comum pode ser definido em um ___ e herdado em um ___ usando a palavra-chave ___. Uma coleo de mtodos sem implementao chamada de ___. Um espao de nomes que organiza classes e interfaces de funcionalidade chamado de ___. A API termo significa ___?

Exerccios

1. Criar novas classes para cada objeto do mundo real que voc observou no incio desta trilha. Consulte a classe de bicicleta se voc esquecer a sintaxe necessria. 2. Para cada nova classe que voc criou acima, crie uma interface que define o

Respostas para Perguntas e Exerccios: Conceitos programao orientada a objeto


Respostas s perguntas

1. 2. 3. 4. 5. 6. 7. 8. 9.

Objetos do mundo real contm estado e comportamento . Um objeto de estado do software armazenado em campos . O comportamento de um objeto de software exposta atravs de mtodos . Escondendo os dados internos do mundo exterior, e acess-lo somente atravs de mtodos expostos publicamente conhecido como dados de encapsulamento . Um projeto para um objeto de software chamado de classe . Comportamento comum pode ser definida em uma superclasse e herdada em uma subclasse usando o estende palavra-chave. Uma coleo de mtodos sem implementao chamado de Interface . Um espao de nomes que organiza classes e interfaces de funcionalidade chamado de pacote . A API termo significa Application Programming Interface .

Respostas aos exerccios

1. Suas respostas vo variar de acordo com os objetos do mundo real que voc est modelando. 2. Suas respostas iro variar aqui tambm, mas a mensagem de erro especificamente listar os mtodos necessrios que no foram implementadas.

Lio: Conceitos Bsicos de Lngua


Variveis Voc j aprendeu que os objetos armazenar seu estado em campos. No entanto, a linguagem de programao Java tambm usa a "varivel" termo bem. Esta seo discute essa relao, alm de variveis regras de nomeao e convenes, tipos de dados bsicos (tipos primitivos, cadeias de caracteres e matrizes), os valores padro e literais. Operadores Esta seo descreve os operadores da linguagem de programao Java. Apresenta os operadores mais comumente usados em primeiro lugar, e os operadores menos comumente usados passado. Cada discusso inclui exemplos de cdigo que voc pode compilar e executar. Expresses, declaraes e Blocos Os operadores podem ser usados em expresses de construo, que calculam os valores, as expresses so os principais componentes de declaraes; declaraes podem ser agrupadas em blocos. Esta seo aborda expresses, declaraes, e os blocos usando um cdigo exemplo que voc j viu. Demonstrao dos Fluxos de Controle Esta seo descreve as instrues de controle de fluxo suportados pela linguagem de programao Java. Abrange as declaraes de tomada de decises, looping, e ramificao que permitem que seus programas para condicionalmente executar blocos particulares de cdigo.

Variveis
Como voc aprendeu na lio anterior, um objeto armazena seu estado em campos .
int cadncia = 0; int velocidade = 0; int engrenagem = 1;

A ? O que um objeto de discusso introduziu-lhe os campos, mas voc provavelmente tem ainda algumas perguntas, tais como: Quais so as regras e convenes para nomear um campo? Alm int , o que outros tipos de dados existem? No os campos tm de ser inicializadas quando so declaradas? So campos atribudo um valor padro se no forem explicitamente inicializado? Vamos explorar as respostas a essas perguntas desta lio, mas antes de ns, existem algumas distines tcnicas que voc deve primeiro se tornar conscientes.Na linguagem de programao Java, os termos "campo" e "varivel" so ambos usados, esta uma fonte comum de confuso entre os novos desenvolvedores, j que ambos muitas vezes parecem se referir mesma coisa.

A linguagem de programao Java define os seguintes tipos de variveis:

Variveis de instncia (campos no-static) Tecnicamente falando, objetos armazenar seus estados individuais em "campos no-static", isto , campos declarados sem aesttica palavra-chave. Non-estticos campos so tambm conhecidos como variveis de instncia porque os seus valores so nicos para cada exemplo de uma classe (a cada objecto, por outras palavras); o currentSpeed de uma bicicleta independente do currentSpeed de outro. Variveis de classe (campos estticos) A varivel de classe qualquer campo declarado com a esttica modificador; diz ao compilador que h exatamente uma cpia dessa varivel na existncia, independentemente de quantas vezes a classe foi instanciada. Um campo que define o nmero de engrenagens para um determinado tipo de bicicleta poderia ser marcado como static pois conceitualmente o mesmo nmero de marchas ser aplicvel a todas as instncias. Os cdigos numGears static int = 6; criaria um campo esttico. Alm disso, a palavra-chave final, pode ser adicionado para indicar que o nmero de velocidades nunca ir mudar. Variveis locais similares forma como um objeto armazena seu estado em campos, um mtodo, muitas vezes, armazenar seu estado temporrio em variveis locais . A sintaxe para declarar uma varivel local semelhante ao declarar um campo (por exemplo, int count = 0; ). No h nenhuma palavra-chave especial que designa uma varivel como local; que a determinao vem inteiramente a partir do local em que a varivel declarada - que est entre as chaves de abertura e encerramento de um mtodo. Como tal, as variveis locais so visveis apenas com os mtodos em que so declarados, eles no so acessveis a partir do resto da classe. Parmetros Voc j viu exemplos de parmetros, tanto na bicicleta e na classe principal mtodo do "Ol Mundo!" aplicao. Lembre-se que a assinatura para o principalmtodo public static void main (String [] args) . Aqui, o args varivel o parmetro para este mtodo. A coisa importante a lembrar que os parmetros so sempre classificados como "variveis" no "campos". Isso se aplica a outros parmetros aceitar construes como bem (como construtores e manipuladores de exceo) que voc vai aprender mais tarde no tutorial.

Dito isto, o restante deste tutorial usa as seguintes diretrizes gerais quando se discute campos e variveis. Se estamos a falar de "campos em geral" (excluindo variveis locais e parmetros), podemos simplesmente dizer "campos". Se a discusso se aplica a "todas as anteriores", podemos simplesmente dizer "Variveis". Se o contexto exige uma distino, vamos usar termos especficos (campo esttico, as variveis locais, etc), conforme apropriado. Voc tambm pode ocasionalmente ver o "membro" termo usado tambm. Campos de um tipo, mtodos e tipos aninhados so chamados coletivamente de seus membros .
Nomeando

Toda linguagem de programao tem seu prprio conjunto de regras e convenes para os tipos de nomes que voc est autorizado a usar, ea linguagem de programao Java no diferente. As regras e convenes para nomear suas variveis podem ser resumidas como segue:

Os nomes de variveis so case-sensitive. Nome de uma varivel pode ser qualquer identificador legal - uma seqncia ilimitada de comprimento de letras Unicode e

dgitos, comeando com uma letra, o cifro " $ ", ou o caractere sublinhado" _ ". A conveno, entretanto, sempre comear seus nomes de variveis com uma letra, e no " $ "ou" _ ".Alm disso, o cifro, por conveno, nunca usada em tudo. Voc pode encontrar algumas situaes onde gerados automaticamente nomes iro conter o cifro, mas seus nomes de variveis devem sempre evitar us-lo. Uma conveno semelhante existe para o caractere de sublinhado, enquanto tecnicamente legal para comear o nome da sua varivel com "_ ", essa prtica desencorajada. Espao em branco no permitido. Os caracteres subseqentes podem ser letras, dgitos, sinais de dlar, ou caracteres de sublinhado. Convenes (e bom senso) se aplicam a esta regra tambm. Ao escolher um nome para as variveis, utilizar palavras completas, em vez de abreviaturas. Se o fizer, far o seu cdigo mais fcil de ler e compreender. Em muitos casos, que tambm ir fazer o seu cdigo de auto-documentao; campos nomeados cadncia , velocidade , e artes , por exemplo, so muito mais intuitivo do que as verses abreviadas, como s , c , e g .Tambm tenha em mente que o nome escolhido no deve ser uma palavra-chave ou palavra reservada . Se o nome escolhido composto por apenas uma palavra, soletrar essa palavra em todas as letras minsculas. Se ele consiste de mais de uma palavra, capitalizar a primeira letra de cada palavra subseqente. Os nomes gearRatio e currentGear so excelentes exemplos da presente Conveno. Se a varivel armazena um valor constante, como estticas NUM_GEARS final int = 6 , as mudanas de convenes ligeiramente, capitalizando cada letra e separando as palavras subseqentes com o caractere sublinhado. Por conveno, o caractere sublinhado nunca usada em outros lugares.

Tipos de dados primitivos


A linguagem de programao Java estaticamente-digitada, o que significa que todas as variveis devem primeiro ser declarado, antes de poderem ser utilizados. Trata-se de declarar o tipo da varivel eo nome, como voc j viu:
int engrenagem = 1;

Se o fizer, diz que seu programa um campo chamado "engrenagem" existe, contm dados numricos, e tem um valor inicial de "1". A varivel tipo de dados determina os valores que ele possa conter, alm das operaes que podem ser executadas nele. Alm de int , a linguagem de programao Java suporta sete outros tipos de dados primitivos . Um tipo primitivo prdefinido pela linguagem e chamado por uma palavra reservada. Os valores primitivos no compartilham estado com outros valores primitivos. Os oito tipos primitivos de dados suportados pela linguagem de programao Java so:

byte : O byte um tipo de dados de 8 bits assinado dois do complemento inteiro. Tem um valor mnimo de -128 e um valor mximo de 127 (inclusive). O byte tipo de dados pode ser til para salvar a memria em grandes matrizes , onde as economias de memria realmente importa. Eles podem tambm ser utilizados no lugar de int onde os seus limites de ajudar a clarificar o seu cdigo; o facto de que uma gama varivel limitada pode servir como uma forma de documentao. curto : O curta um tipo de dados 16-bit nmero inteiro assinado complemento de dois. Tem um valor mnimo de -32.768 e um valor mximo de 32.767 (inclusive). Tal

como acontece com byte , as mesmas diretrizes se aplicam: voc pode usar um curta para economizar memria em grandes conjuntos, em situaes em que as economias de memria realmente importa. int : A int tipo de dados um inteiro de 32 bits assinado complemento de dois. Tem um valor mnimo de -2.147.483.648 e um valor mximo de 2.147.483.647 (inclusive). Para valores inteiros, este tipo de dados geralmente a opo padro a menos que haja uma razo (como o acima) para escolher outra coisa. Este tipo de dados provavelmente ser grande o suficiente para os nmeros de seu programa vai usar, mas se voc precisar de uma ampla gama de valores, use longo vez. tempo : O tempo um tipo de dados de 64 bits assinado dois do complemento inteiro. Tem um valor mnimo de -9.223.372.036.854.775.808 e um valor mximo de 9.223.372.036.854.775.807 (inclusive). Utilize este tipo de dados quando voc precisa de um intervalo de valores mais amplos do que aqueles fornecidos pelo int . flutuador : O flutuador tipo de dados um nico-preciso de 32 bits ponto flutuante IEEE 754. Sua gama de valores est alm do escopo desta discusso, mas especificado nos tipos de ponto flutuante, formatos e valores seo da especificao da linguagem Java. Tal como acontece com as recomendaes para byte e curto , use uma bia (em vez de duas vezes ), se voc precisa para economizar memria em grandes conjuntos de nmeros de ponto flutuante. Este tipo de dados nunca deve ser usado para valores precisos, como moeda. Para isso, voc precisar usar o java.math.BigDecimal classe em vez. nmeros e strings cobre BigDecimal e outras classes teis fornecidos pela plataforma Java. dupla : A dupla um tipo de dados de preciso dupla de 64 bits ponto flutuante IEEE 754. Sua gama de valores est alm do escopo desta discusso, mas especificado nostipos de ponto flutuante, formatos e valores seo da especificao da linguagem Java. Para valores decimais, este tipo de dados geralmente a opo padro. Como mencionado acima, este tipo de dados nunca deve ser usado para valores precisos, tais como moeda. boolean : O boolean tipo de dados tem apenas dois valores possveis: verdadeiro e falso . Utilize este tipo de dados para bandeiras simples que rastreiam as condies verdadeiro / falso. Este tipo de dados representa um bit de informao, mas o seu "tamanho" no algo que est definido com preciso. caractere : O caractere tipo de dados um personagem nico 16-bit Unicode. Tem um valor mnimo de '\ u0000' (ou 0) e um valor mximo de '\ uFFFF' (ou 65.535 inclusive).

Alm dos oito tipos primitivos de dados listados acima, a linguagem de programao Java tambm fornece suporte especial para cadeias de caracteres atravs da java.lang.String classe.Encerrando a seqncia de caracteres dentro de aspas duplas ir criar automaticamente uma nova cadeia objeto, por exemplo, String s = "isto uma string"; . corda objetos so imutveis , o que significa que uma vez criado, seus valores no podem ser alterados. A seqncia de classes no tecnicamente um tipo de dados primitivo, mas considerando o apoio especial que lhe dado pela linguagem, voc provavelmente tendem a pensar nele como tal. Voc aprender mais sobre a cadeia de classe em objetos de dados simples
Valores Padro

Nem sempre necessrio atribuir um valor quando um campo est declarado. Campos que so declarados, mas no inicializado ser definido como um padro razovel pelo compilador.De

um modo geral, este padro ser zero ou nula , dependendo do tipo de dados. Baseando-se esses valores implcitos, no entanto, geralmente considerado um estilo de programao ruim. O grfico a seguir resume os valores padro para os tipos de dados acima.
Tipo de dados byte curto int longo flutuar dobrar caractere Valor padro (para os campos) 0 0 0 0L 0.0f 0.0d '\ U0000'

String (ou qualquer objeto) nulo boolean falso

As variveis locais so um pouco diferentes, o compilador nunca atribui um valor padro para uma varivel local no inicializada. Se voc no puder inicializar a varivel local onde ela declarada, certifique-se de atribuir um valor antes de tentar us-lo. Acessar uma varivel local no inicializada ir resultar em um erro de tempo de compilao.
Literais

Voc deve ter notado que a nova palavra-chave no usado quando inicializar uma varivel de um tipo primitivo. Tipos primitivos so tipos especiais de dados incorporadas ao idioma, pois eles no so objetos criados a partir de uma classe. Um literal a representao de cdigo fonte de um valor fixo; literais so representados diretamente em seu cdigo sem a necessidade de computao. Como mostrado abaixo, possvel atribuir um literal para uma varivel de um tipo primitivo:
resultado boolean = true; caractere capitalC = 'C'; byte b = 100; curto s = 10000; int i = 100000;

Integer literais

Um literal inteiro do tipo longo , se ele termina com a letra L ou l , caso contrrio ele do tipo int . recomendvel que voc usar a letra maiscula L porque a letra minscula l difcil distinguir o dgito 1 .

Valores dos tipos integrais byte , curto , int , e muito pode ser criado a partir de int literais. Valores do tipo longas que ultrapassam a faixa de int pode ser criado a partir delongas literais. Literais inteiros podem ser expressos por estes sistemas numricos:

Decimal: Base 10, cujos dgitos composto pelos nmeros 0 a 9, este o sistema de nmero que voc usa todos os dias Hexadecimal: Base 16, cujos dgitos composto pelos nmeros de 0 a 9 e as letras A at F Binrio: Base 2, cujos dgitos composto dos nmeros 0 e 1 (voc pode criar literais binrios em Java SE 7 e posteriores)

Para programao de propsito geral, o sistema decimal provvel que seja o sistema nico nmero que voc vai usar. No entanto, se voc precisa usar um outro sistema numrico, o exemplo a seguir mostra a sintaxe correta. O prefixo 0x indica hexadecimal e 0b indica binrio:
/ / int / / int / / int O nmero decVal = O nmero hexVal = O nmero binVal = 26, em decimal 26; 26, em hexadecimal 0x1A; 26, em binrio 0b11010;

De ponto flutuante Literais

Um literal de ponto flutuante do tipo flutuante se termina com a letra F ou F , caso contrrio, seu tipo duplo e, opcionalmente, pode terminar com a letra D ou d . Os tipos de ponto flutuante ( bia e dupla ) tambm pode ser expressa usando E ou E (para a notao cientfica), F ou F (32-bit flutuante literal) e D ou d (64-bit dupla literal, este o padro e por conveno omitido).
d1 duplas = 123,4; / / Mesmo valor que d1, mas em notao cientfica dobrar d2 = 1.234e2; flutuar f1 = 123.4f;

Literais de caracteres e String

Literais dos tipos de char e string podem conter qualquer caractere Unicode (UTF-16) caracteres. Se o seu editor e sistema de arquivos permitirem, voc pode usar esses caracteres diretamente em seu cdigo. Se no, voc pode usar um "escape Unicode", tais como '\ u0108' (capital C com circunflexo) ou "S \ u00ED Se \ u00F1or" (Seor S em espanhol).Sempre use 'aspas simples' para de char literais e "aspas" para cordas literais. Seqncias de escape Unicode pode ser usado em outro lugar em um programa (como em nomes de campo, por exemplo), no apenas no de char ou string literais. A linguagem de programao Java tambm suporta algumas sequncias de escape especiais para de char e string literais: \ b (backspace), \ t (tab), \ n (line feed), \ f (form feed),\ r (retorno de carro), \ " (aspas duplas), \ ' (aspas simples), e \ \ (barra invertida). H tambm uma especial nula literal que pode ser usado como um valor para qualquer tipo de referncia. nulo pode ser atribudo a qualquer varivel, excepto variveis de tipos primitivas. H pouco voc pode fazer com um nulo valor alm do teste para a sua presena. Portanto, nula

frequentemente usado em programas como um marcador para indicar que um objeto no est disponvel. Finalmente, h tambm um tipo especial de literal chamado de classe literal , formado por tirar um nome de tipo e acrescentando " classe ". , por exemplo, String.class . Este se refere ao objeto (do tipo Classe ), que representa o prprio tipo.
Usando o caractere de sublinhado literais numricos

Em Java SE 7 e depois, qualquer nmero de caracteres de sublinhado ( _ ) pode aparecer em qualquer lugar entre dgitos em um literal numrico. Este recurso permite, por exemplo. para separar grupos de dgitos em literais numricos, o que pode melhorar a legibilidade do seu cdigo. Por exemplo, se seu cdigo contm nmeros com muitos dgitos, voc pode usar um caractere de sublinhado para separar dgitos em grupos de trs, da mesma forma como voc usaria um sinal de pontuao como uma vrgula ou um espao, como um separador. O exemplo a seguir mostra outras maneiras que voc pode usar o sublinhado em literais numricos:
longo creditCardNumber = 1234_5678_9012_3456L; longo socialSecurityNumber = 999_99_9999L; flutuar pi = 3.14_15F; hexBytes longos = 0xFF_EC_DE_5E; longo hexWords = 0xCAFE_BABE; longo maxLong = 0x7fff_ffff_ffff_ffffL; nybbles bytes = 0b0010_0101; bytes = 0b11010010_01101001_10010100_10010010;

Voc pode colocar ressalta apenas entre os dgitos, voc no pode colocar sublinhados nos seguintes locais:

No incio ou no final de um nmero Adjacente a um ponto decimal em um literal de ponto flutuante Antes de um F ou L sufixo Nas posies onde uma seqncia de dgitos esperado

Os seguintes exemplos demonstram vlidos e invlidos sublinhado colocaes (que so destaque) em literais numricos:
/ / invlido: no pode colocar sublinha / / ao lado de um ponto decimal flutuar PI1 = 3_.1415F; / / invlido: no pode colocar sublinha / / ao lado de um ponto decimal flutuar pi2 = 3._1415F; / / invlido: no pode colocar sublinha / / antes de um sufixo L longo socialSecurityNumber1 = 999_99_9999_L; / / / / int / / int Este um identificador, no A literal numrico x1 = _52; OK (literal decimal) x2 = 5_2;

/ / / / int / / int / / / / int / / / / int / / int / / / / int

invlido: no pode colocar sublinha No final de um literal x3 = 52_; OK (literal decimal) x4 = 5_______2; invlido: no pode colocar sublinha no prefixo 0x radix x5 = 0_x52; invlido: no pode colocar sublinhados , no incio de um nmero x6 = 0x_52; OK (literal hexadecimal) x7 = 0x5_2; invlido: no pode colocar sublinhados no final de um nmero x8 = 0x52_;

Baixar Ebooks download JDK Pesquisar Java Tutoriais Esconder TOC

Noes bsicas de linguagem Variveis Tipos de dados primitivos Arrays Resumo das Variveis Perguntas e Exerccios Operadores Operadores aritmticos, atribuio e Unrio Operadores de igualdade, Relacional e Condicional Bitwise e Operadores Bit Shift Resumo dos Operadores Perguntas e Exerccios Expresses, declaraes e Blocos Perguntas e Exerccios Demonstrao dos Fluxos de Controle As Demonstraes if-then e if-then-else A Declarao de interruptor O tempo e fazer ao mesmo tempo, Demonstraes

A Declarao para Ramificao Demonstraes Resumo das Demonstraes de Fluxo de Controle Perguntas e Exerccios Pgina Inicial > Aprendizagem da Lngua Java > Linguagem Basics Anterior Trail Prximo

Arrays
Uma matriz um objeto de recipiente que contm um nmero fixo de valores de um nico tipo. O comprimento de uma matriz estabelecida quando a matriz criada. Aps a criao, seu comprimento fixo. Voc j viu um exemplo de matrizes j, no principal mtodo do "Ol Mundo!" aplicao. Esta seo discute matrizes em maior detalhe.

Uma matriz de dez elementos

Cada item em uma matriz chamado de elemento , e cada elemento acessado pela numrica ndice . Como mostrado na ilustrao acima, a numerao comea com 0. O elemento 9, por exemplo, seria, portanto, ser acessada no ndice 8. O programa a seguir, ArrayDemo , cria um array de inteiros, coloca alguns valores nela, e imprime cada valor sada padro.
ArrayDemo classe { public static void main (String [] args) { / / Declara um array de inteiros int [] meuArray; / / Aloca memria para 10 inteiros meuArray = new int [10]; / / Inicializa meuArray [0] = / / Inicializa meuArray [1] = / / Etc meuArray [2] = meuArray [3] = meuArray [4] = meuArray [5] = meuArray [6] = o primeiro elemento 100; o segundo elemento 200; 300; 400; 500; 600; 700;

meuArray [7] = 800; meuArray [8] = 900; meuArray [9] = 1000; System.out.println ("elemento + MeuArray System.out.println ("Elemento + MeuArray System.out.println ("Elemento + MeuArray System.out.println ("Elemento + MeuArray System.out.println ("Elemento + MeuArray System.out.println ("Elemento + MeuArray System.out.println ("Elemento + MeuArray System.out.println ("Elemento + MeuArray System.out.println ("Elemento + MeuArray System.out.println ("Elemento + MeuArray } } no ndice [0]); no ndice [1]); no ndice [2]); no ndice [3]); no ndice [4]); no ndice [5]); no ndice [6]); no ndice [7]); no ndice [8]); no ndice [9]); 0:" 1:" 2:" 3:" 4:" 5:" 6:" 7:" 8:" 9:"

A sada deste programa :


Elemento Elemento Elemento Elemento Elemento Elemento Elemento Elemento Elemento Elemento no no no no no no no no no no ndice ndice ndice ndice ndice ndice ndice ndice ndice ndice 0: 1: 2: 3: 4: 5: 6: 7: 8: 9: 100 200 300 400 500 600 700 800 900 1000

Em uma situao de programao do mundo real, voc provavelmente usa um dos suportados construes de looping para percorrer cada elemento da matriz, em vez de escrever cada linha individualmente como mostrado acima. No entanto, este exemplo ilustra claramente a sintaxe de matriz. Voc vai aprender sobre as vrias construes de loop ( para , enquanto , edowhile ) no fluxo de controle de seo.
Declarando uma varivel para fazer referncia a uma matriz

O programa acima declara meuArray com a seguinte linha de cdigo:


/ / Declara um array de inteiros int [] meuArray;

Como declaraes para variveis de outros tipos, uma declarao de matriz tem dois componentes: tipo do array eo nome da matriz. Tipo de um array escrito como tipo [] , ondetipo o tipo de dados dos elementos contidos; os colchetes so smbolos especiais que indicam que esta varivel contm uma matriz. O tamanho da matriz no parte do seu tipo (razo pela qual os suportes so vazio). O nome de um array pode ser o que quiser, desde que ele segue as regras e convenes, como discutido anteriormente na nomenclatura seo. Tal

como acontece com variveis de outros tipos, a declarao no chega a criar uma matriz - ele simplesmente diz ao compilador que esta varivel ir conter uma matriz do tipo especificado. Da mesma forma, voc pode declarar arrays de outros tipos:
byte [] anArrayOfBytes; curto [] anArrayOfShorts; tempo [] anArrayOfLongs; float [] anArrayOfFloats; double [] anArrayOfDoubles; boolean [] anArrayOfBooleans; char [] anArrayOfChars; String [] anArrayOfStrings;

Voc tambm pode colocar os colchetes aps o nome da matriz:


/ / Dessa forma desencorajado anArrayOfFloats float [];

No entanto, a conveno desencoraja esta forma, os suportes de identificar o tipo de matriz e deve aparecer com a designao do tipo.
Criando, inicializando, e acessando um Array

Uma maneira de criar uma matriz com o novo operador. A prxima instruo no ArrayDemo programa aloca um array com memria suficiente para dez elementos inteiros e atribui a matriz para o meuArray varivel.
/ / Cria um array de inteiros meuArray = new int [10];

Se esta declarao faltasse, o compilador imprimiria um erro como o seguinte, ea compilao falharia:
ArrayDemo.java: 4: meuArray varivel no pode ter sido inicializado.

As prximas linhas atribuem valores para cada elemento da matriz:


meuArray [0] = 100; elemento / / inicializa o primeiro meuArray [1] = 200; / / inicializa o segundo elemento meuArray [2] = 300; / / etc

Cada elemento da matriz acessado por seu ndice numrico:


System.out.println ("Elemento 1 no ndice 0:" + meuArray [0]); System.out.println ("Elemento 2 no ndice 1:" + meuArray [1]); System.out.println ("Elemento 3 no ndice 2:" + meuArray [2]);

Alternativamente, voc pode usar a sintaxe de atalho para criar e inicializar um array:
int [] = 100, 400, 700, }; {meuArray 200, 300, 500, 600, 800, 900, 1000

Aqui, o comprimento da matriz determinada pelo nmero de valores fornecidos entre { e } .

Voc pode tambm declarar um array de arrays (tambm conhecido como um multidimensional matriz) usando dois ou mais conjuntos de colchetes, como String [] [] nomes .Cada elemento, por conseguinte, deve ser acedida por um nmero correspondente de valores de ndice. Na linguagem de programao Java, um array multidimensional simplesmente um array cujos componentes so, elas prprias matrizes. Isso diferente de matrizes em C ou Fortran. Uma consequncia disto que as linhas so permitidos para variar em comprimento, como mostrado no seguinte MultiDimArrayDemo programa:
MultiDimArrayDemo classe { public static void main (String [] args) { String [] [] nomes = { {"Mr.", "Sra.", "Ms."}, {"Smith", "Jones"} }; / / Mr. Smith System.out.println (nomes [0] [0] + nomes [1] [0]); / / Ms. Jones System.out.println (nomes [0] [2] + nomes [1] [1]); } }

A sada deste programa :


Mr. Smith Ms. Jones

Finalmente, voc pode usar o built-in comprimento propriedade para determinar o tamanho de qualquer matriz. O cdigo
System.out.println (anArray.length);

ir imprimir o tamanho da matriz para a sada padro.


Arrays Copiando

O Sistema de classe tem um arraycopy mtodo que voc pode usar de forma eficiente copiar dados de um array para outro:
arraycopy public static void (Object src, int srcPos, Objeto dest, int destPos, int length)

Os dois objetos argumentos especificar a matriz para copiar a partir da matriz e copiar para . Os trs int argumentos especificam a posio inicial na matriz de origem, a posio de partida na matriz de destino, eo nmero de elementos da matriz para copiar. O programa a seguir, ArrayCopyDemo , declara um array de de char elementos, soletrando a palavra "descafeinado". Ele usa arraycopy para copiar uma subsequncia de componentes de matriz em uma segunda matriz:
ArrayCopyDemo classe { public static void main (String [] args) { char [] = {CopyFrom 'd', 'e', 'c', 'a', 'f', 'f', 'e', 'I', 'n', 'a', 't', 'e', 'd'};

char [] copyTo = new char [7]; System.arraycopy (CopyFrom, 2, copyTo, 0, 7); System.out.println (new String (copyTo)); } }

A sada deste programa :


cafena

Anterior Trail Prximo

Problemas com os exemplos? Tente compilar e executar o Exemplos: Perguntas Frequentes . Reclamaes? Elogios? Sugestes? D-nos a sua opinio . O uso deste pgina e todo o material em pginas sob o ttulo "Java Tutoriais O" banner est sujeito a estes avisos legais .

Sobre a Oracle | Oracle Technology Network | Termos de Uso

Copyright 1995, 2012 Oracle Corporation e / ou suas afiliadas.Todos os direitos reservados.

Resumo das Variveis


A linguagem de programao Java usa os dois "campos" e "Variveis", como parte de sua terminologia. Variveis de instncia (campos no-static) so nicos para cada instncia de uma classe. Variveis de classe (campos estticos) so campos declarados com a esttica modificador, h exatamente uma cpia de uma varivel de classe, independentemente de quantas vezes a classe foi instanciada. As variveis locais armazenar o estado temporrio dentro de um mtodo. Os parmetros so variveis que fornecem informaes adicionais para um mtodo, ambas as variveis locais e parmetros so sempre classificados como "variveis" (no "campos"). Ao nomear os seus campos ou variveis, existem regras e convenes que voc deve (ou deve) seguir. Os oito tipos de dados primitivos so: byte, short, int, float, long, double, boolean e char. O java.lang.String classe representa as cadeias de caracteres. O compilador ir atribuir um valor padro razovel para campos dos tipos acima, para as variveis locais, um valor padro nunca atribudo. Um literal a representao de cdigo fonte de um valor fixo. Uma matriz um objeto de recipiente que contm um nmero fixo de valores de um nico tipo. O comprimento de uma matriz estabelecida quando a matriz criada. Aps a criao, seu comprimento fixo. Anterior Trail Prximo

Perguntas e Exerccios: Variveis


Perguntas

1. A "varivel de instncia" termo outro nome para ___.

2. A varivel "classe" termo outro nome para ___. 3. Uma varivel local armazena estado temporrio, que declarada dentro de um ___. 4. Uma varivel declarada dentro do parntese de abertura e fechamento de uma assinatura do mtodo chamado de ____. 5. Quais so os oito tipos primitivos de dados suportados pela linguagem de programao Java? 6. Cadeias de caracteres so representados pela classe ___. 7. Um ___ um objeto de recipiente que contm um nmero fixo de valores de um nico tipo.
Exerccios

1. Crie um pequeno programa que define alguns campos. Tente criar alguns nomes de campo ilegais e ver que tipo de erro o compilador produz. Use as regras de nomeao e convenes como um guia. 2. No programa que voc criou no Exerccio 1, tente deixar os campos no inicializado e imprimir seus valores. Tente o mesmo com uma varivel local e ver que tipo de erros do compilador que voc pode produzir. Familiarizar-se com erros de compilador comum ir torn-lo mais fcil de reconhecer os erros em seu cdigo.

Respostas para Perguntas e Exerccios: Variveis


Respostas s perguntas

1. A "varivel de instncia" termo outro nome para no-esttico campo . 2. A varivel "classe" termo outro nome para campo esttico . 3. Uma varivel local armazena estado temporrio, que declarada dentro de um mtodo . 4. Uma varivel declarada dentro do parntese de abertura e fechamento de um mtodo chamado de parmetro . 5. Quais so os oito tipos primitivos de dados suportados pela linguagem de programao Java? byte, short, int, char, float, long, double, boolean, 6. Cadeias de caracteres so representados pela classe java.lang.String . 7. Uma matriz um objeto de recipiente que contm um nmero fixo de valores de um nico tipo.
Respostas aos exerccios

1. Crie um pequeno programa que define alguns campos. Tente criar alguns nomes de campo ilegais e ver que tipo de erro o compilador produz. Use as regras de nomeao e convenes como um guia. No h uma nica resposta correta aqui. Os resultados iro variar dependendo do seu cdigo. 2. No programa que voc criou no Exerccio 1, tente deixar os campos no inicializado e imprimir seus valores. Tente o mesmo com uma varivel local e ver que tipo de erros do

compilador que voc pode produzir.Familiarizar-se com erros de compilador comum ir torn-lo mais fcil de reconhecer os erros em seu cdigo. Novamente, no h uma nica resposta correta para este exerccio. Os resultados iro variar dependendo do seu cdigo.

Operadores
Agora que voc j aprendeu como declarar e inicializar variveis, voc provavelmente quer saber como fazer algo com eles. Aprender os operadores da linguagem de programao Java um bom lugar para comear. Operadores so smbolos especiais que realizam operaes especficas em um, dois ou trs operandos , e, em seguida, retornar um resultado. medida que exploramos os operadores da linguagem de programao Java, pode ser til para voc saber de antemo que os operadores tm a maior prioridade. Os operadores na tabela a seguir so listadas de acordo com a ordem de precedncia. Quanto mais prximo da parte superior da mesa de um operador aparece, maior a sua precedncia. Os operadores com maior precedncia so avaliados antes dos operadores com precedncia relativamente menor. Operadores na mesma linha tm a mesma precedncia. Quando os operadores de precedncia igual aparecem na mesma expresso, uma regra deve governar, que avaliada em primeiro lugar. Todos os operadores binrios, exceto para os operadores de atribuio so avaliados da esquerda para a direita; operadores de atribuio so avaliados direita para a esquerda.
Precedncia dos operadores Operadores postfix unrio multiplicativo aditivo deslocar relacional igualdade AND bit a bit
expr + + expr + + expr - expr + expr - expr ~! *% / + << >>>>> <> <=> = Instanceof ! == = &

Precedncia

bit a bit exclusivo OU ^ bit a bit, inclusive, ou E lgico OU lgico ternrio atribuio
| && | | ? : = + = - = * = / =% = & = ^ = | = << = >> = >>> =

Na programao de propsito geral, alguns operadores tendem a aparecer com mais freqncia do que outros, por exemplo, o operador de atribuio " = " muito mais comum do que o operador de deslocamento direita no assinado" >>> ". Com isso em mente, a seguinte discusso centra-se em primeiro lugar os operadores que voc est mais sujeito a usar em uma base regular, e termina focando aqueles que so menos comuns. Cada discusso acompanhada por cdigo de exemplo que voc pode compilar e executar. Estudar a sua sada ir ajudar a reforar o que voc acabou de aprender.

Operadores aritmticos, atribuio e Unrio


O operador de atribuio simples

Um dos operadores mais comuns que voc encontrar o operador de atribuio simples " = ". Voc viu este operador na classe de bicicleta, que atribui o valor de seu direito de o operando sua esquerda:
int cadncia = 0; int velocidade = 0; int engrenagem = 1;

Este operador pode tambm ser usado em objectos para atribuir referncias de objeto , como discutido em Criando Objectos .
Os operadores aritmticos

A linguagem de programao Java fornece aos operadores que executam adio, subtrao, multiplicao e diviso. H uma boa chance de voc reconhec-los pelos seus homlogos em matemtica bsica. O nico smbolo que pode parecer novo para voc " % ", que divide um operando por outro e retorna o resto como seu resultado.
+ Operador aditivo (tambm usada para Concatenao de String) - Operador de subtrao * Operador de multiplicao Operador / diviso Operador de resto%

O programa a seguir, ArithmeticDemo , testa os operadores aritmticos.


ArithmeticDemo classe { public static void main (String [] args) { / / Resultado agora 3 int resultado = 1 + 2; System.out.println (resultado); / / Resultado agora 2 resultado = resultado - 1; System.out.println (resultado); / / Resultado agora 4 resultado = resultado * 2; System.out.println (resultado);

/ / Resultado agora 2 resultado = resultado / 2; System.out.println (resultado); / / Resultado agora 10 resultado = resultado + 8; / / Resultado agora 3 resultado =% resultado 7; System.out.println (resultado); } }

Voc tambm pode combinar os operadores aritmticos com o operador de atribuio simples de criar atribuies compostas . Por exemplo, x + = 1; e x = x 1; tanto incremento o valor de x em 1. A + operador pode tambm ser utilizado para a concatenao (unir) duas cadeias em conjunto, como mostrado no seguinte ConcatDemo programa:
ConcatDemo classe { public static void main (String [] args) { FirstString String = "Isto "; Cordas secondString = "A string concatenada."; Cordas thirdString = firstString + secondString; System.out.println (thirdString); } }

At o final deste programa, a varivel thirdString contm "Esta uma string concatenada.", que impressa na sada padro.
Os operadores unrios

Os operadores unrios requer apenas um operando; que realizar vrias operaes, tais como incrementar / decrementar um valor por um, negando uma expresso, ou invertendo o valor de um booleano.
+ Operador mais unrio; indica valor positivo (os nmeros so positiva, sem isso, no entanto) - Operador menos unrio; nega uma expresso + + Operador de incremento; incrementos um valor de 1 - Operador de decremento; decrscimos um valor de 1 ! Operador de complemento lgico; inverte o valor de um booleano

O programa a seguir, UnaryDemo , testa os operadores unrios:


UnaryDemo classe { public static void main (String [] args) { / / Resultado agora de 1 int resultado = 1;

System.out.println (resultado); / / 0 resultado agora resultado -; System.out.println (resultado); / / Resultado agora de 1 resultado + +; System.out.println (resultado); / / Resultado agora -1 resultado = resultado; System.out.println (resultado); boolean sucesso = false; / / False System.out.println (sucesso); / / True System.out.println (sucesso!); } }

Os operadores de incremento / decremento pode ser aplicado antes (prefixo) ou depois (postfix) o operando. O cdigo resultado + +; e + + resultado; sero ambos fim emresultado sendo incrementado de um. A nica diferena que a verso de prefixo ( + + resultado ) avalia que o valor incrementado, enquanto a verso postfix ( resultado + + ) avalia que o valor original. Se voc est apenas executando um simples incremento / decremento, isso realmente no importa qual verso que voc escolher. Mas se voc usar este operador, em parte, de uma expresso maior, o que voc escolher pode fazer uma diferena significativa. O programa a seguir, PrePostDemo , ilustra o prefixo / postfix operador de incremento unrio:
PrePostDemo classe { public static void main (String [] args) { int i = 3; i + +; / / Imprime 4 System.out.println (i); + + I; / / Imprime 5 System.out.println (i); / / Imprime 6 System.out.println (+ + i); / / Imprime 6 System.out.println (i + +); / / Imprime 7 System.out.println (i); } }

Operadores de igualdade, Relacional e Condicional


A igualdade e operadores relacionais

A igualdade e operadores relacionais determinar se um operando maior do que, a menos que, igual a, ou no igual a outra operando. A maioria desses operadores ser, provavelmente, parece familiar para voc tambm. Tenha em mente que voc deve usar " == ", no" = ", ao testar se dois valores primitivos so iguais.
== Igual para ! = No igual a > Maior

> = Maior do que ou igual a <Inferior <= Menos de ou igual a

O programa a seguir, ComparisonDemo , testa os operadores de comparao:


ComparisonDemo classe { public static void main (String [] args) { int valor1 = 1; int valor2 = 2; if (valor1 == valor2) System.out.println ("valor1 == valor2"); if (valor1! = valor2) System.out.println ("valor1 = valor2"); if (valor1> valor2) System.out.println ("valor1> valor2"); if (valor1 <valor2) System.out.println ("valor1 <valor2"); if (valor1 <valor2 =) System.out.println ("valor1 <= valor2"); } }

Sada:
valor1! = valor2 valor1 <valor2 valor1 <= valor2

Os operadores condicionais

Os && e | | operadores executar condicional-E e condicional OU operaes em duas expresses Boolean. Estes operadores apresentam "curto-circuito" comportamento, o que significa que o segundo operando avaliado somente se necessrio.
Condicional &&-E | | Condicional-OR

O programa a seguir, ConditionalDemo1 , testa esses operadores:


ConditionalDemo1 classe { public static void main (String [] args) { int valor1 = 1; int valor2 = 2; if ((valor1 == 1) && (valor2 == 2)) System.out.println ("valor1 1 e valor2 2"); if ((valor1 == 1) | | (valor2 == 1)) System.out.println ("valor1 valor2 1 ou 1"); } }

Outro operador condicional :? , que pode ser pensado como uma abreviao para um if-thenelse declarao (discutido no Controle de Fluxo de Demonstraes desta lio). Este operador tambm conhecido como o operador ternrio porque utiliza trs operandos. No exemplo a seguir, este operador deve ser lido como: "Se someCondition verdade , atribuir o valor de valor1 para resultar Caso contrrio, atribuir o valor de. valor2 a resultar . "

O programa a seguir, ConditionalDemo2 , testa a : operador:


ConditionalDemo2 classe { public static void main (String [] args) { int valor1 = 1; int valor2 = 2; int resultado; someCondition boolean = true; resultar someCondition =? valor1: valor2; System.out.println (resultado); } }

Porque someCondition verdade, este programa imprime "1" para a tela. Use a : operador em vez de um if-then-else if faz seu cdigo mais legvel, por exemplo, quando as expresses so compactos e sem efeitos colaterais (como atribuies).
O Tipo de Operador de comparao instanceof

O instanceof operador compara um objeto para um tipo especificado. Voc pode us-lo para testar se um objeto uma instncia de uma classe, uma instncia de uma subclasse, ou uma instncia de uma classe que implementa uma interface especfica. O programa a seguir, InstanceofDemo , define uma classe pai (chamado pai ), uma interface simples (chamado MyInterface ), e uma classe filha (chamada Criana ) que herda do pai e implementa a interface.
InstanceofDemo classe { public static void main (String [] args) { Obj1 Pai Pai = new (); Pai obj2 Criana = new (); System.out.println ("Parent obj1 instanceof:" + (Parent instanceof obj1)); System.out.println ("Criana instanceof obj1:" + (Criana instanceof obj1)); System.out.println ("obj1 MyInterface instanceof:" + (Obj1 instanceof MyInterface)); System.out.println ("obj2 Parent instanceof:" + (Obj2 Parent instanceof)); System.out.println ("obj2 Criana instanceof:" + (Obj2 Criana instanceof)); System.out.println ("obj2 instanceof MyInterface:" + (Obj2 instanceof MyInterface)); } } Pais de classe {} Criana classe estende MyInterface Parent implementos {} interface de MyInterface {}

Sada:
Pai obj1 instanceof: true Criana obj1 instanceof: false obj1 instanceof MyInterface: false

obj2 Parent instanceof: true obj2 Criana instanceof: true obj2 instanceof MyInterface: true

Ao usar o instanceof operador, tenha em mente que nulo no uma instncia de qualquer coisa.

Bitwise e Operadores Bit Shift


A linguagem de programao Java tambm oferece aos operadores que executam operaes de deslocamento bit a bit e bit em tipos integrais. Os operadores discutidas nesta seo so menos utilizados. Assim, sua cobertura breve, a inteno simplesmente torn-lo consciente de que esses operadores existir. O unrio complemento bit a bit operador " ~ "inverte um padro de bits, que pode ser aplicado a qualquer um dos tipos integrais, fazendo todos os" 0 "a" 1 "e cada" 1 "a" 0 ". Por exemplo, um byte de 8 bits contm, aplicando este operador para um valor cujo bit padro "00000000" mudaria o seu padro de "11111111". O deslocamento para a esquerda assinado operador " << "muda um padro de bits para a esquerda, e o operador de deslocamento assinado direita" >> "muda um padro de bits para a direita. O padro de bits dado pelo operando da esquerda, eo nmero de posies para deslocar pelos operando direita. A direita no assinado mudana operador " >>> "muda um zero na posio mais esquerda, enquanto a posio mais esquerda, aps ">>" depende de extenso de sinal. O bit a bit e operador executa uma operao AND bit a bit. O bit a bit ^ operador executa uma operao bit a bit OU exclusivo. O bit a bit | operador executa uma operao OR bit a bit inclusiva. O programa a seguir, BitDemo , usa o bit a bit E operador para imprimir o nmero "2" para a sada padro.
BitDemo classe { public static void main (String [] args) { int bitmask = 0x000F; int val = 0x2222; / / Imprime "2" System.out.println (val & bitmask); } }

Resumo dos Operadores


A seguinte referncia rpida resume os operadores suportados pela linguagem de programao Java.
Operador de Atribuio Simples
= Operador de atribuio simples

Operadores Aritmticos
Operador + Aditivo (tambm usado para concatenao de String) - Operador de subtrao * Operador de multiplicao Operador / Diviso Operador Restante%

Operadores unrios
+ Operador mais unrio; indica valor positivo (os nmeros so positiva, sem isso, no entanto) - Operador menos unrio; nega uma expresso + + Operador de incremento; incrementos um valor de 1 - Operador de decremento; decrscimos um valor de 1 ! Operador de complemento lgico; inverte o valor de um booleano

Igualdade e operadores relacionais


== Igual a ! = No igual a > Maior que > = Maior do que ou igual a <Menor que <= Menos do que ou igual a

Operadores Condicionais
Condicional &&-E | | Condicional-OR ?: Ternrio taquigrafia (para if-then-else declarao)

Operador de comparao de tipo


instanceof Compara um objeto para um tipo especificado

Bitwise e Operadores Bit Shift


~ Unrio bit a bit complemento Assinado << desvio esquerda Assinado direito >> mudar >>> Mudana Unsigned direito & AND bit a bit ^ Bitwise OU exclusivo | Inclusive Bitwise OR

Perguntas e Exerccios: Operadores


Perguntas

1. Considere o seguinte trecho de cdigo.


2. arrayOfInts [j]> arrayOfInts [j +1]

Quais os operadores que o cdigo contm? 3. Considere o seguinte trecho de cdigo.


4. int i = 10; 5. int n = i + + 5%;

a. Quais so os valores de i e n depois que o cdigo executado? b. Quais so os valores finais de i e n , se em vez de usar o operador de incremento postfix ( i + + ), voc usa a verso de prefixo ( + + i) )? 6. Para inverter o valor de um booleano , operador que voc usaria? 7. Que operador usado para comparar dois valores, = ou == ? 8. Explicar o seguinte amostra de cdigo: someCondition = resultado? valor1: valor2;
Exerccios

1. Altere o programa seguinte para usar atribuies compostas:


2. ArithmeticDemo classe { 3. 4. public static void main (String [] args) { 5. 6. int resultado = 1 + 2 / / resultado agora 3 7. System.out.println (resultado); 8. 9. resultado = resultado - 1; / result / agora 2 10. System.out.println (resultado); 11. 12. result = result * 2; / result / agora 4 13. System.out.println (resultado); 14. 15. resultado = resultado / 2; / result / agora 2 16. System.out.println (resultado); 17. 18. resultado = resultado + 8; / / result agora 10 19. result = result 7%; / / resultado agora 3 20. System.out.println (resultado); 21. } 22. } 23.

24. No programa seguinte, explicar por que o valor "6" impresso duas vezes em uma linha:
25. PrePostDemo classe { 26. public static void main (String [] args) { 27. int i = 3; 28. i + +; 29. System.out.println (i) / / "4" 30. + + I; 31. System.out.println (i) / / "5" 32. System.out.println (+ + i) / / "6" 33. System.out.println (i + +) / / "6" 34. System.out.println (i) / / "7" 35. } }

Respostas para Perguntas e Exerccios: Operadores


Respostas s perguntas

1. Considere o seguinte trecho de cdigo:


2. arrayOfInts [j]> arrayOfInts [j +1]

Pergunta: Quais os operadores que o cdigo contm? Resposta: > , +

3. Considere o seguinte trecho de cdigo:

4. int i = 10; 5. int n = i + + 5%;

a. Pergunta: Quais so os valores de i e n depois que o cdigo executado? Resposta: i 11, e n 0. b. Pergunta: Quais so os valores finais de i e n , se em vez de usar o operador de incremento postfix ( i + + ), voc usa a verso de prefixo ( + + i) )? Resposta: i 11, e n 1. 6. Pergunta: Para inverter o valor de um booleano , operador que voc usaria? Resposta: O operador de complemento lgico! "". 7. Pergunta : Qual o operador usado para comparar dois valores, = ou == ? Resposta: A == operador usado para comparao, e = usado para atribuio. 8. Pergunta: Explique a seguinte amostra de cdigo: result = someCondition? valor1:
valor2;

Resposta: Este cdigo deve ser lido como: "Se someCondition verdade , atribuir o valor de valor1 a resultar . Caso contrrio, atribuir o valor de valor2 a resultar . "
Exerccios

1. Altere o programa seguinte para usar atribuies compostas:


2. ArithmeticDemo classe { 3. 4. public static void main (String [] args) { 5. 6. int resultado = 1 + 2 / / resultado agora 3 7. System.out.println (resultado); 8. 9. resultado = resultado - 1; / result / agora 2 10. System.out.println (resultado); 11. 12. result = result * 2; / result / agora 4 13. System.out.println (resultado); 14. 15. resultado = resultado / 2; / result / agora 2 16. System.out.println (resultado); 17. 18. resultado = resultado + 8; / / result agora 10 19. result = result 7%; / / resultado agora 3 20. System.out.println (resultado); 21. 22. } 23. }

Aqui est uma soluo:


ArithmeticDemo classe { public static void main (String [] args) { int resultado = 3; System.out.println (resultado); resultado - = 1; / / resultado agora 2 System.out.println (resultado);

resultado * = 2; / / resultado agora 4 System.out.println (resultado); resultado / = 2; / result / agora 2 System.out.println (resultado); resultado + = 8; / / result agora 10 % resultado = 7; / / resultado agora 3 System.out.println (resultado); } }

24. No programa seguinte, explicar por que o valor "6" impresso duas vezes em uma linha:
25. PrePostDemo classe { 26. public static void main (String [] args) { 27. int i = 3; 28. i + +; 29. System.out.println (i) / / "4" 30. + + I; 31. System.out.println (i) / / "5" 32. System.out.println (+ + i) / / "6" 33. System.out.println (i + +) / / "6" 34. System.out.println (i) / / "7" 35. } 36. }

O cdigo System.out.println (+ + i); avalia a 6, porque a verso de prefixo + + avalia que o valor incrementado. A prxima linha, System.out.println (i + +); avaliada como o valor atual (6), e ento incrementa por um. Assim, "7" no so impressos at a prxima linha.

Expresses, declaraes e Blocos


Agora que voc compreende as variveis e operadores, hora de aprender sobre expresses e declaraes , e blocos . Os operadores podem ser usados em expresses de construo, que calculam os valores, as expresses so os principais componentes de declaraes; declaraes podem ser agrupadas em blocos.
Expresses

Uma expresso uma construo feita de variveis, operadores, e invocaes de mtodos, que so construdos de acordo com a sintaxe da linguagem, que resulta em um valor nico.Voc j viu exemplos de expresses, ilustrados em negrito abaixo:
int cadncia = 0 ; meuArray [0] = 100 ; System.out.println ( "Elemento 1 no ndice 0:" + meuArray [0] ); int resultado = 1 + 2 ; / / result agora 3 if ( valor1 == valor2 ) System.out.println ( "valor1 == valor2" );

O tipo de dados do valor retornado por uma expresso depende dos elementos utilizados na expresso. A expresso de cadncia = 0 retorna um int porque o operador de atribuio retorna

um valor do mesmo tipo de dados como seu operando esquerda, neste caso, a cadncia um int . Como voc pode ver em outras expresses, uma expresso pode retornar outros tipos de valores, bem como, tais como boolean ou string . A linguagem de programao Java permite construir expresses compostas de vrias expresses menores, desde que o tipo de dados exigida por uma parte da expresso corresponde ao tipo de dados do outro. Aqui est um exemplo de uma expresso composta:
1 * 2 * 3

Neste exemplo particular, a ordem em que a expresso avaliada no importante porque o resultado da multiplicao independente da ordem; o resultado sempre o mesmo, no importa em que ordem de aplicar as multiplicaes. No entanto, isso no verdade de todas as expresses. Por exemplo, a expresso seguinte d resultados diferentes, dependendo se realizar a adio ou a operao de diviso primeira:
x + y / 100 / / ambgua

Voc pode especificar exatamente como uma expresso ser avaliada usando parnteses equilibrada: (e). Por exemplo, para fazer a expresso inequvoca anterior, voc poderia escrever o seguinte:
(X + y) / 100 / / inequvoca, recomenda

Se voc no indicar explicitamente a ordem para as operaes a serem executadas, a ordem determinada pela precedncia atribuda aos operadores no uso dentro da expresso. Os operadores que tm uma maior precedncia so avaliados primeiro. Por exemplo, o operador de diviso tem uma precedncia maior do que o operador de adio. Portanto, as duas declaraes seguintes so equivalentes:
x + y / 100 x + (y / 100) / / inequvoca, recomendado

Ao escrever expresses compostas, ser explcito e indicar com parnteses que os operadores devem ser avaliados primeiro. Esta prtica torna o cdigo mais fcil de ler e manter.
Demonstraes

As afirmaes so equivalente a frases em lnguas naturais. Uma instruo forma uma unidade completa de execuo. Os seguintes tipos de expresses podem ser feitas em uma declarao que encerra a expresso com um ponto e vrgula ( ; ).

Expresses de atribuio Qualquer uso de + + ou Invocaes de mtodo Criao de expresses Object

Tais declaraes so chamados de declaraes de expresso . Aqui esto alguns exemplos de declaraes de expresso.
/ Cesso / declarao aValue = 8933.234; / / Incrementa declarao aValue + +; / Instruo de chamada / mtodo System.out.println ("Ol Mundo!"); Declarao de criao / objeto / Bicicleta myBike = new Bicicleta ();

Para alm das declaraes de expresso, h dois outros tipos de declaraes: declarao de declaraes e demonstrativos de controle de fluxo . Uma instruo de declaraodeclara uma varivel. Voc j viu muitos exemplos de instrues de declarao j:
/ Declarao / declarao dobrar aValue = 8933.234;

Finalmente, as declaraes de controle de fluxo regular a ordem na qual os comandos so executados. Voc vai aprender sobre as declaraes de controle de fluxo na prxima seo,Demonstrao dos Fluxos de Controle
Blocos

Um bloco um grupo de zero ou mais instrues entre chaves equilibradas e podem ser usados em qualquer lugar uma nica instruo permitido. O seguinte exemplo, BlockDemo , ilustra o uso de blocos:
BlockDemo classe { public static void main (String [] args) { condio boolean = true; if (condio) { / / comeam bloco 1 System.out.println ("Condio verdadeira."); } / bloco final / um else { / / comea o bloco 2 System.out.println ("Condio falsa."); } / bloco final / 2 } }

Perguntas e Exerccios: Expresses, Demonstraes e Blocos


Perguntas

1. 2. 3. 4.
5.

Os operadores podem ser usados na construo de ___, que calcular valores. As expresses so os principais componentes de ___. As declaraes podem ser agrupadas em ___. O trecho de cdigo a seguir um exemplo de uma expresso ___.
1 * 2 * 3

6. As afirmaes so equivalente a frases em lnguas naturais, mas em vez de terminar com um perodo, uma instruo termina com um ___. 7. Um bloco um grupo de zero ou mais instrues entre ___ equilibrada e pode ser usado em qualquer lugar uma nica instruo permitido.

Exerccios

Identificar os seguintes tipos de declaraes de expresso:


aValue = 8933.234; aValue + +; System.out.println ("Ol Mundo!"); Bicicleta myBike = new Bicicleta ();

Respostas para Perguntas e Exerccios: Expresses, Demonstraes e Blocos


Perguntas

1. 2. 3. 4.
5.

Os operadores podem ser utilizados na construo de expresses , que calcular valores. As expresses so os principais componentes de declaraes . As declaraes podem ser agrupadas em blocos . O trecho de cdigo a seguir um exemplo de um composto de expresso.
1 * 2 * 3

6. As afirmaes so equivalente a frases em lnguas naturais, mas em vez de terminar com um perodo, uma instruo termina com um ponto e vrgula . 7. Um bloco um grupo de zero ou mais declaraes equilibradas entre chaves e pode ser usado em qualquer lugar uma nica instruo permitido.
Exerccios

Identificar os seguintes tipos de declaraes de expresso:


aValue = 8933.234; declarao / cesso / aValue + + / / incremento declarao System.out.println ("Ol Mundo!"); instruo de chamada / / mtodo Bicicleta myBike = bicicleta nova (); declarao criao / objeto /

Demonstrao dos Fluxos de Controle


As demonstraes dentro de arquivos de origem so geralmente executados de cima para baixo, na ordem em que aparecem. demonstraes de fluxo de controle , no entanto, acabar com o fluxo de execuo, empregando a tomada de deciso, looping, e ramificao, permitindo que o seu programa para condicionalmente executar determinado blocos de cdigo. Esta seo descreve as declaraes de tomada de deciso ( if-then , if-then-else , mudar ), as declaraes de looping ( para , enquanto , ao mesmo tempo fazer- ), e as declaraes de ramificao ( quebrar , continuar , voltar ) suportados pelo Java linguagem de programao.

As Demonstraes if-then e if-then-else


O if-then Declarao

O if-then declarao a mais bsica de todas as declaraes de controle de fluxo. Ele diz que seu programa execute uma determinada seo de cdigo apenas se um determinado teste avalia a verdade . Por exemplo, a bicicleta pode permitir a classe dos traves para diminuir a

velocidade da bicicleta apenas se a bicicleta j est em movimento. Uma aplicao possvel do applyBrakes mtodo poderia ser como se segue:
applyBrakes (void) { / / A clusula "se": bicicleta deve estar se movendo if (isMoving) { / / A clusula "ento": diminuir a velocidade atual currentSpeed -; } }

Se este teste avalia a falsos (o que significa que a bicicleta no estiver em movimento) saltos, controle para o fim do if-then declarao. Alm disso, as chaves de abertura e encerramento so opcionais, desde que a clusula "ento" contm apenas uma instruo:
applyBrakes (void) { / / O mesmo que acima, mas sem as chaves if (isMoving) currentSpeed -; }

Decidir quando a omitir as chaves uma questo de gosto pessoal. Omitindo-los pode tornar o cdigo mais frgil. Se uma segunda declarao depois adicionada clusula "ento", um erro comum seria esquecer de adicionar as chaves recm necessrios. O compilador no pode pegar esse tipo de erro, voc s vai obter os resultados errados.
O if-then-else Declarao

O if-then-else declarao fornece um caminho secundrio de execuo quando uma clusula "se" avaliada como false . Voc pode usar um if-then-else declarao noapplyBrakes mtodo para tomar alguma ao se os freios so aplicados quando a bicicleta no estiver em movimento. Neste caso, a ao apenas mostrar uma mensagem de erro informando que a bicicleta j parou.
applyBrakes (void) { if (isMoving) { currentSpeed -; Else {} System.out.println ("A bicicleta tem" + "j parou!"); } }

O programa seguinte, IfElseDemo , atribui um grau com base no valor de um ndice de ensaio: um A para uma pontuao de 90% ou superior, um B para uma pontuao de 80% ou superior, e assim por diante.
IfElseDemo classe { public static void main (String [] args) { int testscore = 76; grau char; if (testscore> = 90) { grau = 'A'; } Else if (testscore> = 80) {

grau = 'B'; } Else if (testscore> = 70) { grau = 'C'; } Else if (testscore> = 60) { grau = 'D'; Else {} grau = 'F'; } System.out.println ("Grau =" grau +); } }

A sada do programa :
Grau = C

Voc deve ter notado que o valor de testscore pode satisfazer mais de uma expresso na instruo composta: 76> = 70 e 76> = 60 . No entanto, uma vez que uma condio satisfeita, as declaraes apropriadas so executadas (grau = 'C' ;) e as restantes condies no so avaliados.

A Declarao de interruptor
Ao contrrio de if-then e if-then-else declaraes, o interruptor de instruo pode ter um nmero de caminhos de execuo possveis. Um interruptor trabalha com asbyte , curtas , de char , e int tipos de dados primitivos. Ele tambm trabalha com tipos enumerados (discutido em Tipos Enum ), a seqncia de classe, e algumas classes especiais que envolvem certos tipos primitivos: Character , Byte , curto , e Integer (discutido em nmeros e strings ). O seguinte exemplo de cdigo, SwitchDemo , declara um int chamado ms cujo valor representa um ms. O cdigo exibe o nome do ms, com base no valor de meses , utilizando ointerruptor de instruo.
public class {SwitchDemo public static void main (String [] args) { int mes = 8; Cordas monthString; switch (ms) { case 1: monthString = "Janeiro"; quebrar; case 2: monthString = "Fevereiro"; quebrar; case 3: monthString = "Maro"; quebrar; case 4: monthString = "Abril"; quebrar; case 5: monthString = "Maio"; quebrar; case 6: monthString = "Junho"; quebrar; case 7: monthString = "Julho"; quebrar; case 8: monthString = "Agosto"; quebrar; case 9: monthString = "Setembro"; quebrar; caso 10: monthString = "Outubro"; quebrar;

caso 11: monthString = "Novembro"; quebrar; case 12: monthString = "Dezembro"; quebrar; default: monthString = "ms invlido"; quebrar; } System.out.println (monthString); } }

Neste caso, agosto impresso na sada padro. O corpo de um interruptor de instruo conhecido como um bloco de interruptor . Uma instruo no interruptor bloco pode ser marcado com um ou mais caso ou padroetiquetas. O interruptor de declarao avalia sua expresso, em seguida, executa todas as instrues que seguem a correspondncia caso rtulo. Voc tambm pode exibir o nome do ms com if-then-else declaraes:
int mes = 8; if (mes == 1) { System.out.println ("Janeiro"); } Else if (mes == 2) { System.out.println ("Fevereiro"); } ... / / E assim por diante

Decidir se deve usar if-then-else declaraes ou um interruptor afirmao baseada em leitura ea expresso que a declarao est testando. Um if-then-else declarao pode testar expresses com base em faixas de valores ou condies, enquanto um interruptor testes expresses declarao com base apenas em um nico inteiro, valor enumerado, ou de Cordas objeto. Outro ponto de interesse a quebra de declarao. Cada pausa declarao termina o fechamento interruptor comunicado. Fluxo de controle continua com a primeira declarao aps o interruptor de bloqueio. Os quebra demonstraes so necessrios porque sem eles, declaraes em interruptor blocos cair atravs : Todas as instrues aps a correspondncia caso rtulo so executados em sequncia, independentemente de a expresso de subsequentes caso rtulos, at uma quebra de instruo for encontrado. O programaSwitchDemoFallThrough mostra instrues em um interruptor de blocos que caem completamente. O programa exibe o ms correspondente ao nmero inteiro ms e os meses que se seguem no ano:
SwitchDemoFallThrough public class { public static void main (String args []) { <String> futureMonths java.util.ArrayList = novo <String> java.util.ArrayList (); int mes = 8; switch (ms) { case 1: futureMonths.add case 2: futureMonths.add case 3: futureMonths.add case 4: futureMonths.add ("Janeiro"); ("Fevereiro"); ("Maro"); ("Abril");

case case case case case caso caso case }

5: futureMonths.add ("Maio"); 6: futureMonths.add ("Junho"); 7: futureMonths.add ("Julho"); 8: futureMonths.add ("Agosto"); 9: futureMonths.add ("Setembro"); 10: futureMonths.add ("Outubro"); 11: futureMonths.add ("Novembro"); 12: futureMonths.add ("Dezembro"); quebrar; default: break; if (futureMonths.isEmpty ()) { System.out.println ("nmero do ms invlido"); Else {} para (MonthName String: futureMonths) { System.out.println (MonthName); } } } }

Esta a sada a partir do cdigo:


Agosto Setembro Outubro Novembro Dezembro

Tecnicamente, a ltima pausa no necessria porque o fluxo cai para fora do interruptor de declarao. Usando uma pausa recomendado para que a modificao do cdigo mais fcil e menos propenso a erros. O padro seo lida com todos os valores que no so explicitamente tratados por um dos casos sees. O seguinte exemplo de cdigo, SwitchDemo2 , mostra como uma declarao pode ter vrios casos de rtulos. O exemplo de cdigo calcula o nmero de dias em um determinado ms:
SwitchDemo2 classe { public static void main (String [] args) { int mes = 2; int ano = 2000; int numDays = 0; switch (ms) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: numDays = 31; quebrar; case 4: case 6: case 9: case 11: numDays = 30; quebrar; case 2: if (((% ano 4 == 0) && ! (% Ano 100 == 0)) | | (% Ano 400 == 0)) numDays = 29; outro numDays = 28; quebrar;

default: System.out.println ("ms invlido."); quebrar; } System.out.println ("Nmero de Dias =" + NumDays); } }

Esta a sada a partir do cdigo:


Nmero de dias = 29

Usando Seqncias em declaraes switch

Em Java SE 7 e posterior, voc pode usar uma corda objeto no interruptor expresso instruo. O exemplo seguinte cdigo, StringSwitchDemo , exibe o nmero do ms com base no valor da cadeia chamado meses :
public class {StringSwitchDemo getMonthNumber public static int (ms String) { int monthNumber = 0; if (mes == null) { voltar monthNumber; } interruptor (month.toLowerCase ()) { caso "janeiro": monthNumber = 1; quebrar; caso, "fevereiro": monthNumber = 2; quebrar; caso "marcha": monthNumber = 3; quebrar; caso "abril": monthNumber = 4; quebrar; caso "pode": monthNumber = 5; quebrar; caso "junho": monthNumber = 6; quebrar; caso "julho": monthNumber = 7; quebrar; caso, "agosto": monthNumber = 8; quebrar; caso "setembro": monthNumber = 9; quebrar; caso "outubro": monthNumber = 10; quebrar; caso "novembro": monthNumber = 11; quebrar; caso "dezembro":

monthNumber = 12; quebrar; default: monthNumber = 0; quebrar; } voltar monthNumber; } public static void main (String [] args) { Meses String = "Agosto"; int returnedMonthNumber = StringSwitchDemo.getMonthNumber (ms); if (returnedMonthNumber == 0) { System.out.println ("ms invlido"); Else {} System.out.println (returnedMonthNumber); } } }

A sada desse cdigo 8 . A cadeia no interruptor expresso comparada com as expresses associados a cada caso rtulo como se o String.Equals mtodo estavam a ser utilizados. Para que oStringSwitchDemo exemplo para aceitar qualquer meses, independentemente do caso, mes convertido em minsculas (com a toLowerCase mtodo), e todas as cordas associados com os casos as etiquetas so em letras minsculas. Nota : Este exemplo verifica se a expresso no interruptor declarao nula . Certifique-se que a expresso em qualquer interruptor declarao no nulo para evitar umNullPointerException de ser lanada.

O tempo e fazer ao mesmo tempo, Demonstraes


O tempo declarao continuamente executa um bloco de instrues enquanto uma determinada condio verdadeira . A sintaxe da linguagem pode ser expresso como:
while (expresso) { declarao (s) }

O tempo declarao avalia expresso , que deve retornar um boolean valor. Se a expresso for avaliada como verdadeira , o enquanto instruo executada a declarao (s) notempo do bloco. O tempo continua testando a declarao de expresso e executar o seu bloco at que a expresso avaliada como false . Usando o enquanto instruo para imprimir os valores de 1 a 10 pode ser realizado como no seguinte WhileDemo programa:
WhileDemo classe { public static void main (String [] args) { int count = 1; while (count <11) { System.out.println ("Count :" + Count);

count + +; } } }

Voc pode implementar um loop infinito usando o enquanto instruo da seguinte forma:
while (true) { / / Seu cdigo vai aqui }

A linguagem de programao Java tambm fornece uma do-enquanto afirmao, que pode ser expressa como se segue:
fazer { declarao (s) } While (expresso);

A diferena entre -enquanto que e enquanto que -enquanto que avalia a sua expresso na parte inferior da ala em vez do topo. Portanto, as instrues dentro do OD bloco so sempre executadas pelo menos uma vez, como mostrado no seguinte DoWhileDemo programa:
DoWhileDemo classe { public static void main (String [] args) { int count = 1; fazer { System.out.println ("Count :" + Count); count + +; } While (count <11); } }

A Declarao para
O para instruo fornece uma maneira compacta para repetir uma faixa de valores. Os programadores muitas vezes se referem a ele como o "loop para" por causa da maneira em que repetidamente faz um loop at uma determinada condio satisfeita. A forma geral da para declarao pode ser expressa da seguinte forma:
for ( inicializao ; resciso ; incremento {) declarao (es) }

Ao utilizar esta verso do de declarao, tenha em mente que:


A inicializao expresso inicializa o lao; executado uma vez, como o circuito comea. Quando a resciso expresso for avaliada como false , o loop termina. O incremento de expresso invocado aps cada iterao do loop, perfeitamente aceitvel para esta expresso para incrementar ou diminuir um valor.

O programa a seguir, ForDemo , usa a forma geral da para declarao para imprimir os nmeros 1 a 10 para a sada padro:

ForDemo classe { public static void main (String [] args) { for (int i = 1; i <11; i + +) { System.out.println ("Count :" + I); } } }

A sada deste programa :


Count Conde Conde Count Conde Count Conde Conde Conde Count : : : : : : : : : : 1 2 3 4 5 6 7 8 9 10

Observe como o cdigo declara uma varivel dentro da expresso de inicializao. O mbito da presente varivel estende-se desde a sua declarao para o fim do bloco de regulada pelapara instruo, para que possa ser utilizado nas expresses de terminao e de incremento tambm. Se a varivel que controla um por declarao no necessria fora do circuito, melhor declarar a varivel na expresso de inicializao. Os nomes i , j , e k so muitas vezes utilizados para controlar de loops; declarando-os dentro da expresso de inicializao limita a sua vida til e reduz os erros. As trs expresses da de lao so opcionais; um loop infinito pode ser criado como segue:
/ / Loop infinito para (;;) { / / Seu cdigo vai aqui }

O de declarao tambm tem outra forma projetada para iterao atravs Colees e matrizes Este formulrio por vezes referido como o melhor de declarao, e pode ser usado para fazer seus loops mais compacto e fcil de ler. Para demonstrar, considere a seguinte matriz, que contm os nmeros 1 a 10:
int [] = {nmeros 1,2,3,4,5,6,7,8,9,10};

O seguinte programa, EnhancedForDemo , usa o melhor para percorrer a matriz:


EnhancedForDemo classe { public static void main (String [] args) { int [] numbers = {1,2,3,4,5,6,7,8,9,10}; for (int item: nmeros) { System.out.println ("Count :" + Item); } } }

Neste exemplo, a varivel de ponto mantm o valor de corrente a partir da matriz de nmeros. A sada deste programa o mesmo como antes:
Count Conde Conde Count Conde Count Conde Conde Conde Count : : : : : : : : : : 1 2 3 4 5 6 7 8 9 10

Ns recomendamos o uso dessa forma de o para instruo em vez da forma geral, sempre que possvel.

Ramificao Demonstraes
A quebra
de

Declarao

A quebra de declarao tem duas formas: etiquetados e no etiquetados. Voc viu a forma no marcada, na discusso anterior do interruptor de declarao. Voc tambm pode usar um unlabeled pausa para terminar uma para , ao mesmo tempo , ou do-while loop, como mostrado no seguinte BreakDemo programa:
BreakDemo classe { public static void main (String [] args) { int [] = arrayOfInts {32, 87, 3, 589, 12, 1076, 2000, 8, 622, 127}; int SearchFor = 12; int i; boolean foundIt = false; for (i = 0; i <arrayOfInts.length; i + +) { if (arrayOfInts [i] == SearchFor) { foundIt = true; quebrar; } } if (foundIt) { System.out.println ("Encontrado" + + SearchFor "no ndice" + i); Else {} System.out.println (SearchFor + "no est na matriz"); } } }

Este programa procura o nmero 12 em uma matriz. A quebra de declarao, mostradas em negrito, termina a para loop quando esse valor for encontrado. Fluxo de controle, em seguida, transfere para a instruo aps o para loop. Sada deste programa :
Encontrado 12 no ndice 4

Um no marcado pausa declarao termina o interior interruptor , para , ao mesmo tempo , ou do-while declarao, mas um rtulo pausa termina uma instruo externa. O programa seguinte, BreakWithLabelDemo , semelhante ao programa anterior, mas usa aninhados para lacetes para pesquisar um valor em uma matriz bidimensional. Quando o valor for encontrado, uma marcada quebra termina o exterior para loop (identificado como "busca"):
BreakWithLabelDemo classe { public static void main (String [] args) { int [] [] = {arrayOfInts {32, 87, 3, 589}, {12, 1076, 2000, 8}, {622, 127, 77, 955} }; int SearchFor = 12; int i; Int J = 0; boolean foundIt = false; pesquisa: for (i = 0; i <arrayOfInts.length; i + +) { for (j = 0; j <arrayOfInts [i] comprimento.; j + +) { if (arrayOfInts [i] [j] == SearchFor) { foundIt = true; quebrar pesquisa; } } } if (foundIt) { System.out.println ("Encontrado" SearchFor + + "Em" + i + "," + j); Else {} System.out.println (SearchFor + "No est na matriz"); } } }

Esta a sada do programa.


Encontrado 12 a 1, 0

A quebra de declarao termina a instruo rotulada, mas no transfere o fluxo de controle para o rtulo. Fluxo de controle transferido para a instruo imediatamente aps a declarao rotulada (terminado).
O continue Declarao

O continue declarao pula a iterao atual de um para , ao mesmo tempo , ou do-while loop. A forma no marcada, salta para o final do corpo do lao mais interno e avalia obooleana expresso que controla o ciclo. O programa a seguir, ContinueDemo , os passos atravs de uma corda , contando as ocorrncias da letra "p". Se o personagem atual no ap, o continue declarao ignora o resto do circuito e segue para o prximo caractere. Se ele um "p", o programa incrementa a contagem de carta.

ContinueDemo classe { public static void main (String [] args) { Cordas Searchme = "Peter Piper pegou um" + "Peck de pimentas em conserva"; int max = searchMe.length (); int numPs = 0; for (int i = 0; i <max; i + +) { / / Interessado apenas em p de if (searchMe.charAt (i)! = 'p') continuar; / / P processo de numPs + +; } System.out.println ("Encontrado" + numPs + "p na cadeia."); } }

Aqui est a sada deste programa:


Encontrado 9 p na cadeia.

Para ver este efeito de forma mais clara, tente remover o continue declarao e recompilar. Quando voc executar o programa novamente, a contagem ser errado, dizendo que encontrou 35 p, em vez de 9. A rotulado continuar declarao pula a iterao atual de um loop externo marcado com o rtulo dado. O programa de exemplo a seguir, ContinueWithLabelDemo , usa loops aninhados para procurar uma substring dentro de outra seqncia. Dois loops aninhados so necessrios: um para iterar sobre a substring e uma para repetir a seqncia que est sendo pesquisada. O programa a seguir, ContinueWithLabelDemo , usa a forma rotulada de continuar a pular uma iterao no loop externo.
ContinueWithLabelDemo classe { public static void main (String [] args) { Cordas Searchme = "Procure por um substring em mim"; Substring String = "sub"; boolean foundIt = false; int max = searchMe.length () substring.length (); teste: for (int i = 0; i <= max; i + +) { int n = substring.length (); int j = i; int k = 0; while (n -! = 0) { if (searchMe.charAt (j + +) ! = Substring.charAt (k + +)) { continuar a testar; } } foundIt = true; quebrar teste; }

System.out.println (foundIt? "Encontrei": "no encontr-lo"); } }

Aqui a sada desse programa.


Encontrei

O retorno Declarao

A ltima das declaraes de ramificao o retorno comunicado. Os de retorno sai de instruo do mtodo atual, e fluxo de controle retorna para onde o mtodo foi chamado. Oretorno declarao tem duas formas: uma que retorna um valor, e que no faz. Para retornar um valor, basta colocar o valor (ou uma expresso que calcula o valor) aps o retornopalavra-chave.
retorno + + contar;

O tipo de dados do valor retornado deve corresponder ao tipo de valor de retorno do mtodo declarado. Quando um mtodo declarado nulo , use o formulrio de devoluo que no retorna um valor.
voltar;

As Classes e Objetos de aula ir cobrir tudo o que voc precisa saber sobre mtodos de escrita.

Resumo das Demonstraes de Fluxo de Controle


O if-then declarao a mais bsica de todas as declaraes de controle de fluxo. Ele diz que seu programa execute uma determinada seo de cdigo apenas se um determinado teste avalia a verdade . O if-then-else declarao fornece um caminho secundrio de execuo quando uma clusula "se" avaliada como false . Ao contrrio de if-then e if-then-else , o interruptor de declarao permite a qualquer nmero de caminhos de execuo possveis. O tempo e do-while declaraes continuamente executar um bloco de instrues enquanto uma determinada condio verdadeira . A diferena entre -enquanto que e enquanto que -enquanto que avalia a sua expresso na parte inferior da ala em vez do topo. Portanto, as declaraes dentro do do do bloco so sempre executados pelo menos uma vez. O para instruo fornece uma maneira compacta para repetir uma faixa de valores.Tem duas formas, uma das quais foi projetado para loop atravs de colees e matrizes.

Perguntas e Exerccios: Demonstrao de Fluxo de Controle


Perguntas

1. A demonstrao de fluxo de mais bsico de controle suportados pela linguagem de programao Java a declarao ___. 2. A declarao ___ permite a qualquer nmero de caminhos de execuo possveis. 3. A instruo ___ semelhante ao enquanto instruo, mas avalia a sua expresso no ___ do loop.

4. Como voc escreve um loop infinito usando o para declarao? 5. Como voc escreve um loop infinito usando o enquanto afirmao?
Exerccios

1. Considere o seguinte trecho de cdigo.


2. if (aNumber> = 0) 3. if (aNumber == 0) 4. System.out.println ("primeira string"); 5. mais System.out.println ("segunda corda"); 6. System.out.println ("terceira corda");

a. Qual a sada que voc acha que o cdigo ir produzir se aNumber 3? b. Escreva um programa de teste que contm o trecho de cdigo anterior; fazer aNumber 3. O que a sada do programa? o que voc previu? Explique por que a sada o que , em outras palavras, qual o fluxo de controle para o trecho de cdigo? c. Usando apenas espaos e quebras de linha, reformatar o trecho de cdigo para fazer o fluxo de controle fcil de entender. d. Use chaves, {e}, para esclarecer melhor o cdigo. Confira suas respostas

Respostas para Perguntas e Exerccios: Demonstrao de Fluxo de Controle


Respostas s perguntas

1. A demonstrao de fluxo de mais bsico de controle suportados pela linguagem de programao Java a if-then declarao. 2. O interruptor de declarao permite a qualquer nmero de caminhos de execuo possveis. 3. O fazer enquanto- instruo semelhante ao enquanto instruo, mas avalia a sua expresso na parte inferior do loop. 4. Pergunta: Como voc escreve um loop infinito usando o para declarao? Resposta:
para (;;) { }

5. Pergunta: Como voc escreve um loop infinito usando o enquanto afirmao? Resposta:
while (true) { }

Exerccios

1. Considere o seguinte trecho de cdigo.

2. if (aNumber> = 0) 3. if (aNumber == 0) 4. System.out.println ("primeira string"); 5. outro 6. System.out.println ("segunda corda"); 7. System.out.println ("terceira corda");

a. Exerccio: Qual a sada que voc acha que o cdigo ir produzir se aNumber 3? Soluo:
segunda corda terceira corda

b. Exerccio: Escrever um programa de teste que contm o trecho de cdigo anterior; fazer aNumber 3. O que a sada do programa? o que voc previu? Explique por que a sada o que . Em outras palavras, qual o fluxo de controle para o trecho de cdigo? Soluo: NestedIf
segunda corda terceira corda

3 maior do que ou igual a 0, de modo a execuo avana para o segundo se nota. O segundo se ensaio instruo de falha porque 3 no igual a 0. Assim, a pessoa executa clusula (uma vez que est ligado ao segundo , se declarao). Assim, segunda seqncia exibida. A final println completamente fora de qualquer caso declarao, por isso sempre executado, e, portanto, terceira corda sempre exibido. c. Exerccio: Usando apenas espaos e quebras de linha, reformatar o trecho de cdigo para fazer o fluxo de controle fcil de entender. Soluo:
if (aNumber> = 0) if (aNumber == 0) System.out.println ("primeira string"); outro System.out.println ("segunda corda"); System.out.println ("terceira corda");

d. Exerccio: Use chaves { e } de esclarecer ainda mais o cdigo e reduzir a possibilidade de erros futuros mantenedores do cdigo. Soluo:
if (aNumber> = 0) { if (aNumber == 0) { System.out.println ("primeira string"); Else {} System.out.println ("segunda corda"); } }

System.out.println ("terceira corda");

Resumo das Variveis


A linguagem de programao Java usa os dois "campos" e "Variveis", como parte de sua terminologia. Variveis de instncia (campos no-static) so nicos para cada instncia de uma classe. Variveis de classe (campos estticos) so campos declarados com a esttica modificador, h exatamente uma cpia de uma varivel de classe, independentemente de quantas vezes a classe foi instanciada. As variveis locais armazenar o estado temporrio dentro de um mtodo. Os parmetros so variveis que fornecem informaes adicionais para um mtodo, ambas as variveis locais e parmetros so sempre classificados como "variveis" (no "campos"). Ao nomear os seus campos ou variveis, existem regras e convenes que voc deve (ou deve) seguir. Os oito tipos de dados primitivos so: byte, short, int, float, long, double, boolean e char. O java.lang.String classe representa as cadeias de caracteres. O compilador ir atribuir um valor padro razovel para campos dos tipos acima, para as variveis locais, um valor padro nunca atribudo. Um literal a representao de cdigo fonte de um valor fixo. Uma matriz um objeto de recipiente que contm um nmero fixo de valores de um nico tipo. O comprimento de uma matriz estabelecida quando a matriz criada. Aps a criao, seu comprimento fixo. Anterior Trail Prximo

Tutorial - Robocode em Netbeans


Iniciado por pedrotuga , 29 Jun 2007 12:34

Por favor inicie sesso para responder 13 respostas a este tpico #1pedrotuga Stack Overflow


Publicado 29 de Junho de 2007 - 12:34 7133 mensagens Membro

J est o tutorial completo mas ainda podem ser limadas algumas arestas. Podem j seguir este tutorial. Dm feedback sobre os pequenos scripts no fim pois ainda no os testei. Este tutorial destina-se a quem joga robocode e pretende um ambiente de desenvolvimento mais expedito do que o editor que vem com o robocode. A grande vantagem o acesso a documentao em tempo real. O IDE utilizado o netbeans, este IDE distribuido com o kit de desenvolvimento Java da sun. Quem tiver um ambiente de java diferente pode fazer download do netbeans no site do

IDE: http://www.netbeans.org/index.html. Depois de concluido este tutorial, se tudo tiver corrido conforme previsto, o netbenas mostrar a documentao do robcode desta forma:

clicar na imagem para ver imagem aumentada 1.Abrir o netbeans e criar um novo projecto: File>newproject 2.Em categories escolher "general" e em projects escolher "java aplication" clicar em "next" 3.Escoher o nome para o projecto e a path. O nome do projecto ser a pasta onde o vosso robot ficar, ainda no o nome do robot, isso mais a frente. Nessa mesma janela escolher tambem a path, tem que ser a localizao da pasta de robots da vossa instalao do robocode. Por exemplo D:/robocode/robots no windows ou /home/eu/robocode/robots em linux. Ainda nessa janela, des-selecionar a checkbox que diz: "create main" class. A outra checkbox pode ficar selecionada ou nao, uma questo de preferencia. Se tm outro projecto a desenvolver no vosso IDE que usam com mais frequencia ento melhor no a selecionar. 4.clicar em "finish". O projecto aparecer na arvore de projectos. 5.Agora que est o projecto criado, vamos dizer-lhe onde estao as bibliotecas do robocode. clicar com o botao direito em "libraries" e escolher "add jar/folder".

De seguida navega-se at pasta do robocode, entra-se na subpasta "libs" e adicionam-se os tres jars que l esto: robocode.jar roborumble.rar e codesize.rar. Esto as bibliotecas do robocode no projecto prontas a ser usadas. Ja podemos compilar atravs do netbeans, mas ainda falta adicionar a documentao. 6.Ir ao menu Tools>library manager. Uma vez aberto o gestor de bibliotecas vamos criar uma biblioteca nova para alojar a documentao. Clicar en "new library". Em library type escolher qualquer coisa como "robolib", o

library typer pode ser mesmo "class library". 7.Esta a biblioteca criada, vamos adicionar-lhe a documentao. Ainda no library manager, clicamos na biblioteca que acabmos de criar ( deve estar listada esquerda como um "class library") e, em cada aba clicamos em "add jar/folder" e adicionamos os seguintes valores nas respectivas abas. classpath -> PATH_TO/robocode/libs sources -> PATH_TO/robocode/libs javadoc -> PATH_TO/robocode/javadoc Substituir PATH_TO pela path para a vossa instalao do robocode. 8.Na arvore do projecto que criamos inicialmente, clicamos com o botao direito em "libraries" no menu que aparece escolhemos "new library".

Aparece uma lista de todas as bibliotecas, selecionamos a biblioteca que acabmos de criar e clicamos em "add library". 9.Est quase, vamos criar um robot! Clicar com o botao direito sobre o n do nosso projecto e escolher new > empty java file. Na janela que aparecer insiram o nome do vosso robot e esto prontos para trabalhar nele! 10.J podemos escrever robs e compil-los, no entanto a pasta de destino dos nossos ficheiros ainda pouco prtica e quebra a restrio de comprimento nos nomes dos robots: para um robot ser reconhecido pelo robocode a path pode conter no mximo 12 caracteres. Para contornar este problema basta criar um pequenho script para copiar os ficheiros par a raz do projecto. Utilizadores do windows podem criar um pequeno batchfile, quem usa linux, macos ou outro sistema operativo baseado em unix pode criar um pequeno shellscript. Aqui vai o cdigo necessrio para por dentro desses scripts: windows batch file:
Cdigo :

copy -Y ./build/classes/packagename/*.class ./

salvar como .bat

shell script file:


Cdigo :

cp ./build/classes/packagename/*.class ./

salvar como .sh substituir "packagename" pelo nome do vosso package, aconselhado usar o mesmo package name para todos os robots para que este script os possa copiar todos. O script deve ser colocado na raz do projecto criado pelo netbeans e corrido cada vez que o robot compilado. Ter uma consola aberta s para correr este script no m ideia, uma vez que o vamos ter que fazer com frequencia. 11. S para finalizar fica uma nota a ter em ateno: apesar de estarmos a usar o netbeans no estamos a compilar um porjecto por completo. Esta tecnica usa as facilidade criadas pelo netbeans para o desenvolvimento de um projecto mas nunca chega a ser um projecto em si. como tal NUNCA devemos tentar compilar ou correr o projecto em si, se o fizermos receberemos uma mensagem de erro. Em vez disso cada robot deve ser compilado individualmente premindo a tecla F9 ou clicando com o botao direito do rato e escolhendo a opo "compile file". De notar tambem que este projecto no tem main class. Um robot no uma aplicao. A aplicao o robocode em si, mas isso no compete ao jogador mexer.

Search:

Choose page language

HOME / Docs & Support

Ajuda para codificao no Editor Java no NetBeans IDE

O propsito do ambiente de desenvolvimento integrado (IDE) o de maximizar a prod recursos teis para ajuda na codificao, opes de personalizao, e capacidades de n Assista o screencast Edio do cdigo Java no NetBeans IDE para aprender a usar os re

Contedo

Concluso inteligente de cdigo Gerenciando importaes Gerando cdigo

Usando modelos de cdigo Trabalhando com o Javadoc Usando dicas Recursos do editor geral Colorao e realces semnticos Navegao Apndice A: cones na janela Concluso de cdigo Software ou recurso NetBeans IDE Verso necessria verso 6.9 ou posterior

Para concluir este tutorial, voc precisa do software e dos recursos apresenta

Java Development Kit (JDK) verso 6

Concluso inteligente de cdigo


Chamando a concluso de cdigo

O Editor Java no NetBeans ajuda a completar com rapidez e gerar cdigo atravs do re preencher o cdigo faltantes, examinar as opes disponveis no contexto de seu aplica

Pressione Ctlr-Espao (ou principal) para abrir a caixa digitam a lista de sugestes esto importadas em seu ar pacote java.lang. Para personalizar as configu Ferramentas > Opes > Ed Por exemplo, voc pode def automaticamente ou somen cdigo, selecione a caixa de para chamar automaticame determinados caracteres. O seus prprios caracteres. Para adicionar caracteres qu selecione Java na lista susp campo Acionadores autom de cdigo aparecer cada ve Quando a caixa de seleo J cdigo estiver desabilitada, vez que precisar usar a con

Sugestes inteligentes no topo

No NetBeans IDE, a conc significa que as sugeste de seu cdigo so exibida concluso de cdigo. No exemplo na esquerda construtor LinkedHashM Se as sugestes "intelige pressione Ctlr-Espao

Completando palavras-chave

Use a concluso de cdig chave em seu cdigo. O e chave mais relevantes. No exemplo na esquerda classe JPanel. Voc pod chave extends a partir d

Sugerindo nomes para variveis e campos

Quando voc est adicion concluso de cdigo (Ctl com seu tipo. Digite um prefixo para o o nome que deseja usar

Sugerindo parmetros

O editor adivinha nos par exibe as sugestes em um Por exemplo, quando voc de cdigo que tem um ou argumento e exibe uma d este argumento. Para mo teclas Tab ouEnter. Voc pode chamar as dic pressionar Ctlr-P (ou F qualquer momento.

Concluso de prefixo comum

Voc pode usar a tecla Tab usados e sugestes nicas Para verificar como funcion

1. Digite System.out. campos e mtodos qu relacionadas com "imp

2. Pressione a tecla Tab

Voc pode continuar e ser adicionado.

Na janela de concluso de cdigo, so usados cones para distinguir diferente membros


superior

Gerenciando importaes

H diversas maneiras de trabalhar com instrues importadas. O Editor Java do IDE ve importadas ou instrues importadas no utilizadas so detectadas. Quando uma classe noerro na margem esque denominada como a mar se a importao faltante criada no pacote atual. Enquanto estiver digitand > Corrigir importaes, n faltantes de uma s vez. Pressione Alt-Shift-I tipo no qual o cursor est

Quando voc seleciona u Editor adiciona automatic portanto, no preciso s

Se houver instrues imp a marca de aviso na m uma importao no utili Editor, as importaes n seo Colorao semnti Para rapidamente ver se faltantes, observe as linh marcam as importaes f

Gerando cdigo
Usando a caixa de dilogo Gerao de cdigo

Ao trabalhar no Editor Java, voc pode gerar partes de cdigo de duas maneiras: usan simples de gerao automtica de cdigo.

Pressione Alt-Insert (ou parte do Editor para inseri cdigo. A lista sugerida a No exemplo na esquerda, Sample. Pressione Alt-In cdigo, e especifique os ca Editor ir gerar o construto No Editor Java do IDE, p construtores e mtodos in propriedades, e mais.

Usando a concluso de cdigo

Voc tambm pode gerar c Neste exemplo, usamos a mostrar como voc pode g cdigo. Pressione Ctrl-Espao para o seguinte item:Sample(S Editor ir gerar um constru Na janela de concluso de automaticamente gerados Para obter mais explicae o Apndice A.

Modelos de cdigo
Usando modelos de cdigo

Um modelo de cdigo uma parte predefinida de cdigo que tem uma abreviao asso Os modelos de cdigo so cdigo. Voc pode adotar um dos

Selecione um modelo a parti ou

Digite a abreviatura para est modelo (por padro,Tab).

No modelo expandido, as p Use a tecla Tab para passa

Adicionando ou editando modelos de cdigo

Para personalizar os mode

1. Escolha Ferramentas >

2. Na lista suspensa Idio criar um modelo de c exibida.

3. Use os botes Novo e Para editar um modelo campo Texto expandid

4. Escolha a tecla que se Tab.

Consulte este documento p novos Modelos de cdigo. Consulte tambm Modelos

incio

Trabalhando com o Javadoc


Use os seguintes recursos que facilitam trabalhar com o Javadoc para seu cdigo.

Exibindo o Javadoc
Coloque o cursor em um

escolha Fonte > Most

elemento exibido em u No menu principal do IDE a janela Javadoc, na qua para a localizao de seu

Criando Javadoc Stubs

Coloque o cursor sobre u digite "/**", e pressione O IDE cria uma estrutura preenchido com algum co voc ver imediatamente

Usando dicas do Javadoc

O IDE exibe dicas quando Javadoc so necessrios. Clique no cone de bulbo erros do Javadoc. Caso no queira ver as d Ferramentas >Opes >E Javadoc na lista de dicas

Usando a concluso de cdigo para identificadores Javadoc

A concluso de cdigo es Digite o smbolo "@" e es seja aberta (dependendo pressionar Ctlr-Espao

Gerando o Javadoc

Para gerar o Javadoc par Gerar Javadoc (ou clique e escolha Gerar Javadoc) janela separada do naveg No exemplo esquerda, comando Gerar Javadoc. tambm so exibidos nes Para personalizar as op direito do mouse no proje Documentao sob a cate Java). Para obter informa boto Ajuda nesta janela

Analisando Javadoc

Para identificar os l comentrios Javado possvel usar a ferr Editor Java. Para analisar e corr

1. Selecione um escolha Ferram A janela Analis comentrios Ja

2. Selecione uma corrigir o Java

3. Clique em Exa

Abaixo para ad se voc selecio agora deseja r

Usando dicas
Usando dicas para corrigir o cdigo

Enquanto voc est digitando, o Editor Java verifica seu cdigo e fornece sugestes de disponveis no Editor e como personaliz-las.

Dicas de personalizao

Circundar com...

Recursos do editor geral


Formatando o cdigo

Inserindo chaves, colchetes e aspas de realce

Dobramento de cdigo

Configurando atalhos do teclado

Colorao e realces semnticos

O Editor Java do IDE mostra elementos de cdigo em cores distintas, com base na sem da colorao, o Editor Java reala elementos similares com uma determinada cor de pl combinao com linhas de erro, fornece uma rpida viso geral de onde os locais real

Personalizao de cores

Exemplo de colorao

Usando realces

Navegao
Linhas de erro

O Editor Java fornece diversas maneiras para poder navegar atravs do cdigo. Consul

As linhas de erro na margem direita do Editor fornecem uma viso geral rpida de todo linha de erro representa todo um arquivo, no apenas a parte que est no momento ex efetuar rolagem no arquivo inteiro. Clique em uma linha de erro para saltar para a linha qual a marca se refere.

Navegando a partir do editor. Ir para...

Pulando para ltima edioSaltando para ltima edio

Alternando entre arquivos

Usando indicadores

Usando o navegadorUsando o navegador

Envie-nos seus comentrios

Consulte tambm

Screencast: Editando cdigo Java no NetBeans IDE Carto de atalhos de teclado Carto de atalhos do NetBeans IDE (download)

Apndice A: cones na janela Concluso de cdigo

cone Significado Tipo de anotao Classe Pacote Tipo de enum Modelo de cdigo Construtor

Variantes (se houver)

Significado

Novo construtor (gerar) Construtor protegido Construtor privado Pacote de construtor privado

Campo

Campo protegido Campo privado Campo do construtor privado

Campo esttico

Campo esttico protegido Campo esttico privado Campo esttico do campo privado

Interface Palavra-chave Java Mtodo Mtodo protegido Mtodo privado Mtodo do pacote privado Mtodo esttico Mtodo esttico protegido Mtodo esttico privado Mtodo esttico do pacote privado

Varivel local Atributo

SiteMap

About Us

Contact

Legal & Licences

Refatorao com Inspecionar e Transformar no editor Java do NetBeans IDE


O editor Java do NetBeans IDE 7.1 apresenta um novo recurso de Inspetor e Transformar, que a ferramenta Refatorao para executar diversas inspees e transformaes de uma s vez em todos os escopos de arquivos selecionados. Ele tambm permite que um usurio defina uma inspeo personalizada. Neste tutorial, voc aprender a executar uma reviso de cdigo usando inspees com refatorao e um conjunto predefinido de inspees, gerenciar configuraes e criar inspees personalizadas.

Contedo

o o

Configurando o ambiente do tutorial Executando inspees Usando configuraes Converter para JDK 7 Organizar importaes Gerenciando inspees personalizadas Resumo Consulte tambm

Requisitos
Para concluir este tutorial, voc precisa dos seguintes recursos e softwares. Software ou recurso NetBeans IDE Verso necessria Verso 7.1

Java Development Kit (JDK) Verso 6 e superior

Configurando o ambiente do tutorial


Alm do software necessrio acima listado, voc precisa descompactar o arquivo InspectTransform.zip na sua pasta de projeto do NetBeans e abri-lo no NetBeans IDE como segue:

Executando inspees
A opo Inspeo nica na caixa de dilogo Inspecionar e transformar (Refatorar > Inspecionar transformar) oferece uma ampla variedade de inspees relativas a determinadas transformaes de refatorao. A lista completa de tias operaes est disponvel na caixa de dilogo Gerenciar inspees aps clicar no boto Procurar a direita da Inspeo nica.

O campo Pesquisar permite verificar se uma inspeo necessria est disponvel usando uma pesquisa por palavrachave. Por exemplo, h diversas inspees encontradas quando operator pesquisado por.

Cada inspeo fornecida com uma descrio disponvel no campo Descrio da caixa de dilogo Gerenciar inspees ou quando uma inspeo est sendo selecionada na lista suspensa Inspeo nica mostrada na captura de tela abaixo.

Para executar uma inspeo a aplicar uma inspeo existente: 1. Na janela Projetos, selecione o arquivo Import.java. 2. 3. Escolha Refatorar > Inspecionar e transformar no menu do IDE. Na caixa de dilogo Inspecionar e transformar, selecione a opo Inspeo nica e escolha a inspeo Atribuio substituvel pela atribuio do operador. Clique em Inspecionar. As alteraes de refatorao sugeridas so exibidas no painel de visualizao.

4.

5.

Clique em Efetuar a refatorao para aplicar as alteraes, se necessrio. Clique aqui para visualizar em tela cheia; Ctrl+Clique para download (3.2 MB). incio

Usando configuraes
Um conjunto de refatoraes agrupadas constituem a configurao que pode ser executada em seu escopo de interesse, por exemplo, uma classe ou diversas classes, pacotes ou projetos. O IDE oferece as seguintes duas configuraes predefinidas:

Converter para JDK 7 Organizar importaes

Converter para JDK 7


A configurao Converter para JDK 7 disponvel no IDE, por padro incorpora tais operaes de refatorao como o uso do operador diamante, tentar com converso de recursos, uso de multicatch e trocar para aplicativos String.

Nota: A lista de refatoraes na configurao pode ser modificada na lista Inspees da caixa de dilogo Gerenciar inspees, ao selecionar a cancelar a seleo de itens sob os ns JDK 1.5 e posteriores. Para executar e aplicar o padro de configuraoConverter para JDK 7: 1. Na janela Projetos, selecione o arquivo Import.java.

2. Escolha Refatorar > Inspecionar e transformar no menu do IDE. 3. Na caixa de dilogo Inspecionar e transformar, selecione a opo Configurao e escolha o conjunto de inspees de Converter para JDK 7. 4. Clique em Inspecionar. As alteraes que convertem o cdigo a sintaxe do JDK 7, so exibidas no painel Visualizar.

5. Clique em Efetuar a refatorao para aplicar as alteraes, se necessrio.

Organizar importaes
A configurao Organizar importaes permite inspecionar a forma como esto organizadas as declaraes de importao e refatorar o cdigo, caso desejado. Por padro, ela inclui uma inspeo nica que verifica que as declaraes de importao correspondem as regras de estilo do cdigo especificado. Nota: Para configurar as regras de estilo do cdigo para declaraes de importao: 1. Escolha Ferramentas > Opes > > Editor > Formatando, na barra de ferramentas principal do IDE.

2. Selecione Java na lista suspensa Linguagens. 3. Selecione Importaes na lista suspensa Categoria. 4. Especifique as opes disponveis como necessrio. 5. Clique em OK para salvar suas edies.

Para executar e aplicar o padroOrganizar importaesconfigurao: 1. Na janela Projetos, selecione o arquivo Import.java. 2. Escolha Refatorar > Inspecionar e transformar no menu do IDE. 3. Na caixa de dilogo Inspecionar e transformar, selecione a opo Configurao e escolha o item Organizar importaes. 4. Clique em Inspecionar. O painel Visualizar exibe duas ocorrncias propostas para a seo Importar no arquivo Imports.java, para torn-lo alinhado com as regras de estilo de cdigo especificadas.

5. Clique em Efetuar a refatorao para aplicar as alteraes, se necessrio.


Clique aqui para visualizar em tela cheia; Ctrl+Clique para download (5.2 MB).

incio

Gerenciando inspees personalizadas


Uma inspeo personalizada pode ser criada para instruir o IDE sobre quais estruturas de cdigo devem ser encontradas e como transform-las. Nota: Para evitar de adicionar uma inspeo duplicada no IDE, escolha Refatorar > Inspecionar e transformar a partir do menu principal, clique em Gerenciar ou Procurar e, na caixa de dilogo Gerenciar inspees, use o campo Pesquisar para procurar pela inspeo necessria antes de criar uma nova inspeo. Para criar uma inspeo personalizada:
1. Escolha Refatorar > Inspecionar e transformar no menu do IDE. 2. Na caixa de dilogo Inspecionar e transformar, clique em Gerenciar ou Procurar. 3. Na caixa de dilogo Gerenciar inspees, clique em Nova. Um n Personalizada > Inspeo criado na lista Inspees.

4. (Opcional) Clique com o boto direito do mouse em Inspecionar, escolha Renomear no menu suspenso, especifique o nome necessrio para sua inspeo personalizada (por exemplo, MyCustomInspection) e pressione Enter. 5. Clique em Editar script. A rea de texto Script exibida.

6. Digite a descrio e o cdigo da inspeo na rea de texto Script ou clique em Abrir no Editor e especifique o mesmo no arquivo MyCustomInspection.hint.

7. Clique em Salvar abaixo da rea de texto Script ou pressione Ctrl-S no Editor para salvar suas edies.

8. Clique em OK para fechar a caixa de dilogo Gerenciar inspees ou feche o arquivo MyCustomInspection.hint no Editor. Sua inspeo personalizada est feita e pronta para ser aplicada.

Para executar a inspeo personalizada que voc criou: 1. Escolha Refatorar > Inspecionar e transformar no menu do IDE. 2. Na lista Inspees da caixa de dilogo Inspecionar e transformar, especifique um arquivo, pacote ou projetos a serem inspecionados. Alternativamente, clique no boto na direita para abrir a caixa de dilogo Escopo personalizado, para especificar o cdigo personalizado a ser inspecionado. 3. Selecione a opo Inspeo nica e escolha a inspeo MyCustomInspection.

4. Clique em Inspecionar. As alteraes de refatorao sugeridas so exibidas no painel de visualizao. 5. Clique em Efetuar a refatorao para aplicar as alteraes, se necessrio.
Clique aqui para visualizar em tela cheia; Ctrl+Clique para download (1.7 MB).

incio

Resumo
Este tutorial cobre os usos mais frequentes do recurso Inspecionar e transformar. Observe que com a funcionalidade Inspecionar e Transformar, voc tambm pode executar a refatorao personalizada no escopo do projeto, ou aplicar determinadas configuraes de refatorao diversos projetos abertos no IDE, etc..

Importando projetos do Eclipse para o NetBeans IDE


Contedo

Assistente de importao de projetos do Eclipse Como funciona o Assistente de importao Importando e configurando projetos Construo e execuo de um projeto Arquivos de projetos do NetBeans Consideraes sobre o controle de verso Ressincronizando um projeto Resolvendo problemas de importao Para concluir este tutorial, voc precisa dos seguintes recursos e softwares. Software ou recurso NetBeans IDE Verso necessria verso 6.9 ou posterior

Java Development Kit (JDK) verso 6 ou 7

Assistente de importao de projetos do Eclipse


Um suporte aprimorado para a importao de projetos do Eclipse est disponvel no NetBeans IDE. O assistente Importar projeto do Eclipse permite que voc use o NetBeans para trabalhar com projetos de rea de trabalho Java e de aplicaes web criados no Eclipse e MyEclipse. Aps criar um projeto NetBeans a partir de um projeto Eclipse, voc pode trabalhar das seguintes maneiras:

Usar o NetBeans em um projeto de equipe em que outros desenvolvedores usem o Eclipse. Alternar entre o NetBeans e o Eclipse em um projeto. Experimente o NetBeans em um projeto existente que tenha sido criado no Eclipse. incio

Como funciona o Assistente de importao


Quando voc importa um projeto, o IDE analisa os metadados do projeto Eclipse e cria um projeto NetBeans com base nesses metadados. A importao do projeto no impe alteraes na estrutura do projeto Eclipse, portanto isso no interfere no modo em que o projeto funciona no Eclipse. Depois de ter importado o projeto, voc pode usar um dos IDEs do NetBeans e Eclipse, ou ambos, para editar, construir, executar, depurar e criar o perfil do projeto. Se voc fizer uma alterao de configurao no projeto Eclipse, voc pode sincronizar o projeto NetBeans novamente. Isso permite que voc trabalhe em projetos no NetBeans mesmo se todos em sua equipe estiverem trabalhand com o Eclipse. O caminho de construo que voc define no Eclipse continua sendo o caminho de construo mestre do projeto. incio

Importando e configurando projetos


Para importar um projeto Eclipse no NetBeans: 1. Certifique-se de que voc tenha uma cpia do projeto que deseja importar para seu sistema. Normalmente, esse projeto j estaria em um espao de trabalho do Eclipse em seu sistema. 2. 3. Escolha Arquivo > Importar projeto > Projeto Eclipse. Na pgina Localizao do espao de trabalho do assistente, selecione o boto de opo Importar projetos para o espao de trabalho e, em seguida, especifique a localizao do espao de

trabalho.

4.

Na pgina Projetos a importar, selecione os projetos que voc deseja importar. Em seguida, selecione uma das seguintes opes de armazenamento dos arquivos do projeto NetBeans:

o o

Armazenar dados do projeto NetBeans nas pastas do projeto Eclipse.O NetBeans adiciona pastas e arquivos na pasta de nvel superior do projeto original. Criar projetos NetBeans importados em um local separado. O NetBeans usa os cdigos-fonte e bibliotecas na pasta do projeto Eclipse original, mas cria uma pasta separada para armazenar os metadados do projeto NetBeans e criar sadas. Normalmente, melhor armazenar os dados do projeto NetBeans dentro das pastas do projeto Eclipse. Na maioria dos casos, isso significa que os metadados do projeto NetBeans iro se referir a cdigos-fonte e bibliotecas com os mesmos caminhos que so usados pelos metadados do Eclipse. Portanto, a extrao do projeto de um sistema de controle de verses em mquinas diferentes deve resultar em comportamento similar, tanto no NetBeans quanto no Eclipse. Veja Arquivos do projeto NetBeans a seguir para obter uma relao dos arquivos e pastas criados pelo NetBeans.

5.

Na pgina Servidores, registre todos os servidores que seu projeto precisa com o IDE NetBeans. (Essa pgina no exibida se voc no estiver importando aplicativos Web.)

Depois de ter concludo o assistente, as caixas de dilogo a seguir devem ser exibidas:

Problemas de importao. Esse dilogo oferece informaes sobre as discrepncias entre a estrutura do projeto no Eclipse e no NetBeans e destaca as aes que voc pode ter que tomar para corrigir as discrepncias. Voc pode copiar as informaes obtidas desse dilogo e col-las em outro lugar para consultar posteriormente. Na maioria dos casos, voc usa a caixa de dilogo Propriedades do projeto para resolver esses problemas. Veja Resolvendo problemas de importao para obter um guia para a soluo dos problemas mais comuns.

Resolver problemas de referncia. Essa caixa de dilogo alerta voc sobre um problema de referncia especfico com uma das bibliotecas de seu projeto. Voc pode solucionar esse problema depois de fechar a caixa de dilogo clicando com o boto direito do mouse no n do projeot e escolhendo Resolver problemas de referncias.

Resolver servidor ausente. Essa caixa de dilogo alerta voc de que o projeto no foi capaz de encontrar um servidor necessrio. Voc pode solucionar esse problema depois de fechar a caixa de dilogo clicando com o boto direito do mouse no n do projeto e escolhendo Resolver servidor ausente.

Depois de ter concludo o assistente e ter fechado algumas das caixas de dilogo informativas mostradas acima, os ns dos projetos sero exibidos na janela Projetos.

Se houver referncias nos metadados de seu projeto sobre servidores ou outros recursos que o NetBeans no consegue resolver, o n do projeto ser exibido em vermelho. Voc pode resolver essas referncias imediatamente clicando com o boto direito do mouse no n do projeto e escolhendo Resolver problemas de referncia e Resolver servidor ausente.

Para outros tipos de ajustes na configurao do projeto, voc usa a caixa de dilogo Propriedades do projeto. Abra a caixa de dilogo Propriedades do projeto clicando com o boto direito do mouse no n do projeto e escolhendo Propriedades. Para obter mais informaes sobre a configurao de seu projeto, veja Configurando o classpath e outras configuraes do projeto no guia Criando, importando e configurando projetos Java. incio

Compilando e executando um projeto


Depois de ter importado o projeto no NetBeans, voc pode construir e executar o projeto. Todos os artefatos criados a partir dos comandos construir e executar do NetBeans so criados nas pastas build e dist. O NetBeans no

sobrescreve a sada criada a partir de aes construir do Eclipse. Se o projeto Eclipse j tiver pastas build e dist, o projeto NetBeans cria pastas chamadas nbbuild e nbdist e as utiliza para as sadas do comando construir. A seguir, alguns dos comandos construir e executar disponveis no menu Executar:

Executar projeto. Testa a execuo do aplicativo no IDE. Limpar e construir projeto. Exclui o contedo das pastas build (ou nbbuild) e dist (ou nbdist) e reconstri todas as sadas do projeto. Usa o script de construo do NetBeans. Similar ao comando Limpar no Eclipse. Limpar. Exclui o contedo das pastas nbbuild e nbdist. Construir. Reconstri as sadas do projeto. Se o recurso Compilar ao salvar estiver habilitado, o comando Construir desabilitado. Veja a seo Compilar ao salvar do guia Criando, importando e configurando projetos Java. Para obter mais informaes sobre a construo e execuo de seu aplicativo, bem como sobre a personalizao do processo de construo, veja Criando, importando e configurando projetos Java. incio

Arquivos do projeto NetBeans

Depois de ter importado o projeto, voc encontrar a pasta e os arquivos a seguir em seu sistema: Arquivo build.xml ou arquivo nb-build.xml. O script de construo principal do NetBeans para o projeto. Voc pode personalizar esse script de acordo com as necessidades de seu projeto. Por padro, esse arquivo chamado de build.xml. Se esse arquivo j existir na pasta do projeto, o script chamado de nb-build.xml.

Pasta nbproject. Contm a maioria dos metadados do projeto NetBeans, incluindo recursos que so chamados pelo script de construo principal do NetBeans. Se voc marcar essa pasta e o arquivo build.xml ou nb-build.xml em seu sistema de controle de verso, outros usurios podero abrir o projeto no NetBeans. Essa pasta tambm contm a pastaprivate, que contm dados especficos de seu sistema. Essa pasta no deve ser copiada para o sistema de controle de verso, j que seu contedo ir variar entre os usurios. VejaConsideraes sobre o controle de verso a seguir.

Pasta nbbuild. Quando voc criar ou executar seu projeto no NetBeans, os cdigos-fonte sero compilados nessa pasta. Pasta nbdist. Quando voc constri seu projeto no NetBeans, as sadas distribuveis do projeto so craidas e colocadas nessa pasta. Tais sadas podem ser arquivos JAR e arquivos WAR. incio

Consideraes sobre o controle de verso


Se o projeto foi copiado de um sistema de controle de de verso, as pastas build (ou nbbuild), dist (ou nbdist) e nbproject/private no devem ser copiadas para esse sistema de controle de verso. Se o projeto estiver sob os sistemas de controle de verso CVS, Subversion ou Mercurial, os arquivos "ignorar" apropriados so criados ou atualizados para esses diretrios quando o projeto importado. Embora a pasta nbproject/private deva ser ignorada, a pasta nbproject deve ser copiada para o sistema de controle de verso. A pasta nbproject contm metadados do projeto que permitem que outros usurios abram o projeto no NetBeans sem ter que importar o projeto primeiro. incio

Ressincronizando um projeto
O importador do projeto tem recursos de sincronizao. Se o classpath no Eclipse tiver sido alterado desde que foi importado inicialmente, voc pode usar o recurso Sincronizar projetos do Eclipse novamente para atualizar o classpath no projeto NetBeans correspondente. A ressincronizao do projeto unidirecional, de projetos Ecilpse para projetos NetBeans. Se voc fizer alteraes na estrutura do projeto no NetBeans, essas alteraes no sero propagadas para o projeto Eclipse com o recurso de ressincronizao. Se voc pretende manter tanto o projeto Eclipse quanto o NetBeans, use o projeto Eclipse como projeto "mestre". O IDe tambm ressincroniza os projetos automaticamente se as alteraes na configurao do Eclipse forem inequvocas e no exigirem sua interveno. Essa ressincronizao automtica ocorre logo depois que voc abre o projeto. Se a ressincronizao exigir sua interveno, voc precisa ressincronizar manualmente o projeto.

Para sincronizar novamente de modo manual os projetos NetBeans com projetos Eclipse:

Escolha Arquivo > Importar projeto > Ressincronizar projetos Eclipse. Observaes: quando voc ressincronizar um projeto, a ressincronizao realizada em todos os projetos que voc importou do espao de trabalho. incio

Resolvendo problemas de importao


Quando voc importa um projeto no NetBeans, podem haver algumas coisas que no so automaticamente resolvidas no NetBeans IDE. Para alguns desses problemas, um item do menu, como Resolver problema de servidor ausente, exibido no menu de contexto do projeto. Outros problemas podem ser resolvidos na caixa de dilogo Propriedades do projeto referente ao projeto importado no NetBeans IDE. Eis uma lista de problemas de importao comuns e suas solues. Mensagem do problema Soluo Clique com o boto direito do mouse no n do projeto e escolha Resolver problema de servidor ausente Resolver problema de servidor ausente. Em seguida, navegue at o arquivo ou pasta que contm o servidor. Clique com o boto direito do mouse no n do projeto e escolha Resolver problema de referncia Resolver problema de referncia. Em seguida, navegue at o arquivo ou pasta que contm o recurso que mencionado no projeto. A plataforma Eclipse para o projeto ProjectName no pode ser usada. Ela um JRE e o projeto NetBeans requer um JDK. O NetBeans usar a plataforma padro. O projeto Eclipse ProjecName afirma usar o JDK a partir do diretrio "{1}". Mas esse diretrio no existe. O NetBeans usar a plataforma padro.

Caso queira alterar a plataforma que o NetBeans usa para o projeto, escolha Ferramentas > Plataformas e especifique uma plataforma diferente.

Caso queira alterar a plataforma que o NetBeans usa para o projeto, escolha Ferramentas > Plataformas e especifique uma plataforma diferente. No NetBeans, incluses e excluses so declaradas em um local para todo o projeto. Para verificar as incluses e excluses no projeto NetBeans, clique com o boto direito do mouse no n do projeto e, na janela Projetos, escolha Propriedades. Na caixa de dilogo Propriedades do projeto, selecione a aba Cdigos-fonte e, em seguida, clique no boto Incluses/excluses. Voc pode abrir o arquivo de registro do IDE escolhendo Visualizar > Registro do IDE. Voc pode importar apenas os seguintes tipos de projeto Eclipse: Projeto Java, Projeto Java de um arquivo Ant existente, Web esttica, Web dinmica e Projeto JPA. incio

O NetBeans no oferece suporte a incluses/excluses de cdigo-fonte por raiz de cdigo-fonte como o Eclipse. Elas foram mescladas e recomendvel que voc as verifique no painel Cdigo-fonte das propriedades do projeto.

Falha na importao devido a .... Mais detalhes podem ser encontrados no arquivo de log do IDE.

Tipo de projeto desconhecido, ele no pode ser importado.

Envie-nos seus comentrios

NetBeansForEclipseUsers

Contedo
[ esconder ]

1 NetBeans para usurios do Eclipse 2 Eclipse e NetBeans Matriz de recursos 3 Caractersticas Eclipse (que podem ou no estar em NetBeans) 4 Outra documentao

NetBeans para usurios do Eclipse


Esta pgina dedicada inteiramente aos recursos do Eclipse para os usurios do Eclipse de comutao ou usando o NetBeans. Informaes sobre esta pgina deve ser em 3 categorias: 1. ) A matriz caracterstica que mostra a funcionalidade em Eclipse e NetBeans e como acess-lo em Eclipse e NetBeans tambm. Contamos com os usurios do Eclipse para nos ajudar a obter esta informao e categoria 2 o lugar onde eles podem adicionar suas caractersticas que gostariam de conhecer ou ter adicionado ao NetBeans. 2. 3. ) A lista de recursos que no existem no NetBeans ou que no tenham ainda sido descoberto e colocar na matriz de categoria 1 . ) Outros documentos nesta Wiki que est relacionado com Eclipse. Este mantm-los de ter que procurar em tantos lugares.

Eclipse e NetBeans Matriz de recursos


Caracterstica Recursos do Editor Funciona basicamente o mesmo. Uma anotao aparece no nome da classe. Clique onde a anotao . A lmpada aparece. Se a interface no tenha ainda sido importadas eo FQN no foi utilizado a primeira sugesto ser para importar a classe. Uma vez importado a sugesto ser a de implementar todos os mtodos abstratos. Eclipse NetBeans

Sugestes Cdigo: Implementar todos os mtodos abstratos

Adicionar uma interface para uma classe.Uma lmpada aparece que permite ao usurio de implementar os mtodos abstratos

Ir para a implementao de um mtodo de super

Uma seta para cima aparece ao lado de um mtodo substitudo. Em NB 5.5 e verses anteriores clicando na seta para cima no tem efeito. Em RN Uma seta para cima aparece ao lado 6.0 em que o levar para a implementao de um mtodo substitudo. Clicando super. Em todas as verses h uma opo de menu na seta para cima leva voc para a de contexto Ir para Implementao / Superque est implementao super. ligado por padro para CTRL-B. O Navigator vista da janela de herana tambm podem ser usados para a mesma finalidade, mas difcil de utilizar o teclado para operar.

Depurao Cdigo recarregada durante uma sesso de depurao se uma classe se alterados e salvos. Existem algumas restries (como no se pode mudar a assinatura do mtodo, adicionar novos mtodos, etc) No NetBeans voc tem que selecionar manualmente Run-> Aplicar alteraes de cdigo para compilar o arquivo aberto no editor e ir recarregar o cdigo no depurador, sujeitos s mesmas restries que Eclipse (assinatura do mtodo, etc)

Atualizar o cdigo durante a depurao

Mostrar uma lista de pontos Use Janela / Abrir Perspectiva / de interrupo de todos os Debug lugares, e deixe-me habilitar / desabilitar as especficas, sem

Use Janela / Depurao / Breakpoints

ter que abrir o arquivo de origem especfico e encontrar a linha. Capacidade de pairar sobre uma classe ou mtodo e ter o javadoc para essa classe ou mtodo ser exibido. No menu de contexto disponvel, mas voc pode Voc pode abrir a janela Javadoc, colocar o cursor em uma linha e pressione F4 ou usandoWindow / Show View / Outros clique no cone de execuo para cursor na barra de / Java / @ Javadoc ferramentas

Caractersticas Eclipse (que podem ou no estar em NetBeans)



Adicionar pasta de origem arbitrria ao projeto e / ou janela fontes de depurao para depurao que no faz parte do projeto real e no ser compilado Para mostrar o javadoc de uma classe ou um mtodo, quer abrir a janela javadoc (Janela-> Outros-> Javadoc) ou um pequeno truque: pressione CTRL + Espao antes do ltimo caractere do mtodo de classe /. Para copiar o nome completo de uma classe (ou mesmo o caminho completo de um arquivo), selecionando o nome da classe, boto direito do mouse e escolher "Copiar nome qualificado".

Outra documentao

Importe seus projetos Eclipse para o NetBeans

EclipseToNetBeans
Migrando seus projetos Eclipse para o NetBeans
Desde 24 de outubro de 2007 ltima actualizao: 3 de setembro de 2008 Projeto de contato: Amit Kumar Saha Projeto: Blog (velho) . Blog Novo .

Este docs comunidade sub-projeto um esforo para permitir uma transio suave do Eclipse para o NetBeans. O desafio para ns, povos do NetBeans que queremos que a sua curva de transio seja suave. No queremos que voc aprenda coisas que vai pedir para voc dedicar uma grande parte do seu tempo apenas para se acostumar com as caractersticas do NetBeans Na medida do possvel, queremos que ele seja no mais do que os passos 3-4 antes que voc possa continuar a trabalhar com seus projetos Eclipse existentes no NetBeans Esta pgina servir como ponto de entrada para docs que ir mostrar como voc pode migrar os existentes Eclipse para projetos NetBeans e continuar trabalhando com eles usando o NetBeans. Durante um perodo de tempo, iremos abordar projetos Eclipse de crescente complexidade, funcionalidade variada e, em seguida, 'porto' los ao NetBeans.

Nota
1. 2. Por favor, sinta-se livre para adicionar quaisquer documentos que voc gostaria de ver. Estes documentos utilizam Eclipse "Europa", "Ganimedes" NetBeans 6.5 (para verses anteriores do NetBeans verificar nesta pgina )

Para uma viso geral de fundo de projetos de importao, consulte: Guia de Importao Geral Eclipse para 6,5

Documentos

Importar um Java Console projeto Eclipse para o NetBeans Importar uma aplicao Java Web projeto Eclipse para o NetBeans

Ligaes chave melhoradas Eclipse Servios Web com NetBeans para usurios do Eclipse Importar projetos C do Eclipse para o NetBeans (ps Blog)

Os documentos planejadas

Capa "Ressincronizar Eclipse Projetos" caracterstica que mantm automaticamente o NetBeans classpath do projeto em sintonia com um Eclipse Importar um projeto mais complexo Eclipse (tipos Misc itens classpath como bibliotecas, variveis, etc) Importar um Java Desktop (GUI) Swing-base do projeto Eclipse para o NetBeans Importar um Java Desktop (GUI)-SWT (a ser investigado) Baseado projeto Eclipse para o NetBeans Portando Eclipse Plug-ins para o NetBeans Portar aplicativos SWT para Swing / Plataforma NetBeans Interessado em escrever qualquer um dos documentos acima? Contacte-me!

Relacionado

http://wiki.netbeans.org/EclipseProjectImportTesting~~V Aprimorada Eclipse plugin importador projeto NetBeans 6 est fora: Por que os desenvolvedores devem us-lo?

Consultas, sugestes ou comentrios


Contato: Amit Kumar Saha <amitksaha@netbeans.org> <amitsaha.in@gmail.com>

Vous aimerez peut-être aussi