Podcast
Questions and Answers
Qual das seguintes opções descreve melhor a função do JShell em Java?
Qual das seguintes opções descreve melhor a função do JShell em Java?
- Compilar programas completos em Java.
- Executar programas Java completos sem necessidade de compilação.
- Gerenciar dependências de projetos Java complexos.
- Fornecer um ambiente interativo para avaliar expressões, instruções e declarações em Java. (correct)
Em Java, qual é a principal finalidade da declaração obrigatória de variáveis?
Em Java, qual é a principal finalidade da declaração obrigatória de variáveis?
- Associar automaticamente um valor padrão a uma variável.
- Otimizar o uso de memória através da alocação dinâmica de tipos.
- Reservar um espaço de memória para a variável sem definir seu tipo.
- Associar um tipo específico a uma variável, definindo o tipo de dado que ela pode armazenar. (correct)
Qual das seguintes opções descreve o principal benefício dos ciclos 'for' estendidos em Java em comparação com os ciclos 'for' tradicionais?
Qual das seguintes opções descreve o principal benefício dos ciclos 'for' estendidos em Java em comparação com os ciclos 'for' tradicionais?
- Eles ajudam a evitar erros relacionados a índices fora dos limites do _array_ e são mais compactos. (correct)
- Eles são mais eficientes em termos de uso de memória.
- Eles permitem a modificação direta do tamanho do _array_ durante a iteração.
- Eles oferecem maior controle sobre o índice do _array_.
Qual é o principal propósito de usar enumerações (enum
) em Java?
Qual é o principal propósito de usar enumerações (enum
) em Java?
Em um bloco try-catch-finally
em Java, qual é a finalidade do bloco finally
?
Em um bloco try-catch-finally
em Java, qual é a finalidade do bloco finally
?
Qual é a importância da palavra-chave static
na declaração de um método em Java, especialmente no contexto do método main
?
Qual é a importância da palavra-chave static
na declaração de um método em Java, especialmente no contexto do método main
?
Qual é a principal vantagem de usar a declaração var
para variáveis locais em Java?
Qual é a principal vantagem de usar a declaração var
para variáveis locais em Java?
Qual das seguintes opções descreve corretamente a função das anotações em Java?
Qual das seguintes opções descreve corretamente a função das anotações em Java?
Qual é o propósito da anotação @Deprecated
em Java?
Qual é o propósito da anotação @Deprecated
em Java?
Qual dos componentes a seguir é essencial para rodar códigos Java, conforme apresentado no conteúdo?
Qual dos componentes a seguir é essencial para rodar códigos Java, conforme apresentado no conteúdo?
Qual é a função principal de um sistema de controle de versão como o Git no desenvolvimento de software?
Qual é a função principal de um sistema de controle de versão como o Git no desenvolvimento de software?
No contexto do Git, qual é a finalidade do comando git commit
?
No contexto do Git, qual é a finalidade do comando git commit
?
Qual é o conceito fundamental por trás da programação orientada a objetos (POO)?
Qual é o conceito fundamental por trás da programação orientada a objetos (POO)?
Em programação orientada a objetos (POO), qual é o papel dos métodos?
Em programação orientada a objetos (POO), qual é o papel dos métodos?
Qual é a principal característica dos registros (records
) em Java, conforme descrito no material?
Qual é a principal característica dos registros (records
) em Java, conforme descrito no material?
Qual é a utilidade dos tipos paramétricos (genéricos) em Java?
Qual é a utilidade dos tipos paramétricos (genéricos) em Java?
Em Java, como os pacotes (packages
) devem ser identificados?
Em Java, como os pacotes (packages
) devem ser identificados?
Qual é o propósito dos módulos em Java?
Qual é o propósito dos módulos em Java?
No contexto da programação orientada a objetos, qual é a definição de Encapsulamento?
No contexto da programação orientada a objetos, qual é a definição de Encapsulamento?
Qual é o objetivo principal da reutilização de classes em Java?
Qual é o objetivo principal da reutilização de classes em Java?
Flashcards
JShell
JShell
Permite avaliar expressões, instruções e declarações diretamente.
Declaração Obrigatória
Declaração Obrigatória
Associa um tipo a uma variável.
Inicialização Obrigatória
Inicialização Obrigatória
Atribui um valor inicial a uma variável.
Enumeração (enum)
Enumeração (enum)
Signup and view all the flashcards
Exceções
Exceções
Signup and view all the flashcards
Método
Método
Signup and view all the flashcards
Declaração 'var'
Declaração 'var'
Signup and view all the flashcards
Anotações
Anotações
Signup and view all the flashcards
Repositório (Git)
Repositório (Git)
Signup and view all the flashcards
Objetos
Objetos
Signup and view all the flashcards
Campos (de um objeto)
Campos (de um objeto)
Signup and view all the flashcards
Métodos (de um objeto)
Métodos (de um objeto)
Signup and view all the flashcards
Construtores
Construtores
Signup and view all the flashcards
Registros (Records)
Registros (Records)
Signup and view all the flashcards
Classes Paramétricas
Classes Paramétricas
Signup and view all the flashcards
Pacotes
Pacotes
Signup and view all the flashcards
Encapsulamento
Encapsulamento
Signup and view all the flashcards
Reutilização
Reutilização
Signup and view all the flashcards
Extensão de Classes
Extensão de Classes
Signup and view all the flashcards
Classes Abstratas
Classes Abstratas
Signup and view all the flashcards
Study Notes
Versões em Java
- O texto aborda as versões do Java.
Sintaxe Básica
- JShell é um shell interativo que funciona como um REPL (Read-Evaluate-Print-Loop).
- JShell avalia expressões, instruções e declarações em vez de programas completos.
- // é usado para comentários de uma linha.
- /.../ é usado para comentários de várias linhas.
- O programa é invocado com "main", que inicia a execução.
- Os parâmetros do main são arrays de strings.
- Declaração obrigatória associa um tipo a uma variável.
- Inicialização obrigatória associa um valor à variável.
- Utilização recomendada usa valor da variável.
- Terminação automática indica o fim da variável.
Arrays
- A declaração de um array é feita com tipo[].
- A inicialização é feita com = new tipo[n].
- O acesso aos elementos é feito com [k-1].
Controlo de Fluxo
- As estruturas de controlo incluem if-then-else, while, do-while, switch-case-default e for-break-repeat.
- Ciclos estendidos for ( ... : ...), para evitar erros de índice, mais compactos e legíveis.
Enumerações
- Enum define um conjunto fixo de constantes.
- Enumerações são frequentemente usadas em switch-case.
- Podem ter construtores, métodos e atributos.
- values() retorna todos os valores do enum.
Exceções
- try é usado para executar um bloco de código que pode lançar uma exceção.
- catch é usado para capturar exceções.
- finally é usado para executar código após o try e o catch.
- "I" pode ser usado para capturar várias exceções num só bloco.
Métodos
- Métodos são invocados com metodo(argumentos).
- Métodos declarados devem ter um tipo e, no main, devem ser static.
- return é usado para devolver um valor.
- Argumentos são usados de forma normal.
Declaração Var
- var permite iniciar e declarar variáveis,Resultando em código mais conciso.
- var não pode ser usado em atributos de classes.
Anotações
- Anotações são usadas para processar programas e aparecem antes do nome.
- Anotações podem ter argumentos.
- @Deprecated indica que algo não deve ser usado.
- @Override substitui outro método.
- @SuppressWarnings inibe avisos.
Desenvolvimento em Java
- JDK (Java Development Kit) é essencial para rodar códigos Java, incluindo compilador (javac), ambiente de execução (java) e gerador de documentação (javadoc).
- IDE (Integrated Development Environment) é um ambiente gráfico para desenvolvimento com funcionalidades como edição de código, debugging, execução de testes, documentação e navegação fácil.
- GIT é essencial na gestão de versões de software, garantindo que as alterações sejam registadas e recuperadas.
- GIT é um sistema de controle de versões eficiente, seguro e permite desenvolvimento flexível.
Árvore de Diretórios no GIT
- worktree é onde estão os ficheiros do projeto.
- index (área de preparação), permite escolher os arquivos a serem comitados.
- local repo (repositório local).
- remote repo (repositório remoto como GitHub, GitLab).
Comandos Git
- git init inicia um repositório.
- git add adiciona ficheiros à área de preparação (index).
- git commit copia ficheiros do index para o repositório local.
- git push envia as alterações para um repositório remoto.
- git clone copia um repositório remoto.
- git pull atualiza um repositório local com as alterações do repositório remoto.
- git help fornece ajuda sobre os comandos git.
- git remote add adiciona um repositório remoto com nome e URL.
- git remote rename renomeia um repositório remoto.
- git rm file remove um ficheiro.
Programação Orientada a Objetos
- Estruturação: Capacidade de organizar dados e funcionalidades dos programas.
- Objetos modelam entidades básicas usando campos e métodos.
- Campos agregam dados da entidade e variam com o tempo.
- Métodos operam sobre os valores dos campos.
- Ciclo de vida de um objeto: importação, declaração, inicialização, terminação.
Métodos Comuns
- equals() compara objetos.
- toString() representa em String.
- clone() copia objeto.
- hashCode() código de função.
- getClass() obtém a classe desse objeto.
Classes (Básicas)
- Campos guardam valores que caracterizam objetos e são definidos antes dos construtores.
- final é usado para constantes.
- Construtores: inicializam campos com valores específicos e têm o mesmo nome da classe.
- this se refere ao próprio objeto.
- Métodos operam sobre os campos do objeto.
- Membros definidos dentro de uma classe incluem declaração e utilização.
Registos
- Records servem para criar classes imutáveis.
- Cria automaticamente os getters().
- Exemplo: record Pessoa(String nome, int idade).
- Limitações: não pode extender outras classes e não podem adicionar atributos extras, nem modificá-los.
- Paramétricas: Tornam o código mais geral e reutilizável.
Pacotes
- Pacotes devem ser identificados por um diretório.
- Atribuição: package nome.
- Importar: import.
- Módulos agrupam vários pacotes relacionados.
- Descritor: contem informações sobre algo.
- Localiza-se na raiz do diretório.
- Exportações: explicita os pacotes exportados para outros módulos.
Encapsulamento
- Capacidade de controlar o acesso a dados e funcionalidades.
- Referências: uma variável que guarda referência a um endereço do objeto.
- Caminhos: Objeto da classe, separado por pontos.
- Visibilidade: tipos das funções incluindo public, private e protected.
- Estáticos: Métodos estáticos usam apenas variáveis estáticas.
- Reutilização: utilizar classes noutras situações.
Extensão de Classes
- Novas classes herdando definições de classes pré-existentes, usa extends, herda tudo da classe extendida.
- Métodos não finais podem ser redefinidos (@Override).
- super() refere o construtor da classe estendida.
Classes Abstratas
- São classes parcialmente definidas, têm objetivo de serem estendidas e não podem ser instanciadas.
- Declaramos com abstract (métodos também).
- Interfaces: Declarações partilhadas entre classes, usa interface.
- Para implementar usamos implements.
Classes Anônimas
- São classes definidas para criação de um único objeto, sem nome, para uso imediato.
- Código mais curto e direto, mas não reutilizável.
Interfaces Funcionais
- Interfaces para um único método abstrato, permite usar expressão lambda, Predefinidas.
- Function <T,R> mapeia valores entre tipos.
- Consumer consome valores.
- Supplier fornece valores.
- Predicate retorna booleano.
Mudar Tipos
- Mudar o tipo de objetos (coerção, conversão, casting, instance of).
- Upcasting transforma objeto de subclasse em superclasse.
- Downcasting transforma objeto de super classe em subclasse.
- Upcasting é mais seguro e verificado na compilação.
- Downcasting não é seguro, precisa do instanceof para evitar erros.
Convenções de Nomenclatura
- Pacotes: começar com letra minúscula
- Classes: UpperCamelCase, Siglas em Maiúsculas
- Interfaces: igual às classes
- Métodos: lowerCamelCase
- Campos/Constantes: variáveis finais estáticas tudo Maiúsculas.
- Documentação: contem informações sobre o código, para comentar o que não é óbvio
- Estilo: organizar o código, reutilizar código, evitar muitos parâmetros, evitar métodos extensos.
- Variáveis: Declarar variáveis onde vão ser usadas e não reutilizar variáveis.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.