Versões Java e Sintaxe Básica

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

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?

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

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

<p>Definir um conjunto fixo de constantes nomeadas, melhorando a legibilidade e a segurança do tipo. (C)</p> Signup and view all the answers

Em um bloco try-catch-finally em Java, qual é a finalidade do bloco finally?

<p>Garantir que um bloco de código seja sempre executado, independentemente de uma exceção ser lançada ou não. (A)</p> Signup and view all the answers

Qual é a importância da palavra-chave static na declaração de um método em Java, especialmente no contexto do método main?

<p>Indicar que o método pertence à classe em vez de a uma instância da classe, permitindo que seja chamado sem criar um objeto. (A)</p> Signup and view all the answers

Qual é a principal vantagem de usar a declaração var para variáveis locais em Java?

<p>Reduzir a quantidade de código necessária, permitindo que o compilador inferir o tipo da variável com base na inicialização. (B)</p> Signup and view all the answers

Qual das seguintes opções descreve corretamente a função das anotações em Java?

<p>Fornecer metadados sobre o código que podem ser usados por ferramentas de desenvolvimento, compiladores e JVM. (A)</p> Signup and view all the answers

Qual é o propósito da anotação @Deprecated em Java?

<p>Indicar que um método foi substituído por uma versão mais recente e não deve mais ser usado. (B)</p> Signup and view all the answers

Qual dos componentes a seguir é essencial para rodar códigos Java, conforme apresentado no conteúdo?

<p>JDK (Java Development Kit) (B)</p> Signup and view all the answers

Qual é a função principal de um sistema de controle de versão como o Git no desenvolvimento de software?

<p>Registrar e recuperar diferentes versões do código-fonte, facilitando a colaboração e o rastreamento de mudanças. (C)</p> Signup and view all the answers

No contexto do Git, qual é a finalidade do comando git commit?

<p>Registrar as alterações preparadas no repositório local, criando um novo <em>snapshot</em> do projeto. (A)</p> Signup and view all the answers

Qual é o conceito fundamental por trás da programação orientada a objetos (POO)?

<p>Organizar o código em torno de objetos, que combinam dados (atributos) e funcionalidades (métodos) que operam sobre esses dados. (C)</p> Signup and view all the answers

Em programação orientada a objetos (POO), qual é o papel dos métodos?

<p>Executar operações sobre os dados de um objeto, modificando seu estado ou realizando cálculos. (B)</p> Signup and view all the answers

Qual é a principal característica dos registros (records) em Java, conforme descrito no material?

<p>Eles são classes imutáveis que automaticamente geram métodos getter, <code>equals()</code>, <code>hashCode()</code> e <code>toString()</code>. (D)</p> Signup and view all the answers

Qual é a utilidade dos tipos paramétricos (genéricos) em Java?

<p>Fornecer uma forma de criar classes que podem operar com diferentes tipos de dados de maneira segura, sem a necessidade de <em>casting</em>. (B)</p> Signup and view all the answers

Em Java, como os pacotes (packages) devem ser identificados?

<p>Por um diretório no sistema de arquivos, seguindo uma convenção de nomenclatura específica. (B)</p> Signup and view all the answers

Qual é o propósito dos módulos em Java?

<p>Agrupar vários pacotes relacionados, controlando quais pacotes são expostos e quais são mantidos internamente. (A)</p> Signup and view all the answers

No contexto da programação orientada a objetos, qual é a definição de Encapsulamento?

<p>A capacidade de controlar o acesso aos dados e funcionalidades de um objeto, protegendo-os de acesso não autorizado. (B)</p> Signup and view all the answers

Qual é o objetivo principal da reutilização de classes em Java?

<p>Evitar a duplicação de código, permitindo que classes existentes sejam utilizadas em novas situações e contextos. (B)</p> Signup and view all the answers

Flashcards

JShell

Permite avaliar expressões, instruções e declarações diretamente.

Declaração Obrigatória

Associa um tipo a uma variável.

Inicialização Obrigatória

Atribui um valor inicial a uma variável.

Enumeração (enum)

Tipo de dado que define um conjunto fixo de constantes.

Signup and view all the flashcards

Exceções

Serve para lidar com erros e situações inesperadas.

Signup and view all the flashcards

Método

Bloco de código que realiza uma tarefa específica.

Signup and view all the flashcards

Declaração 'var'

Permite declarar variáveis sem especificar o tipo explicitamente.

Signup and view all the flashcards

Anotações

Usadas para processar programas e adicionar metadados.

Signup and view all the flashcards

Repositório (Git)

Diretório onde os ficheiros e histórico são armazenados e versionados.

Signup and view all the flashcards

Objetos

Modelam entidades do programa, agregando dados e comportamentos.

Signup and view all the flashcards

Campos (de um objeto)

Variáveis que pertencem a um objeto e armazenam seus dados.

Signup and view all the flashcards

Métodos (de um objeto)

Ações que um objeto pode realizar, operando sobre seus dados.

Signup and view all the flashcards

Construtores

Funções especiais que inicializam os campos de um objeto ao ser criado.

Signup and view all the flashcards

Registros (Records)

Classes que servem como modelos para criar objetos imutáveis.

Signup and view all the flashcards

Classes Paramétricas

Código que pode trabalhar com diferentes tipos de dados.

Signup and view all the flashcards

Pacotes

Agrupamentos de classes relacionadas.

Signup and view all the flashcards

Encapsulamento

Controlar o acesso aos dados e funcionalidades de uma classe.

Signup and view all the flashcards

Reutilização

Capacidade de usar classes existentes em novas situações.

Signup and view all the flashcards

Extensão de Classes

Criar novas classes baseadas em classes existentes, herdando seus atributos e métodos.

Signup and view all the flashcards

Classes Abstratas

Classes que não podem ser instanciadas diretamente, servindo como base para outras classes.

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.

Quiz Team

Related Documents

More Like This

Master Minecraft Versions
3 questions
Java Programming History and Versions
11 questions
History of Java Versions
10 questions
Java Development Kit (JDK) Versions
18 questions
Use Quizgecko on...
Browser
Browser