1. O documento resume os principais conceitos de Java, incluindo classes, métodos, variáveis, tipos, herança, polimorfismo, coleções e design de código.
2. Inclui explicações sobre orientação a objetos, testes unitários com JUnit, e padrões como GRASP e composição vs herança.
3. Fornece um guia geral sobre Java com foco em conceitos básicos de programação orientada a objetos.
O documento apresenta uma introdução à análise de processos em organizações, abordando sua importância e estratégias para estudo de processos, incluindo coleta de dados, representação gráfica e análise. Fluxogramas são apresentados como ferramenta importante para mapear processos.
O documento discute a governança de TI, o alinhamento regulatório e o plano diretor de TI. Aborda conceitos como governança empresarial e governança em TI, as dimensões da governança em TI, a conformidade regulatória e marcos regulatórios, o planejamento de TI e o que é o plano diretor de TI. Também discute a elaboração do PDTI, a tomada de decisões e alocação de recursos com base no PDTI e o controle e gerenciamento da operação de acordo com o PDTI.
O documento apresenta Daniel Brandão e seu curso sobre conceitos básicos de informática, hardware e software. Ele discute tópicos como sistemas operacionais, hardware incluindo periféricos e memória, e tipos de software como sistemas operacionais e aplicativos. O documento fornece uma introdução abrangente sobre esses fundamentos da informática.
O documento apresenta uma introdução ao Word 2007, descrevendo-o como um programa comum para criar diversos tipos de documentos e buscar bons resultados. Em seguida, explica como abrir o Word, identificar a área de trabalho e definir o tamanho do papel antes de iniciar um novo documento. Por fim, aborda como digitar, salvar, formatar arquivos e sair do programa.
Gerenciamento de projetos aula 1 (introdução)Paulo Junior
O documento discute gestão de projetos, incluindo o que é um projeto, os cinco grupos de processos de gerenciamento de projetos (iniciação, planejamento, execução, monitoramento e controle, encerramento), e a importância do gerenciamento de projetos para o sucesso das estratégias corporativas. O autor é um especialista em gerenciamento de projetos no Brasil.
O documento discute conceitos fundamentais de organização, sistemas e métodos. Aborda tópicos como evolução histórica das organizações, teoria geral de sistemas, sistemas como organizações abertas e complexas, administração, organizações como sistemas, e processos de mudança e desenvolvimento organizacional.
O documento discute a importância do planejamento e organização no trabalho, incluindo como qualificar demandas, cuidados com o ambiente de trabalho e ferramentas tecnológicas para auxiliar os colaboradores. Também aborda considerações finais e uma bibliografia de apoio sobre o tema.
O documento descreve as quatro principais funções da administração: planejamento, organização, direção e controle. Ele explica que essas funções compõem um processo administrativo cíclico e dinâmico. O documento também fornece detalhes sobre o planejamento e a organização como as primeiras duas funções.
O documento apresenta uma introdução à análise de processos em organizações, abordando sua importância e estratégias para estudo de processos, incluindo coleta de dados, representação gráfica e análise. Fluxogramas são apresentados como ferramenta importante para mapear processos.
O documento discute a governança de TI, o alinhamento regulatório e o plano diretor de TI. Aborda conceitos como governança empresarial e governança em TI, as dimensões da governança em TI, a conformidade regulatória e marcos regulatórios, o planejamento de TI e o que é o plano diretor de TI. Também discute a elaboração do PDTI, a tomada de decisões e alocação de recursos com base no PDTI e o controle e gerenciamento da operação de acordo com o PDTI.
O documento apresenta Daniel Brandão e seu curso sobre conceitos básicos de informática, hardware e software. Ele discute tópicos como sistemas operacionais, hardware incluindo periféricos e memória, e tipos de software como sistemas operacionais e aplicativos. O documento fornece uma introdução abrangente sobre esses fundamentos da informática.
O documento apresenta uma introdução ao Word 2007, descrevendo-o como um programa comum para criar diversos tipos de documentos e buscar bons resultados. Em seguida, explica como abrir o Word, identificar a área de trabalho e definir o tamanho do papel antes de iniciar um novo documento. Por fim, aborda como digitar, salvar, formatar arquivos e sair do programa.
Gerenciamento de projetos aula 1 (introdução)Paulo Junior
O documento discute gestão de projetos, incluindo o que é um projeto, os cinco grupos de processos de gerenciamento de projetos (iniciação, planejamento, execução, monitoramento e controle, encerramento), e a importância do gerenciamento de projetos para o sucesso das estratégias corporativas. O autor é um especialista em gerenciamento de projetos no Brasil.
O documento discute conceitos fundamentais de organização, sistemas e métodos. Aborda tópicos como evolução histórica das organizações, teoria geral de sistemas, sistemas como organizações abertas e complexas, administração, organizações como sistemas, e processos de mudança e desenvolvimento organizacional.
O documento discute a importância do planejamento e organização no trabalho, incluindo como qualificar demandas, cuidados com o ambiente de trabalho e ferramentas tecnológicas para auxiliar os colaboradores. Também aborda considerações finais e uma bibliografia de apoio sobre o tema.
O documento descreve as quatro principais funções da administração: planejamento, organização, direção e controle. Ele explica que essas funções compõem um processo administrativo cíclico e dinâmico. O documento também fornece detalhes sobre o planejamento e a organização como as primeiras duas funções.
O documento descreve as cinco gerações de computadores, desde a primeira geração em 1946-1954 até a quinta geração em 1991. Cada geração trouxe melhorias como a substituição de válvulas por transistores e circuitos integrados, diminuindo o tamanho dos computadores e aumentando sua capacidade de processamento. A quarta geração introduziu softwares integrados e a quinta geração trouxe supercomputadores, robótica e multimídia.
O documento descreve o que é brainstorming, seu objetivo principal de obter um maior número de ideias sobre um problema, e as regras e etapas para realizar uma sessão de brainstorming de maneira estruturada ou não-estruturada.
1. O documento apresenta Paulo Furtado como professor e fornece informações sobre suas disciplinas de levantamento de requisitos. 2. É discutido o que a disciplina ensina e não ensina, com foco em questionar a forma atual de identificação de requisitos e priorizar a priorização. 3. A primeira aula trata de conceitos iniciais como visão de produto, evolução, processos cognitivos e aprendizado.
O documento discute os fundamentos da qualidade, incluindo conceitos, abordagens históricas e normas como a ISO 9001. Explica o significado de qualidade para clientes e organizações e detalha a evolução dos padrões de qualidade ao longo do tempo.
1) O documento descreve a história e evolução dos computadores, desde os primeiros dispositivos mecânicos como o ábaco até as gerações atuais baseadas em microprocessadores. 2) Os principais marcos históricos incluem as gerações baseadas em válvulas, transistores e circuitos integrados, culminando na quarta geração de microprocessadores. 3) A quinta geração visa computadores com inteligência artificial e capacidades humanas.
O documento discute conceitos fundamentais sobre organizações e administração. Ele define organizações como grupos sociais unidos por objetivos comuns e discute suas dimensões, componentes e complexidade crescente. Também aborda as quatro funções da administração - planejar, organizar, liderar e controlar - e conceitos como estrutura organizacional, modelos de gestão e imagem organizacional.
Este documento fornece orientações para criar um Plano de Marketing Pessoal em 6 etapas: 1) Autoconhecimento através da missão, visão e valores; 2) Análise de forças e fraquezas; 3) Entendimento do mercado por meio de uma análise SWOT; 4) Definição de metas e objetivos; 5) Planejamento de ações; 6) Controle e revisão de resultados. O plano visa direcionar esforços para alcançar objetivos pessoais de forma estratégica.
O documento descreve os principais componentes de um computador, incluindo hardware como CPU, memória, dispositivos de entrada e saída. Também explica o software, dividido em sistema operativo e aplicações, e como esses componentes trabalham juntos para permitir que um computador funcione.
O documento introduz os conceitos básicos de administração e organizações. Discorre sobre definições de administração e organização, objetivos de administradores, funções administrativas como planejar, organizar, liderar e controlar, e tipos de administradores. Também apresenta características necessárias para administradores modernos.
O documento discute empreendedorismo digital e fornece informações sobre validação de ideias, produto mínimo viável e desenvolvimento ágil de aplicativos móveis. O cronograma descreve as etapas do curso ao longo de cinco sábados.
O documento discute o que é uma startup, incluindo que é uma empresa com uma ideia inovadora para resolver um problema ou criar um novo hábito e que deve ter um modelo de negócios sólido e escalável. O Brasil é destacado como um país inovador com startups como o Buscapé e fundadores do Instagram e Facebook. Diferentes tipos de startups são explicados como aplicativos e "copycats", com conselhos sobre validação, investidores e planejamento de negócios. Estudos de caso incluem o Groupon e a Urban 3D.
O documento descreve hardware e software de computadores. Ele define hardware como as partes físicas de um sistema de computador e fornece exemplos como gabinete, monitor, processador e placa-mãe. O documento também define software como as partes lógicas de um sistema de computador, como sistemas operacionais, aplicativos de produtividade e jogos.
O documento discute os seguintes tópicos sobre design:
1) Define design como a melhoria dos aspectos funcionais, ergonômicos e visuais de um produto para atender às necessidades do consumidor.
2) Apresenta os principais tipos de designers: gráfico, de produto, ambiental, cênico, de vitrines e web design.
3) Explica que o processo de design envolve analisar uma situação atual, sintetizar uma intervenção e avaliar os resultados da nova situação.
O documento resume a história do desenvolvimento dos computadores desde as primeiras máquinas mecânicas de calcular no século 17 até os computadores modernos. Detalha os principais marcos como o desenvolvimento dos cartões perfurados, das válvulas eletrônicas e dos transistores, culminando na criação dos primeiros microprocessadores e computadores pessoais nas décadas de 1970 e 1980.
O documento discute o perfil do administrador no século XXI. Ele define administrar como dirigir, inspecionar e tomar conta de coisas por meio de outras pessoas para alcançar os objetivos da organização. Também descreve como as crianças e adolescentes desenvolvem habilidades administrativas através de brincadeiras e trabalho, e como a experiência, comportamento ético e pensamento analítico são importantes para administradores. Finalmente, resume que um bom administrador deve ter visão sistêmica, liderança, comunicação e foco nos processos
Aula sobre escola de pensamento em administração das disciplinas Organização Contemporânea e Modelos de Organizações dos cursos de pós-graduação em Gestão Empresarial e Marketing da Universidade Metodista
Apresentação para composição de nota da matéria Gerenciamento de Projetos, ministrada por Jailton no Instituto Federal de Educação, Ciência e Tecnologia de Alagoas (IFAL).
O documento discute o que é ser empreendedor, fornecendo definições de diversos autores e características-chave. Também aborda o processo empreendedor, incluindo identificar oportunidades, desenvolver planos de negócios, obter recursos e gerenciar o negócio. Finalmente, discute fatores que influenciam o empreendedorismo e mitos versus verdades sobre empreendedores.
1. O documento discute conceitos de organizações e administração, incluindo definições de organizações, suas razões de surgimento, importância e características.
2. Aborda também tipos de organizações, parceiros, relações de reciprocidade, estruturas e mecanismos de coordenação.
3. Discutem-se conceitos de administração e gestão, funções do administrador, níveis de administração e tipos de planejamento.
1) O documento discute estruturas de dados como Map e Set em Java, incluindo suas principais implementações e métodos.
2) Map armazena pares chave-valor e não permite chaves duplicadas, enquanto Set armazena elementos únicos.
3) As principais implementações de Map incluem HashMap, TreeMap e LinkedHashMap, enquanto as principais implementações de Set incluem HashSet, TreeSet e LinkedHashSet.
O documento descreve conceitos fundamentais de estruturas de dados em Java, incluindo Map, Set, Stack, Queue, Threads e mais. Map e Set são coleções que armazenam pares chave-valor e conjuntos de objetos respectivamente. Stack e Queue gerenciam dados de acordo com os modelos LIFO e FIFO. Threads permitem a execução paralela de tarefas.
O documento descreve as cinco gerações de computadores, desde a primeira geração em 1946-1954 até a quinta geração em 1991. Cada geração trouxe melhorias como a substituição de válvulas por transistores e circuitos integrados, diminuindo o tamanho dos computadores e aumentando sua capacidade de processamento. A quarta geração introduziu softwares integrados e a quinta geração trouxe supercomputadores, robótica e multimídia.
O documento descreve o que é brainstorming, seu objetivo principal de obter um maior número de ideias sobre um problema, e as regras e etapas para realizar uma sessão de brainstorming de maneira estruturada ou não-estruturada.
1. O documento apresenta Paulo Furtado como professor e fornece informações sobre suas disciplinas de levantamento de requisitos. 2. É discutido o que a disciplina ensina e não ensina, com foco em questionar a forma atual de identificação de requisitos e priorizar a priorização. 3. A primeira aula trata de conceitos iniciais como visão de produto, evolução, processos cognitivos e aprendizado.
O documento discute os fundamentos da qualidade, incluindo conceitos, abordagens históricas e normas como a ISO 9001. Explica o significado de qualidade para clientes e organizações e detalha a evolução dos padrões de qualidade ao longo do tempo.
1) O documento descreve a história e evolução dos computadores, desde os primeiros dispositivos mecânicos como o ábaco até as gerações atuais baseadas em microprocessadores. 2) Os principais marcos históricos incluem as gerações baseadas em válvulas, transistores e circuitos integrados, culminando na quarta geração de microprocessadores. 3) A quinta geração visa computadores com inteligência artificial e capacidades humanas.
O documento discute conceitos fundamentais sobre organizações e administração. Ele define organizações como grupos sociais unidos por objetivos comuns e discute suas dimensões, componentes e complexidade crescente. Também aborda as quatro funções da administração - planejar, organizar, liderar e controlar - e conceitos como estrutura organizacional, modelos de gestão e imagem organizacional.
Este documento fornece orientações para criar um Plano de Marketing Pessoal em 6 etapas: 1) Autoconhecimento através da missão, visão e valores; 2) Análise de forças e fraquezas; 3) Entendimento do mercado por meio de uma análise SWOT; 4) Definição de metas e objetivos; 5) Planejamento de ações; 6) Controle e revisão de resultados. O plano visa direcionar esforços para alcançar objetivos pessoais de forma estratégica.
O documento descreve os principais componentes de um computador, incluindo hardware como CPU, memória, dispositivos de entrada e saída. Também explica o software, dividido em sistema operativo e aplicações, e como esses componentes trabalham juntos para permitir que um computador funcione.
O documento introduz os conceitos básicos de administração e organizações. Discorre sobre definições de administração e organização, objetivos de administradores, funções administrativas como planejar, organizar, liderar e controlar, e tipos de administradores. Também apresenta características necessárias para administradores modernos.
O documento discute empreendedorismo digital e fornece informações sobre validação de ideias, produto mínimo viável e desenvolvimento ágil de aplicativos móveis. O cronograma descreve as etapas do curso ao longo de cinco sábados.
O documento discute o que é uma startup, incluindo que é uma empresa com uma ideia inovadora para resolver um problema ou criar um novo hábito e que deve ter um modelo de negócios sólido e escalável. O Brasil é destacado como um país inovador com startups como o Buscapé e fundadores do Instagram e Facebook. Diferentes tipos de startups são explicados como aplicativos e "copycats", com conselhos sobre validação, investidores e planejamento de negócios. Estudos de caso incluem o Groupon e a Urban 3D.
O documento descreve hardware e software de computadores. Ele define hardware como as partes físicas de um sistema de computador e fornece exemplos como gabinete, monitor, processador e placa-mãe. O documento também define software como as partes lógicas de um sistema de computador, como sistemas operacionais, aplicativos de produtividade e jogos.
O documento discute os seguintes tópicos sobre design:
1) Define design como a melhoria dos aspectos funcionais, ergonômicos e visuais de um produto para atender às necessidades do consumidor.
2) Apresenta os principais tipos de designers: gráfico, de produto, ambiental, cênico, de vitrines e web design.
3) Explica que o processo de design envolve analisar uma situação atual, sintetizar uma intervenção e avaliar os resultados da nova situação.
O documento resume a história do desenvolvimento dos computadores desde as primeiras máquinas mecânicas de calcular no século 17 até os computadores modernos. Detalha os principais marcos como o desenvolvimento dos cartões perfurados, das válvulas eletrônicas e dos transistores, culminando na criação dos primeiros microprocessadores e computadores pessoais nas décadas de 1970 e 1980.
O documento discute o perfil do administrador no século XXI. Ele define administrar como dirigir, inspecionar e tomar conta de coisas por meio de outras pessoas para alcançar os objetivos da organização. Também descreve como as crianças e adolescentes desenvolvem habilidades administrativas através de brincadeiras e trabalho, e como a experiência, comportamento ético e pensamento analítico são importantes para administradores. Finalmente, resume que um bom administrador deve ter visão sistêmica, liderança, comunicação e foco nos processos
Aula sobre escola de pensamento em administração das disciplinas Organização Contemporânea e Modelos de Organizações dos cursos de pós-graduação em Gestão Empresarial e Marketing da Universidade Metodista
Apresentação para composição de nota da matéria Gerenciamento de Projetos, ministrada por Jailton no Instituto Federal de Educação, Ciência e Tecnologia de Alagoas (IFAL).
O documento discute o que é ser empreendedor, fornecendo definições de diversos autores e características-chave. Também aborda o processo empreendedor, incluindo identificar oportunidades, desenvolver planos de negócios, obter recursos e gerenciar o negócio. Finalmente, discute fatores que influenciam o empreendedorismo e mitos versus verdades sobre empreendedores.
1. O documento discute conceitos de organizações e administração, incluindo definições de organizações, suas razões de surgimento, importância e características.
2. Aborda também tipos de organizações, parceiros, relações de reciprocidade, estruturas e mecanismos de coordenação.
3. Discutem-se conceitos de administração e gestão, funções do administrador, níveis de administração e tipos de planejamento.
1) O documento discute estruturas de dados como Map e Set em Java, incluindo suas principais implementações e métodos.
2) Map armazena pares chave-valor e não permite chaves duplicadas, enquanto Set armazena elementos únicos.
3) As principais implementações de Map incluem HashMap, TreeMap e LinkedHashMap, enquanto as principais implementações de Set incluem HashSet, TreeSet e LinkedHashSet.
O documento descreve conceitos fundamentais de estruturas de dados em Java, incluindo Map, Set, Stack, Queue, Threads e mais. Map e Set são coleções que armazenam pares chave-valor e conjuntos de objetos respectivamente. Stack e Queue gerenciam dados de acordo com os modelos LIFO e FIFO. Threads permitem a execução paralela de tarefas.
1) O documento discute estruturas de dados como Map e Set, métodos importantes como put(), get(), e implementações como HashMap e HashSet.
2) Map armazena dados em pares chave-valor e não permite chaves duplicadas, enquanto Set armazena elementos únicos sem ordenação.
3) Threads permitem executar tarefas simultaneamente através de métodos como start(), run(), sleep(), enquanto synchronized garante acesso exclusivo a recursos compartilhados.
Orientação a Objetos para Desenvolvedores AndroidIury Teixeira
Material de Orientação a Objetos com Java objetivando auxiliar no aprendizado do paradigma e da linguagem Java, preparando o aluno para programar para Google Android
O documento discute conceitos fundamentais de programação orientada a objetos como classes, atributos, métodos, abstração, encapsulamento, herança e polimorfismo. Também apresenta estruturas de dados como vetores, pilhas, filas e árvores binárias.
O documento discute os conceitos fundamentais de orientação a objetos em Java, incluindo: 1) Definições de classes, objetos, encapsulamento e herança; 2) Como criar objetos a partir de classes e compartilhar dados entre objetos; 3) Como definir métodos e construtores em classes.
IES GF - Introdução a Linguagem de Programação Orientada a ObjetosRamon Mayor Martins
O documento discute conceitos fundamentais da programação orientada a objetos, incluindo objetos, classes, atributos, métodos, herança, encapsulamento e polimorfismo. Classes descrevem objetos e seus tipos, enquanto atributos e métodos especificam suas propriedades e comportamentos. A herança permite a reutilização de código entre classes relacionadas, e o encapsulamento esconde detalhes de implementação.
O documento discute os principais conceitos de programação estruturada e orientada a objetos. Apresenta as características e vantagens de cada paradigma, além de conceitos como classes, objetos, atributos, métodos, herança e encapsulamento. Também aborda programação linear, funções, procedimentos e modularização.
O documento discute programação orientada a objetos em Python. Ele explica conceitos básicos como classes, objetos, métodos e atributos. Também descreve como definir classes em Python e criar instâncias de objetos, incluindo o uso do método especial __init__().
Apresentação curso de Extensão em Java (UERJ-IME) v1Marcelo Zeferino
O documento resume um curso de extensão em Java com 40 horas, abordando tópicos como introdução à linguagem Java, programação orientada a objetos, controle de fluxo, arrays, persistência de dados com Hibernate, desenvolvimento web e interfaces gráficas.
Python apresenta conceitos fundamentais da linguagem como tipos de dados, controle de fluxo, funções, classes e módulos. O documento também discute quem usa Python e suas principais características como tipagem dinâmica e orientação a objetos.
Este documento discute os principais tópicos da Orientação a Objetos utilizando Java, incluindo: 1) as diferenças entre classes e objetos; 2) como classes definem atributos e métodos; e 3) como instanciar objetos a partir de classes utilizando construtores. Dois exercícios práticos sobre sistemas de metrô e pedidos no Burger King são fornecidos para exemplificar esses conceitos.
O documento discute os conceitos fundamentais de programação orientada a objetos em Java, incluindo classes, objetos, membros de classe e instância. Ele explica que classes definem tipos de dados complexos que podem ser usados para criar objetos, e que objetos são instâncias de classes que armazenam dados e executam operações.
O documento apresenta os principais conceitos da programação orientada a objetos de acordo com a definição de Alan Kay, incluindo: (1) tudo é um objeto que troca mensagens; (2) classes definem tipos de objetos; (3) objetos são instâncias de classes com dados e comportamentos. Também aborda encapsulamento, herança, polimorfismo e ferramentas para ensinar POO como BlueJ e Greenfoot.
- nome
- salario
Professor:
- titulacao
- departamento
ProfessorAssistente:
- herda de Assistant e Professor
Crie objetos de cada classe e imprima seus atributos.
Java utiliza uma máquina virtual que traduz as aplicações para as chamadas do sistema operacional, permitindo que as aplicações rodem independentemente do sistema operacional. A máquina virtual Java (JVM) executa as aplicações Java e permite o desenvolvimento usando ferramentas como o compilador Javac e o kit de desenvolvimento JDK. O documento descreve também conceitos básicos de programação em Java como tipos primitivos, classes, métodos, fluxos de controle e orientação a objetos.
O documento discute os conceitos fundamentais da programação orientada a objetos, incluindo abstração, classe, encapsulamento, herança e polimorfismo. Também aborda a persistência de dados usando Java Database Connectivity (JDBC), que fornece uma API para acessar bancos de dados relacionais.
O documento descreve classes Java e pacotes padrão, como pacotes de entrada e saída de dados, banco de dados e interface gráfica. Ele apresenta as classes Java.lang e pacotes como java.io, java.sql e java.swing.
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...Biblioteca UCS
A biblioteca abriga, em seu acervo de coleções especiais o terceiro volume da obra editada em Lisboa, em 1843. Sua exibe
detalhes dourados e vermelhos. A obra narra um romance de cavalaria, relatando a
vida e façanhas do cavaleiro Clarimundo,
que se torna Rei da Hungria e Imperador
de Constantinopla.
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptxLuizHenriquedeAlmeid6
Slideshare Lição 10, Betel, Ordenança para buscar a paz e fazer o bem, 2Tr24, Pr Henrique, EBD NA TV, 2° TRIMESTRE DE 2024, ADULTOS, EDITORA BETEL, TEMA, ORDENANÇAS BÍBLICAS, Doutrina Fundamentais Imperativas aos Cristãos para uma vida bem-sucedida e de Comunhão com DEUS, estudantes, professores, Ervália, MG, Imperatriz, MA, Cajamar, SP, estudos bíblicos, gospel, DEUS, ESPÍRITO SANTO, JESUS CRISTO, Comentários, Bispo Abner Ferreira, Com. Extra Pr. Luiz Henrique, 99-99152-0454, Canal YouTube, Henriquelhas, @PrHenrique
Caderno de Resumos XVIII ENPFil UFU, IX EPGFil UFU E VII EPFEM.pdfenpfilosofiaufu
Caderno de Resumos XVIII Encontro de Pesquisa em Filosofia da UFU, IX Encontro de Pós-Graduação em Filosofia da UFU e VII Encontro de Pesquisa em Filosofia no Ensino Médio
Atividade letra da música - Espalhe Amor, Anavitória.Mary Alvarenga
A música 'Espalhe Amor', interpretada pela cantora Anavitória é uma celebração do amor e de sua capacidade de transformar e conectar as pessoas. A letra sugere uma reflexão sobre como o amor, quando verdadeiramente compartilhado, pode ultrapassar barreiras alcançando outros corações e provocando mudanças positivas.
1. Java — Geralzão
Marta Laís
Aug 19, 2018·11 min read
Java é complicado, isso é fato. Sair de Python (saudades) para Java é um senhor pulo. Decidi reunir todos os
meus 1.000 resumos em apenas um.
Esse resumo do assunto de Java, com foco na Orientação à Objetos, é bem geral, como o título já insinua.
Coloquei os pontos que julguei mais importantes e, claro, memes, como boa jovem dinâmica que sou.
Resolvi disponibilizar no medium, vai que é útil para mais alguém — além dos ex-feras de CC@UFCG, hahaha.
Tópicos
1. Introdução — Conceitos
2. Métodos Básicos
3. Testes
4. Coleções
5. GRASP — Design
6. Composição
7. Herança
8. Polimorfismo
9. Interface
Introdução — Conceitos
Classe: Um espaço para ter código.
Método: Uma funções a ser executado.
Valor: Dado/Informação bruta.
Tipo: Identifica o valor, semântica.
Public: Determina a visibilidade.
Static: Determina que o que está sendo criado não precisa de contexto.
Void: Determina que não haverá retorno.
Main: Identifica qual código deverá ser invocado quando executado.
Visibilidade: Define explicitamente quem pode acessar o que.
Tipagem estática: É preciso definir os tipos de cada das entidades. Permite a segurança dos testes desse tipo.
Tipagem dinâmica: O tipo de uma entidade é definido pelo tipo atual do valor que ela tem. Permite a
flexibilidade da mudança dinâmica de tipos.
Compilar: Converter um código fonte em código de máquina. É compilado em bytecode pelo javac.
2. Interpretar: Um interpretador recebe um código linha-a-linha, converte e executa comandos na máquina nativa.
JVM: Um código .class pode rodar em qualquer interpretador java. Existe uma JVM própria para Windows,
outra para Mac, outra para Linux — todas elas são capazes de executar o mesmo .class.
Variáveis: São valores atribuídos no código. Int, double, char…
Tipos estáticos: O tipo é definido.
Tipos primitivos: int, double, char… os tipos mais básicos de java. Todo tipo primitivo é avaliado e comparado
para um valor.
Condicionais: if (condição) {}
Loops: for (inicialização, condição de permanência, incremento) {}
Funções: Trecho de código para ser executado.
Modularização: Isolam um bloco de código pela sua responsabilidade.
Testabilidade: Facilidade em testar cada função de forma isolada.
Arrays: Uma sequência de elementos. Não é uma lista. São alocados de forma contínua, ou seja, cada elemento
existe exatamente após do anterior. É rápido acessar elementos em sequência. Não mudam de tamanho.
Listas: São alocadas de forma não-contínua, cada elemento contém o seu valor e o endereço pro próximo. Para
achar o elemento, passa por mais uma camada de indireção. Tamanho dinâmico.
3. Objetos: Todo objeto pode ser apontado por várias variáveis ao mesmo tempo e é comparado se apontador para o
mesmo objeto. Modularidade; Plugabilidade; Ocultação e Reuso. Podem ter um determinado estado e ações.
Imports: Pacotes prontos com funções.
Pacotes: Permitem organização do código.
Objetos de Valor: Apenas armazenam o valor.
this: Referência ao atributo/objeto.
Construtor: Método especial chamado para criar o objeto.
Atributo público: Qualquer objeto que use esse atributo, tem controle sobre ele. Isso é ruim pois o controle
sobre o atributo deve ser da própria classe onde ele está inserido. Geram encapsulamento ruim.
Atributo privado + get e set: Isso é bom! Pois sempre que outro código quiser acessar/definir, o método
executado será o get/set. Geram encapsulamento bom.
Escondendo elementos: Ocultação é mostrar apenas o necessário.
Null: Valor especial, aponta para nada.
JUnit: Biblioteca para produção de testes de unidade.
Métodos Básicos
public String toString(){}
Usado para gerar uma representação textual do objeto. Todo objeto tem um toString padrão, mas que pode ser
subscrito.
public boolean equals(Object obj){}
Usado para comparar o objeto atual com outro. Todo objeto tem um equals por padrão, mas você pode
sobrescrever.
public native int hashCode(){}
Representação numérica de um objeto, é um valor que representa o espaço na memória.
Testes
Teste pode ser definido como a investigação que busca gerar informção sobre a qualidade do código. Existem três
grandes áreas: DEVs (desenvolvimento), QU (qualidade) e OPS (operacional e infraestrutura).
Dentro da área de testes, existem duas categorias:
Verificação: “O que eu fiz está correto?”
Validação: “O que eu fiz, era o que eu deveria ter feito?”
Existem, ainda, diversos tipos de testes:
Sistema: Testa o sistema como um todo.
Integração: Testa dois componentes juntos.
4. Desempenho: Testa tempo de resposta, etc.
Regressão: Testa se o programa continua funcionando depois de alterações.
Aceitação: Testa se o software faz o que o cliente pede.
Usabilidade: testa se o programa é usável.
O JUnit é a biblioteca que serve para produzir testes de unidade em Java.
Coleções
Estrutura de dados: Java oferece uma API — Application Programming Interface — para trabalhar com
estruturas de dados, ou seja, entidade organizadas para armazenar dados.
Generics: Através do Generics é possível indicar qual o tipo de dado que a estrutura de dados carrega. Isso faz
com que a estrutura de dados opere somente com aquele tipo definido.
ArrayList<Aluno> alunos = new ArrayList<>();
Lista
A estrutura de dados mais básica que existem em Java, em específico a ArrayList. É possível pegar elementos
pela posição (get), têm ordem, pode armazenar todo tipo de objeto, aceita elementos repetidos.
Se for um Array (List), é necessário a definição de um tamanho fixo junto a criação do Array.
int[] Lista = new int[10];
Ou seja, o Array tem tamanho fixo e predefinido. Enquanto o ArrayList funciona manipulando Arrays
internamente, fazendo-o mutável.
5. Funcionamento. Basicamente, ela funciona manipulando um array internamente para armazenar vários
elementos. O ArrayList é um array cujo o tamanho por crescer. A busca por elementos é rápida, enquanto
inserções e exclusões não são, são lineares.
ArrayList alunos = new ArrayList();
ArrayList<Integer> lista = new ArrayList<>(); //GENERICS
List fornece métodos para manipular elementos através da sua posição (índice), procurar ocorrência, remover e
adicionar o elemento.
add, contains, size, iterator, for each.
Quando usar? Armazenar elementos com ordem ou com repetição. Quando se deseja acesso rápido aos
elementos.
Conjuntos
São coleções onde não existem repetições de dados. Caso dois objetos sejam iguais, considerando o método
equals, apenas um será incluído no conjunto. Não pega elementos pela posição, não aceita elementos
repetidos e não tem ordem.
add, contains, size, iterator, for each.
HashSet. É uma representação do conjunto. Internamente ele reserva um espaço na memória para os objetos de
acordo com o hashcode. Para achar se um objeto faz parte da lista, ele pega o hashcode do objeto e procura na
memória.
HashSet<Integer> conjunto = new HashSet<>();
Quando usar? Armazenar elementos únicos, sem repetição e quando a ordem não for importante.
Mapas
HashMap. Associam chave e valor ao elemento. No mapa associa-se uma chave (key) a um valor (value). Cada
chave é única. Não existem chaves repetidas, mas chaves diferentes podem ter o mesmo valor.
HashMap<String, String> apelidos = new HashMap<>();
Quando usar? Se a ordenação não for importante e/ou existir a necessidade de associar um objeto a outro ou a
um “ID”.
6. GRASP — Design
General Responsibility Assignment Software. Padrões Gerais de Software para a Definição de
Responsabilidade (GRASP) — Forma comum de estruturar o software, com definições de responsabilidades
“quem faz o que”.
Expert (Information) — Quem sabe?
Dada uma responsabilidade — Identifique a informação necessária para realizar tal responsabilidade e escolha
onde colocá-la (qual classe).
A responsabilidade em questão será dessa determinada classe.
Exemplo — No meu sistema, é preciso ter alguém que gere a descrição de um aluno. Para tal, preciso de nome
e matrícula do aluno. Essas informações serão colocadas na classe Aluno. A classe Aluno é responsável por
gerar essa descrição do aluno.
7. Creator — Quem cria?
Dada uma responsabilidade — Os objetos da classe B criam os objetos da classe A se um ou mais desses itens
abaixo forem verdade:
B contém A;
B agrega A;
B tem os parâmetros para iniciar A;
B grava A;
B usa muito A.
Exemplo — Uma mensagem é algo que faz parte de um canal. O canal faz uso das mensagens para impressão. O
canal tem um conjunto de mensagens. O código de Canal é responsável por criar objetos do tipo Mensagem.
Controller — Quem cuida?
Facade Controller — Entidade controladora que recebe os comandos do usuário e vai delegar (repassar) esses
comandos para métodos em objetos internos.
Session Controller — Entidade controladora que receber e executa os comandos de um usuário com alguma
lógica associada àquele evento.
O main recebe eventos (comandos) do usuário e precisa repassar isso para alguém. Um candidato forte para isto
é um objeto “controlador” que irá controlar a execução (ou até fazer) desses comandos.
Baixo acoplamento — Evitando o ninho de gato.
Definição: Acoplamento é o nível de interdependência entre os módulos (classes) de um software. Quanto mais
baixo esse nível, melhor o código.
Imagine que seja necessário fazer certas alterações do código. Quanto menor for o acoplamento, menos classes
serão afetadas pela alteração.
Alta coesão — Evitando a classe 1001 utilidades.
Definição: Coesão, em computação, representa a medida de quão integra, pura e autocontida um entidade é. Uma
classe deve ter responsabilidade altamente relacionadas e focada.
DRY — Don’t Repeat Yourself.
Definição: Não faça mais de uma vez a mesma coisa (código). Está bastante ligada ao reuso de código.
SRP — Single Responsibility Principle.
Definição: Uma classe deve fazer apenas uma coisa e bem feita. Está bastante ligada à alta coesão.
8. KIS — Keep It Simple.
Definição: Mantenha as coisas (código) simples. (Keep it simple, stupid).
Composição
Uma classe com composição é, basicamente, um objeto dentro do outro, para agregar informação em comum.
Os objetos do mesmo tipo podem ter uma referência ao mesmo objeto. Elas coexistem uma sem a outra, mas
podem se associar.
Composição também pode ser uma nova classe para delegar funções.
9. Herança
Herança. A herança é um princípio em POO que permite a criação de novas classes a partir de outras já
criadas. Essas novas classes são chamadas de subclasses, ou classes filhas, classes derivadas. As classes
originais, de onde as subclasses derivam, são chamadas de superclasses ou classes base, classes mãe. Dessa
forma, é possível criar uma hierarquia dessas classes, tornando, assim, classes mais amplas e outras classes mais
específicas.
Uma subclasse, classe filha, herda métodos e atributos de sua superclasse, classe pai. Um objeto instanciado
de uma classe filha tem todos os métodos e atributos da própria classe e de todas as classes da sua
hierarquia. Um método chamado no objeto é procurado primeiro na classe filha, depois nas classes mãe. O
código definido na classe filha só pode usar métodos e atributos protected e public da classe mãe. Só pode
acessar o que é definido no tipo.
Classe abstrata. A classe não pode ser instanciada. Notação <<abstract>> no diagrama.
Atributo protected. O atributo pode ser alterado por um classe filha. Notação # no diagrama.
Método abstrato. A classe filha irá implementar esse método. Notação em itálico no diagrama.
Extends. Especialização das classes. ClasseFilha Extends ClasseMãe.
super. Usado para invocar um método ou construtor da classe mãe.
Sobre a classe-filha:
• Tem todos os atributos e métodos definidos nela mesma e na mãe.
• Um método chamado no objeto é procurado primeiro na classe filha.
• O código definido na classe-filha só pode usar métodos e atributos protected e public da classe-mãe.
• O tipo da referência limita o que pode ser acessado de um objeto.
10. • Você só pode acessar o que é definido no tipo.
Afinal: pra quê serve herança? Reuso de código e reuso de tipo.
11. Herança vs. Composição
Herança:
• Tipos bem definidos e objetos que não mudam ao longo da vida.
• Relação de “É UM” para sempre.
• Um gato É UM animal.
Composição:
• Os tipos são parte de um tipo maior.
• Papéis, funções, profissões, estados.
• Relação “TEM UM”, podendo trocar de papel.
• Pessoa TEM UMA função.
Benefícios e Problemas da Herança
• A herança consegue capturar o que é comum e o isola do que é diferente, além disso, ela é vista
diretamente no código.
• Entre os problemas da herança está o fraco encapsulamento entre as classes e subclasses, além de violar a
regra do baixo acoplamento.
12. Benefícios e Problemas da Composição
• A grande desvantagem é que um software muito dinâmico e parametrizado é mais difícil de entender.
• A grande vantagem da composição é que o comportamento pode ser escolhido em tempo de execução.
• Os objetos que foram instanciados são somente acessados através de sua interface, seguindo assim o
princípio de programar para uma interface.
• A composição também tem um bom encapsulamento, uma vez que os detalhes internos dos objetos
instanciados não são visíveis.
• Menor dependência de implementações e aumenta a coesão.
No geral, é preferível sempre a Composição em relação à Herança, mas deve-se definir algumas regras para
identificar quando é mais adequado usar a Herança de forma que não tenhamos os problemas que ela acarreta.
Deve-se utilizar herança se uma instância de uma classe-filha nunca precisar torna-se um objeto de outra classe,
se a relação for “É UM” e não “TEM UM”.
Polimorfismo
Polimorfismo significa “muitas formas”, ou seja, é o uso do mesmo elemento de formas diferentes — um
objeto pode se comportar de diversas formas diferentes.
ADH — Sobrecarga:
• Se dá quando temos a mesma operação implementada várias vezes da mesma classe.
• A escolha de qual operação será chamada depende da assinatura dos métodos sobrecarregados.
Paramétrico:
• Mesmo tipo com diferentes comportamentos através de parametrização (generics).
• A escolha de qual método será chamado depende do tipo do objeto que recebe a mensagem.
Subtipo:
• Mesmo tipo (pai) com diferentes comportamentos (filhos) através de herança.
Na invocação de “referencia.metodo()” o código de método é procurado na ordem de hierarquia das classes, da
classe-filha para classe-mãe e assim por diante.
A ligação — BINDING — entre a chamada e o código a ser executado é feita de forma tardia — LATE. Java só
decide em tempo de execução — LATE BINDING.
13. Interface
Define um contrato sem definir estado. Também define um tipo. Pode ter métodos com corpo, mas não podem ter
atributos. Interfaces podem ser pai.
14. Sempre programe para a interface!
Serializable
• Descreve um objeto que pode ser convertido em uma sequência de bits, para que, assim, possa ser
armazenado em arquivos.
Comparator
• Interface que define a operação de comparação entre dois objetos por um objeto externo.
• É utilizado quando os objetos a serem adicionados não podem ser modificados para aceitarem a interface
Comparable.
• Ou quando é necessária a troca da estratégia de ordenação em tempo de execução.
• Esta interface provê maior flexibilidade, sem custo adicional significativo. Prefira seu uso, ao invés da
interface Comparable.
Comparable
• Interface que define a operação de comparação do própria objeto com outro, usando para definir a ordem
natural dos elementos de uma coleção.
• Pode ser utilizado caso os objetos que serão adicionados na coleção já implementam a interface.
15. Herança vs. Interface
Herança
• Uma classe só pode herdar de uma outra classe.
Interface
• Uma classe pode implementar várias interfaces.