Linguagens de Programação II
Professor(a): Fernanda Maria Ribeiro
Mapa Conceitual
Resumo
"Linguagens de Programação II", com foco em Java, aprofunda-se nos conceitos avançados dessa linguagem amplamente utilizada. Explora tópicos como herança, polimorfismo, interfaces, manipulação de exceções, programação concorrente com threads e coleções avançadas. Além disso, abrange a implementação de padrões de design orientados a objetos e o uso de ferramentas para otimização de código e desenvolvimento ágil. Este curso capacita os alunos a utilizar de forma avançada e eficiente os recursos oferecidos pela linguagem Java para solucionar problemas complexos na prática da programação.
Conceitos Importantes
Herança
Conceito que permite que uma classe (chamada de classe derivada ou subclasse) herde atributos e métodos de outra classe (chamada de classe base ou superclasse). Isso permite a criação de hierarquias e reutilização de código, onde a classe derivada pode estender ou modificar o comportamento da classe base, promovendo uma relação de especialização e generalização entre as classes.
Exemplo de Herança (Java)
// Class pai
public class Veiculo {
public String modelo;
public String marca;
}
// Classe filho 1
public class Carro extends Veiculo {
public String porta;
}
// Classe filho 2
public class Moto extends Veiculo {
public int bau_carga;
}
Interface
São como contratos, definindo um conjunto de métodos que uma classe deve implementar se prometer seguir essa interface. Elas não contêm implementações de métodos, apenas suas assinaturas, oferecendo um padrão para comportamentos. Classes podem implementar múltiplas interfaces, permitindo a aplicação de comportamentos diferentes sem herança múltipla.
Exemplo de Interface (Java)
// Definição da interface
interface Animal {
void fazerSom();
}
// Implementação da interface em uma classe
class Cachorro implements Animal {
public void fazerSom() {
System.out.println("Au au!");
}
}
// Usando a interface
public class ExemploInterface {
public static void main(String[] args) {
Animal meuAnimal = new Cachorro();
meuAnimal.fazerSom(); // Saída: "Au au!"
}
}
Polimorfismo
Conceito que permite que objetos de diferentes classes sejam tratados de maneira uniforme através de uma classe comum, podendo responder de forma distinta a chamadas de métodos iguais. Isso é alcançado por meio de herança e interfaces.
Exemplo de Polimorfismo (Java)
// Definição de uma classe base comum
class Animal {
void fazerSom() {
System.out.println("Som genérico");
}
}
// Subclasse 1 que estende Animal
class Cachorro extends Animal {
void fazerSom() {
System.out.println("Au au!");
}
}
// Subclasse 2 que estende Animal
class Gato extends Animal {
void fazerSom() {
System.out.println("Miau!");
}
}
// Usando polimorfismo
public class ExemploPolimorfismo {
public static void main(String[] args) {
Animal meuAnimal1 = new Cachorro();
Animal meuAnimal2 = new Gato();
meuAnimal1.fazerSom(); // Saída: "Au au!"
meuAnimal2.fazerSom(); // Saída: "Miau!"
}
}
Materiais de Estudo
Vídeos:
- N/D.
PDFs/Slides:
- Aula 1.0 - Apresentação
- Aula 2.0 - POO
- Aula 3.0 - Herança
- Aula 3.1- Herança/UML
- Aula 3.2 - JAVA
- Aula 3.3 - Python
- Aula 4.0 - Composição
- Aula 5.0 - Polimorfismo
- Aula 6.0 - Classes Abstratas
- Aula 7.0 - Interfaces
- Aula 8.0 - Tratamento Exceções
Complementares:
- N/D.
Atividades
Questionários:
Lista de Exercícios:
Colab
Seção voltada para a colaboração entre os alunos.
Links abertos com resumos, anotações e materiais de revisão.