Curso POO Teoria #07a - Relacionamento entre Classes

Curso POO Teoria #07a - Relacionamento entre Classes

Introdução ao Curso de Programação Orientada a Objetos

Visão Geral da Seção: Nesta seção introdutória, o professor apresenta a sala de jogos e os ambientes descontraídos presentes em empresas de tecnologia. Ele destaca a importância de criar um ambiente propício para que os funcionários possam trabalhar com tranquilidade.

  • O professor dá as boas-vindas aos alunos e introduz o curso de programação orientada a objetos.
  • Ele menciona os diferentes ambientes presentes nas empresas, como salas de jogos e espaços para massagem.
  • Destaca que esses ambientes são criados para proporcionar um ambiente tranquilo e estimulante para os funcionários.
  • Menciona que, apesar das pausas descontraídas, é importante manter o foco no trabalho.

Aula 07 - Relacionamento entre Classes

Visão Geral da Seção: Nesta aula teórica, o professor aborda o tema do relacionamento entre classes na programação orientada a objetos. Ele ressalta a importância desse conceito para entender a estrutura dos objetos.

  • O professor inicia a aula explicando que agora irá abordar o relacionamento entre classes.
  • Destaca que esse assunto será tratado em mais detalhes nas próximas aulas.
  • Informa que será necessário assistir às aulas 7 e 8 para compreender completamente o relacionamento entre classes.
  • Agradece aos colaboradores do curso e destaca a importância do apoio dos alunos.
  • Explica que as aulas são disponibilizadas gratuitamente graças ao apoio dos patrocinadores.

Agradecimentos e Exemplo do Curso

Visão Geral da Seção: Nesta seção, o professor agradece aos colaboradores do curso e apresenta um exemplo prático que será desenvolvido nas próximas aulas.

  • O professor agradece aos colaboradores do curso pelo apoio.
  • Destaca que os exercícios propostos são fruto da colaboração dos alunos.
  • Apresenta o exemplo prático do "Ultra Esmaga-Moscas", um jogo de luta fictício.
  • Explica as características que serão cadastradas para cada lutador no jogo.
  • Mostra o diagrama de classes com os atributos necessários para cada lutador.

Conceito de Atributos em Programação Orientada a Objetos

Visão Geral da Seção: Nesta seção, o professor explica o conceito de atributos em programação orientada a objetos e como eles são representados no diagrama de classes.

  • O professor reforça que os atributos são as características de um objeto.
  • Apresenta o diagrama de classes com os atributos do lutador.
  • Explica que os atributos serão cadastrados durante o exercício prático.
  • Destaca a importância do encapsulamento dos atributos.

Essas são as principais seções e informações abordadas no vídeo.

Não pule etapas

Visão geral da seção: Nesta seção, é enfatizado que não se deve pular etapas ao aprender programação orientada a objetos. É importante seguir uma abordagem organizada e estruturada para obter melhores resultados.

  • Pular etapas pode levar a dificuldades futuras.
  • É necessário seguir as instruções e organizar o aprendizado de acordo com o conteúdo apresentado.
  • A abordagem correta garantirá um melhor entendimento da programação orientada a objetos.

Métodos em Programação Orientada a Objetos

Visão geral da seção: Nesta seção, são introduzidos os métodos em programação orientada a objetos e como eles serão aplicados no exercício proposto.

  • Será desenvolvido um método chamado "apresentaLutador" para mostrar as informações do lutador.
  • Outro método chamado "mostraStatus" será criado para exibir o status do lutador durante uma luta.
  • Esses métodos são exemplos de abstração na programação orientada a objetos, onde apenas as características relevantes são consideradas.

Abstração em Programação Orientada a Objetos

Visão geral da seção: Nesta seção, é explicado o conceito de abstração na programação orientada a objetos e sua importância no exercício proposto.

  • Abstrair significa considerar apenas aquilo que é relevante para um determinado exercício ou momento de programação.
  • No contexto do exercício, os atributos e métodos relacionados à luta são os mais importantes.
  • Adicionar atributos ou métodos adicionais é opcional, desde que sejam relevantes para a situação.

Desenvolvimento do Diagrama de Classe

Visão geral da seção: Nesta seção, é explicado que o objetivo é desenvolver um diagrama de classe prático durante a aula de algoritmos. O exercício será implementado posteriormente em Java e PHP.

  • Durante a aula, serão definidos os métodos com visibilidade pública.
  • Os getters e setters não foram incluídos no diagrama para evitar tornar o programa muito extenso.
  • É importante entender os conceitos dos métodos especiais (getters e setters) para seguir o curso corretamente.

Apresentação dos Lutadores

Visão geral da seção: Nesta seção, são apresentados os lutadores que farão parte do exercício proposto. Suas características e categorias são destacadas.

  • Foram selecionados seis lutadores para o exercício.
  • Existem três categorias: peso leve, peso médio e peso pesado.
  • Cada categoria possui dois lutadores representantes.
  • As informações sobre nome, nacionalidade, idade, altura, peso e histórico de lutas são fornecidas para cada lutador.

Playboy - Lutador Peso Leve

Visão geral da seção: Nesta seção, são apresentadas as características do lutador "Playboy", que pertence à categoria de peso leve.

  • Nome: Playboy
  • Nacionalidade: Francesa
  • Idade: 31 anos
  • Altura: 1,75 metros
  • Peso: 68,9 kg
  • Histórico de lutas: 11 vitórias, 2 derrotas e 1 empate

Puto Scraps - Lutador Peso Leve

Visão geral da seção: Nesta seção, são apresentadas as características do lutador "Puto Scraps", também pertencente à categoria de peso leve.

  • Nome: Puto Scraps
  • Nacionalidade: Brasileira
  • Idade: 29 anos
  • Altura: 1,68 metros
  • Peso: 57,8 kg
  • Histórico de lutas: 14 vitórias, 2 derrotas e 3 empates

Inep Xandão - Lutador Peso Médio

Visão geral da seção: Nesta seção, são apresentadas as características do lutador "Inep Xandão", que pertence à categoria de peso médio.

  • Nome: Inep Xandão
  • Nacionalidade: Estados Unidos
  • Idade: 35 anos
  • Altura: 1,65 metros
  • Peso: 80,9 kg
  • Histórico de lutas: 12 vitórias, 2 derrotas e 1 empate

Uso Futebol - Lutador Pesado

Visão geral da seção: Nesta seção, são apresentadas as características do lutador "Uso Futebol", que pertence à categoria de peso pesado.

  • Nome: Uso Futebol
  • Nacionalidade: Brasileiro
  • Idade: 37 anos
  • Altura: 1,70 metros
  • Peso: 119,3 kg
  • Histórico de lutas: 5 vitórias, 4 derrotas e 3 empates

Nerd - Lutador Pesado

Visão geral da seção: Nesta seção, são apresentadas as características do lutador "Nerd", também pertencente à categoria de peso pesado.

  • Nome: Nerd
  • Nacionalidade: Estados Unidos
  • Idade: 30 anos
  • Altura: 1,81 metros
  • Peso: 105,7 kg
  • Histórico de lutas: 12 vitórias, 2 derrotas e 4 empates

Introdução ao código da classe

Visão geral da seção: Nesta seção, o instrutor introduz o diagrama de classes e começa a criar o código da classe. Ele define os atributos da classe, como nome, nacionalidade, altura, peso, categoria, vitórias, derrotas e empates.

  • O instrutor explica que todos os atributos serão privados porque a classe estará encapsulada.
  • Os atributos são definidos com seus respectivos tipos de dados (caractere ou inteiro) e visibilidade privada.
  • Os atributos incluem nome, nacionalidade, idade, altura, peso e categoria.
  • A categoria é determinada automaticamente com base no peso do lutador.

Métodos da classe

Visão geral da seção: Nesta seção, o instrutor discute os métodos que serão implementados na classe.

  • Os métodos incluem apresentar (para mostrar informações sobre o lutador), status (para exibir o status atual do lutador), ganhar luta (para registrar uma vitória), perder luta (para registrar uma derrota) e empatar luta (para registrar um empate).
  • Todos os métodos são definidos como públicos.

Construção dos atributos

Visão geral da seção: Nesta seção, o instrutor conclui a definição dos atributos da classe.

  • Os atributos foram definidos com seus respectivos tipos de dados e visibilidade privada.
  • Os atributos incluem nome, nacionalidade, idade, altura, peso e categoria.
  • Atributos como vitórias, derrotas e empates são do tipo inteiro.

Método construtor

Visão geral da seção: Nesta seção, o instrutor começa a implementar o método construtor da classe.

  • O método construtor receberá parâmetros para inicializar os atributos do lutador.
  • Os parâmetros incluem nome, nacionalidade, idade, altura, peso, vitórias, derrotas e empates.
  • A categoria será determinada automaticamente com base no peso do lutador.

Implementação do método construtor

Visão geral da seção: Nesta seção, o instrutor continua a implementação do método construtor da classe.

  • Os parâmetros recebidos pelo método construtor são atribuídos aos respectivos atributos da classe.
  • A categoria é definida automaticamente com base no peso do lutador.

Uso de métodos setters e getters

Visão geral da seção: Nesta seção, o instrutor discute a diferença entre usar métodos setters e fazer atribuições diretas aos atributos.

  • É possível usar tanto métodos setters quanto fazer atribuições diretas aos atributos dentro da classe.
  • O instrutor menciona que prefere chamar diretamente os métodos setters para garantir encapsulamento dos atributos privados.

Atributos e Métodos

Visão Geral da Seção: Nesta seção, o palestrante discute os atributos e métodos de uma classe em programação.

Definição dos Atributos

  • Os atributos importantes são nome, peso e categoria.
  • O método getNome() retorna o nome do lutador.
  • O método setNome() define o nome do lutador.
  • O método getPeso() retorna o peso do lutador.
  • O método setPeso() define o peso do lutador.

Definição da Categoria

  • A categoria é definida com base no peso do lutador.
  • As categorias são: leve, médio, pesado ou inválido.
  • O método setCategoria() define a categoria com base no peso.

Método Ganhar Luta

  • O método ganharLuta() atualiza o número de vitórias do lutador.

Método Perder Luta

  • O método perderLuta() atualiza o número de derrotas do lutador.

Método Empatar Luta

  • O método empatarLuta() atualiza o número de empates do lutador.

Criando Métodos para Vitórias, Derrotas e Empates

Visão geral da seção: Nesta seção, o palestrante discute a criação de métodos para registrar vitórias, derrotas e empates em um programa.

Criando método para vitórias

  • O método ganharLuta é criado para adicionar uma vitória ao lutador.
  • O número de vitórias é incrementado em 1.
  • Exemplo: lutador.ganharLuta()

Criando método para derrotas

  • O método perderLuta é criado para adicionar uma derrota ao lutador.
  • O número de derrotas é incrementado em 1.
  • Exemplo: lutador.perderLuta()

Criando método para empates

  • O método empatarLuta é criado para adicionar um empate ao lutador.
  • O número de empates é incrementado em 1.
  • Exemplo: lutador.empatarLuta()

Apresentação e Status do Lutador

Visão geral da seção: Nesta seção, o palestrante aborda os métodos de apresentação e status do lutador.

Método de apresentação do lutador

  • Utiliza-se o método apresentar para exibir informações sobre o lutador, como nome, nacionalidade, idade, altura e peso.
  • Exemplo: lutador.apresentar()

Método de status do lutador

  • Utiliza-se o método status para exibir informações resumidas sobre o lutador, como nome, peso e registro de lutas (vitórias, derrotas e empates).
  • Exemplo: lutador.status()

Programa Principal e Criação de Lutadores

Visão geral da seção: Nesta seção, o palestrante discute a criação do programa principal e a criação dos lutadores.

Criando vetor de lutadores

  • Em vez de criar variáveis individuais para cada lutador, utiliza-se um vetor de seis posições para armazenar os lutadores.
  • Exemplo: lutadores = [l1, l2, l3, l4, l5, l6]

Definindo os lutadores

  • Utiliza-se o construtor da classe Lutador para definir as características de cada lutador.
  • Exemplo: l0 = Lutador("Playboy", "França", 31, 1.75, 68.9)

Chamando métodos dos lutadores

  • Após definir os lutadores, é possível chamar os métodos criados anteriormente para registrar vitórias, derrotas e empates.
  • Exemplo: l0.ganharLuta(), l1.perderLuta(), l2.empatarLuta()

Vetor de Lutadores e Índices

Visão geral da seção: Nesta seção, o palestrante aborda o uso do vetor de lutadores e a definição dos índices.

Uso do vetor de lutadores

  • O vetor de lutadores permite acessar cada lutador por meio do seu índice no vetor.
  • Exemplo: lutadores representa o primeiro lutador.

Definição dos índices

  • Os índices do vetor de lutadores começam em 0 nas linguagens Java e PHP.
  • Exemplo: lutadores representa o primeiro lutador.

Criação de Lutadores com Vetor

Visão geral da seção: Nesta seção, o palestrante demonstra como criar os lutadores utilizando um vetor.

Utilizando um vetor para criar os lutadores

  • Em vez de criar variáveis individuais para cada lutador, utiliza-se um vetor para armazenar os objetos lutador.
  • Exemplo: lutadores = [Lutador("Playboy", "França", 31, 1.75, 68.9), Lutador("Pudim", "Brasil", 29, 1.68, 57.8)]

Chamando métodos dos lutadores criados com vetor

  • Após definir os lutadores utilizando um vetor, é possível chamar os métodos dos objetos individualmente.
  • Exemplo: lutadores.ganharLuta(), lutadores.perderLuta()

Definindo Características dos Lutadores

Visão geral da seção: Nesta seção, o palestrante define as características dos lutadores utilizando o construtor da classe.

Definindo características do primeiro lutador

  • Utiliza-se o construtor da classe Lutador para definir as características do primeiro lutador.
  • Exemplo: l= Lutador("Playboy", "França", 31, 1.75, 68.9)

Definindo características dos demais lutadores

  • Repete-se o processo de utilizar o construtor da classe Lutador para definir as características dos demais lutadores.
  • Exemplo: l= Lutador("Pudim", "Brasil", 29, 1.68, 57.8)

Finalizando a Criação dos Lutadores

Visão geral da seção: Nesta seção, o palestrante finaliza a criação dos lutadores e destaca a importância de definir cada objeto individualmente.

Finalizando a criação dos lutadores

  • Após definir todas as características dos lutadores utilizando o construtor da classe, os objetos estão prontos para serem utilizados no programa.
  • Exemplo: `lutadores = [l0, l

Construção da classe Lutador

Visão geral da seção: Nesta seção, foi feita a construção da classe "Lutador" com seus atributos e métodos. A visibilidade de cada método foi definida.

Classe Lutador

  • A classe "Lutador" foi montada com todos os atributos e métodos necessários.
  • Os atributos e métodos foram definidos com a visibilidade adequada.
  • Agora é possível utilizar os atributos e métodos da classe "Lutador" para criar lutas.

Classe Luta

Visão geral da seção: Nesta seção, é introduzida a classe "Luta", que representa uma luta entre lutadores. São apresentados os atributos dessa classe e sua relação com a classe "Lutador".

Classe Luta

  • A classe "Luta" é criada para representar uma luta entre lutadores.
  • Os atributos da classe "Luta" são: desafiado, desafiante, quantidade de rounds e aprovação.
  • A relação entre as classes "Lutador" e "Luta" é explicada como uma relação de agregação.
  • Será ensinado na próxima aula como fazer essa ligação entre as classes.

Visibilidade dos atributos e métodos da classe Luta

Visão geral da seção: Nesta seção, é explicada a visibilidade dos atributos e métodos da classe "Luta". Também são mencionados os métodos principais dessa classe.

Visibilidade dos atributos e métodos

  • Todos os atributos da classe "Luta" são privados, encapsulando-os.
  • Os métodos principais da classe "Luta" são: marcar uma luta e lutar.
  • Esses métodos têm visibilidade pública, fazendo parte da interface principal da classe.

Relação entre as classes Lutador e Luta

Visão geral da seção: Nesta seção, é explicada a relação entre as classes "Lutador" e "Luta". É mencionada a existência de uma ligação entre elas e é dada uma prévia sobre como essa relação será representada.

Relação entre as classes

  • Existe uma relação de agregação entre a classe "Lutador" e a classe "Luta".
  • Um lutador disputa uma luta.
  • Será explicado melhor na próxima aula como essa relação será representada.

Próximas aulas e escolha da linguagem

Visão geral da seção: Nesta seção, é mencionado que nas próximas aulas serão abordadas as relações entre as classes. Também é dada a opção de escolher qual linguagem (PHP ou Java) será utilizada durante o curso.

Próximas aulas e escolha da linguagem

  • Nas próximas aulas teóricas, será ensinado como fazer as classes interagirem.
  • Será mostrado como fazer a classe "Lutador" se relacionar com outras classes.
  • Agora é o momento de escolher qual linguagem (PHP ou Java) você deseja aprender para aplicar os conceitos apresentados no curso.

Agradecimentos aos patrocinadores

Visão geral da seção: Nesta seção, é feito um agradecimento aos patrocinadores do curso e é mencionado que o curso só é possível graças a eles.

Agradecimentos aos patrocinadores

  • Os patrocinadores são essenciais para viabilizar a qualidade do curso.
  • São exibidas mensagens dos patrocinadores durante as aulas.
  • É importante reconhecer o apoio dos patrocinadores e valorizar sua contribuição.

Importância dos anúncios e interatividade

Visão geral da seção: Nesta seção, é ressaltada a importância dos anúncios e da interatividade para manter o curso gratuito e de qualidade.

Importância dos anúncios e interatividade

  • Os anúncios exibidos durante as aulas não atrapalham o aprendizado, pois são fundamentais para financiar o curso.
  • Sem os patrocinadores e anúncios, não seria possível oferecer um curso gratuito com essa qualidade.
  • A interatividade permite acessar facilmente as diferentes partes do curso através das playlists.

Encerramento da aula

Visão geral da seção: Nesta seção, é feito o encerramento da aula com uma mensagem de agradecimento aos patrocinadores e ao esforço realizado para disponibilizar o conteúdo do curso gratuitamente.

Encerramento da aula

  • Obrigado aos patrocinadores por tornarem esse curso possível.
  • O esforço em disponibilizar o conteúdo gratuitamente é valorizado.
  • A próxima aula já está disponível para acesso.

Turn any video into a summary like this

YouTube links, meetings, lectures. With transcripts, search, and chat.

Video description

Nessa aula de POO, vamos aprender como fazer relacionamentos entre as classes. Gostou da aula? Então torne-se um Gafanhoto APOIADOR do CursoemVídeo acessando o site apoie.me/cursoemvideo Aula do Curso de Programação Orientada a Objetos POO criado pelo professor Gustavo Guanabara para o portal CursoemVideo.com. Curso em Vídeo Seja um apoiador: http://apoie.me/cursoemvideo Site: http://www.cursoemvideo.com YouTube: http://www.youtube.com/cursoemvideo Facebook: http://www.facebook.com/cursosemvideo Twitter: http://twitter.com/cursosemvideo Google+: http://plus.google.com/112666558837414979080 Patrocínio HOSTNET: http://www.hostnet.com.br EDUCANDUS: http://www.sistemaeducandus.com.br GAFANHOTOS: http://apoie.me/cursoemvideo Ask Rufus de Audionautix está licenciada sob uma licença Creative Commons Attribution (https://creativecommons.org/licenses/by/4.0/) Artista: http://audionautix.com/