1ª Lista de Exercícios - Linguagem Java (Intermediário) Instruções: Para cada uma das questões, entenda, analise, elabore uma solução e a implemente em Java. Sempre que necessário pesquise no material didático fornecido, na bibliografia sobre o tema e na Web, ou solicite ajuda ao professor. class Pessoa { private String nome; public Pessoa(String nome) { this.nome = nome; } public String toString() { return "Nome: " + nome; } } 1. Com base na classe Pessoa acima, reutilizando-a por meio de herança, crie uma classe Aluno, que declare: (a) uma variável de instância matrícula; (b) um construtor que inicialize o nome e a matrícula com base em seus parâmetros; e (c) um método toString() que retorne uma String contendo a matrícula e o nome do aluno. 2. Quais as formas de reuso de classes estudadas? Cite as principais diferenças e semelhanças e dê exemplos. 3. Quais são os quatro níveis de acesso e quais modificadores são usados para cada um? Com funcionam as restrições impostas por modificadores de acesso, quando a delegação é adotada? Exemplifique. 4. Aprofunde o estudo sobre delegação, dando um novo exemplo. 5. Aprofunde o estudo sobre herança, dando um novo exemplo. 6. Defina superclasse e subclasse e dê exemplos. 7. O que podemos afirmar sobre construtores? Cite as principais diferenças e semelhanças de um construtor para um método convencional e dê exemplo. 8. Para a declaração de uma variável de instância x, que permite que x seja acessível DIRETAMENTE a partir de todas as classes do mesmo pacote e apenas destas, qual modificador de acesso devemos ter? Justifique e demonstre por meio de um exemplo. 9. Para a declaração de uma variável de instância y, que permite que y seja acessível DIRETAMENTE a partir de todas as classes de qualquer pacote, qual modificador de acesso devemos ter? Justifique e demonstre por meio de um exemplo. 10. Para a declaração de uma variável de instância y, que NÃO permite que y seja acessível DIRETAMENTE partir de qualquer outra classe, independente de pacote, qual modificador de acesso devemos ter? Justifique e demonstre por meio de um exemplo. 11. O que é e como se dá a sobreposição de métodos? Qual a diferença para sobrecarga de métodos? O método toString é um exemplo de sobrecarga ou de sobreposição? Explique. 12. Explique e dê um exemplo de uso de cada uma das seguintes palavras-chaves: this, super, static. 13. Qual método é usado como ponto de entrada para execução de uma classe? Exemplifique.