Por que eu devo ler este artigo:Os criadores da linguagem Java estão constantemente aperfeiçoando a máquina virtual Java para eliminar os gargalos de performance, como a lentidão de métodos sincronizados e os custos do Garbage Collector (GC). O objetivo com essas melhorias é que os programadores não precisem mais se preocupar com tais gargalos ao projetarem os seus programas, devendo manter atenção apenas na implementação de soluções bem estruturadas. Mas no que constitui um bom desenho de um programa? Mostrar o que é e como alcançar esta meta é o objetivo deste artigo. Para isso, será explicado como desenvolver um programa em Java ajudando a pensar de forma planejada e estruturada antes de começar a escrever o código.
Para conseguirmos criar um bom programa em uma linguagem
orientada a objetos, temos que ter uma base sólida de fundamentos sobre como
criar os nossos objetos. No caso da linguagem Java, como sabemos, o trabalho de
instanciar estes objetos cabe às classes. Ao entendermos os bons princípios de
desenhos de classes em Java, estaremos aptos a escrever unidades de código
independentes o suficiente para serem reutilizadas de várias formas e mantendo
um código robusto.
Para compreendermos a importância de um bom desenho de
classes, vamos considerar um fabricante de automóveis. Uma grande empresa
construtora de automóveis não fabrica todas as partes para cada um dos seus
modelos. Várias peças, como rodas, bancos, pneus, sistema de freios, velas,
etc., já vêm prontas, de diferentes fabricantes, e depois são montadas nos seus
respectivos carros. Este modelo de fabricação especializado por peças ajuda a
manter um custo baixo, ao mesmo tempo em que traz uma alta qualidade, criando
uma resposta rápida e eficiente às necessidades do mercado. Assim, a principal
responsabilidade do fabricante de automóveis é a de desenhar seus carros e
montá-los a partir de peças já existentes.
A Programação Orientada a Objetos (POO) nasceu desta mesma
ideia de se utilizar módulos pré-existentes na construção de aplicações. Este
modelo de programação fornece aos desenvolvedores uma maneira natural e
elegante de dividir aplicações em peças pequenas e reutilizáveis, chamadas de
objetos, o que viabiliza a construção de aplicações de forma mais eficiente,
através da reutilização das coleções de componentes disponíveis.
Assim como as construtoras de automóveis, temos disponível
na linguagem Java várias peças, ou objetos, prontos para serem utilizados, quer
sejam objetos do próprio framework, quer sejam objetos de terceiros (como da
Apache, da SpringSource, etc.), que nos disponibilizam tais recursos através de
arquivos JAR (Java ARchive).
Sendo assim, a nossa responsabilidade é a de estruturar
nossas aplicações de forma concisa, criando, a partir das peças que temos
disponíveis, programas robustos de maneira eficaz. Para isso, vamos ver o que
temos disponível na linguagem de programação Java que nos permite desenhar
nossas classes de modo a melhor aproveitarmos esses recursos.
Herança
O que é herança em Java? A herança pode ser definida como o
processo em que um objeto adquire as propriedades de outro. É um mecanismo para
criar uma subclasse que irá herdar atributos e métodos de uma classe já
existente. Com o uso de herança, a informação se torna gerenciável por uma
ordem hierárquica, como veremos nos exemplos mais à frente. Mas, como a
linguagem Java suporta a herança entre objetos?
Sabemos que diferentes tipos de objetos têm, frequentemente,
uma certa quantidade de características ou comportamentos em comum. Em Java,
estas características e comportamentos são ser herdados de objetos mais
genéricos para outros mais específicos, através da utilização de subclasses, o
que é definido com a palavra extends.
No entanto, a linguagem possui uma restrição que determina que uma classe possa
estender apenas uma classe. Esta restrição é chamada de herança única, que
evita vários problemas da herança múltipla (como acontece na linguagem C++)
onde, por exemplo, um objeto pode herdar dois métodos com o mesmo nome de
classes distintas, podendo assim entrar em conflito. Mas ao mesmo tempo que a
linguagem Java coloca esta restrição por motivos de segurança, ela também
fornece a simulação de herança múltipla através da implementação de interfaces
(este assunto será tratado mais à frente), permitindo-nos usufruir dos seus
maiores benefícios, sem sofrer dos seus inconvenientes.
Os aspectos mais importantes da herança que devemos ter em
conta são: a reutilização de código, o polimorfismo e a invocação de métodos
virtuais. Vejamos um exemplo prático para entendermos estes aspectos.
Herança na prática
Para entender melhor como funciona a herança em Java, vamos
criar um programa que guarde as informações de empregados de uma empresa.
Sabemos que existem diversos tipos de empregados, como gestores, engenheiros,
programadores, secretárias, estagiários, etc. Cada um tem um tipo específico de
trabalho e suas particularidades, mas todos eles são, para a empresa, um
empregado. E para a empresa, todos os empregados devem ter, ao menos, um
identificador único, um nome e um salário (para simplificar o exemplo). A Listagem 1 mostra o código que
representa o empregado.
Listagem 1.
Classe que representa um empregado - Employee.
public class Employee {
private String _id;
private String _name;
private double _salary;
public Employee(String id, String name, double salary) {
_id = id;
_name = name;
_salary = salary;
}
public String getId() {
return _id;
}
public String getName() {
return _name;
}
public double getSalary() {
System.out.println("Salário do empregado.");
return _salary;
}
}
Para deixarmos o exemplo um pouco mais simples, vamos
representar apenas quatro tipos de empregados da empresa, a saber: gestores,
engenheiros, estagiários e diretores. Por definição da empresa, o estagiário é
um empregado sem qualquer regra específica sobre ele, ou seja, o que ele recebe
de salário é o valor que fica guardado na variável salary, sem qualquer alteração, não tendo bônus ou qualquer outro
benefício (na ...
Recomendamos começar pelo Plano de Estudo Carreira Programador Front-End. Essa área da programação é mais visual e intuitiva, tornando-a ideal para iniciantes. No Front-End, você aprenderá a criar a parte visual dos sites, como layout, cores e interatividade. Depois de dominar o Front-End, você pode avançar para Programador Back-End, onde aprenderá a lidar com a lógica e o funcionamento interno dos sites, e, finalmente, para Programador Mobile, focando no desenvolvimento de aplicativos para smartphones. Nossa metodologia é estruturada de forma progressiva para garantir que você desenvolva confiança e experiência ao criar projetos reais, como sites estáticos e dinâmicos.
Em quanto tempo vou me tornar um programador?
O tempo necessário para se tornar um programador varia de acordo com a dedicação de cada estudante. Com nossa metodologia, que inclui um Plano de Estudo detalhado e suporte contínuo, você pode se tornar um programador de 6 meses a um ano, dependendo do seu ritmo e esforço. Nossa abordagem prática e orientada a projetos ajudará a acelerar seu aprendizado.
Eu preciso de um diploma de faculdade para começar a atuar como programador?
Não. Ser programador é uma excelente oportunidade para quem não possui diploma de faculdade. Muitas empresas contratam baseadas nas habilidades técnicas e experiência prática, não necessariamente em diplomas. Após conquistar uma vaga, você pode optar por complementar sua formação com um diploma.
Por que a programação se tornou a profissão mais promissora da atualidade?
A necessidade de programadores cresceu exponencialmente, especialmente após a pandemia de Covid-19, que forçou muitas empresas a se adaptarem ao digital. Com o crescimento das empresas de tecnologia, a demanda por programadores aumentou. Atualmente, há mais de 200 mil vagas abertas no Brasil devido à falta de profissionais qualificados.
Metodologia
Quais são os principais diferenciais da DevMedia?
Didática e Metodologia
Com mais de 20 anos de experiência, nossa metodologia foca em menos aulas e mais prática. Desenvolvemos dezenas de projetos e exercícios para ajudar você a se tornar um programador completo. Nossos projetos são desafiadores e autênticos, não apenas exercícios repetitivos.
Projetos reais e exercícios
Você desenvolverá diversos projetos práticos em cada carreira (Front-End, Back-End e Mobile), recebendo mentoria e suporte contínuo. A prática é essencial, e oferecemos milhares de exercícios para ajudar você a fixar o conteúdo e melhorar sua posição no ranking.
Suporte ao aluno
Nossa plataforma oferece suporte dedicado com professores experientes, respondendo suas dúvidas em menos de uma hora. Isso garante que você receba a ajuda necessária durante toda a sua jornada de aprendizado.
Gamificação
A DevMedia utiliza gamificação para tornar o aprendizado mais envolvente e motivador. Você acumula pontos e moedas por acertos, que podem ser trocados por produtos e customizações no seu card pessoal. Além disso, o sistema de ranking mensal incentiva a competição amigável e a melhoria contínua.
O que eu irei aprender estudando pela DevMedia?
Ao estudar conosco, você se tornará um programador Full Stack, dominando Front-End, Back-End e Mobile. Utilizamos a linguagem JavaScript, a mais utilizada no mercado, preparando você para criar sistemas webs e aplicativos celulares. Nossa abordagem prática inclui exercícios para fixar o conhecimento e desenvolvimento de projetos reais que te preparam, para o mercado de trabalho.
Quais as vantagens de aprender programação através da linguagem JavaScript?
Ela é Multiplataforma, ela vai te permitir programar para web e para celulares utilizando praticamente a mesma sintaxe.
Elá é Full Stack. Ela te permite criar aplicações Front-end, Back-end e Mobile. Isso acelera muito sua carreira e aumenta suas possibilidades de pegar trabalhos autônomos e conquistar uma vaga no mercado.
Ela é fácil de aprender. Como ela não exige conhecimento inicial em “Orientação a Objetos” ela se torna mais simples com uma curva de aprendizado suave e vai te permitir começar a programar mais rápido do que outras linguagens
A plataforma oferece certificados?
Sim, oferecemos dois tipos de certificados: o certificado de conclusão, que você adquire ao consumir o conteúdo, e o certificado de autoridade, que você obtém ao acertar exercícios. Ambos possuem carga horária, que pode ser utilizada para fins acadêmicos, como atividades complementares na faculdade, e também para comprovações em processos seletivos ou no seu currículo.
A plataforma tem suporte ao aluno, como funciona?
Sim, temos uma equipe de programadores pronta para ajudar com todas as suas dúvidas! Durante o horário comercial, o tempo médio de resposta é de até 10 minutos. E não se preocupe, também oferecemos suporte à noite e nos finais de semana, com um prazo de resposta um pouco maior.
A DevMedia me forma como programador Full Stack?
Sim! Oferecemos uma formação completa, do zero até Full Stack. Nosso foco é na prática, então você vai encontrar muitos exercícios e projetos reais ao longo do curso. Garantimos que você sairá com a autonomia necessária para desenvolver seus próprios projetos com confiança!
Tem horário para as aulas?
Não, não temos horários fixos para as aulas. Todo o nosso conteúdo está disponível para você acessar a qualquer momento, permitindo que você estude conforme sua própria disponibilidade e ritmo. Dessa forma, você pode integrar o aprendizado à sua rotina de maneira mais flexível e eficaz.
Por que a DevMedia não usa videoaulas em sua didática?
Nosso foco principal é formar programadores de verdade. Sabemos que o dia a dia de um programador envolve muita leitura, interpretação e escrita de código. Por isso, nosso conteúdo é desenvolvido para ambientar você nesse processo desde o início, proporcionando mais autonomia e acelerando seu aprendizado.
Na vídeo-aula é o professor que está lendo, interpretando e escrevndo o código para você, isso limita o seu progresso. Ao ler e interagir diretamente com o conteúdo, você exercita sua capacidade de leitura e concentração, além de poder avançar no seu próprio ritmo. Dessa forma, você se torna um programador mais independente e preparado para os desafios reais do mercado.
Preciso de um computador específico para estudar na DevMedia?
Não é necessário nada específico. Qualquer computador com processador atual e memória de 8 GB é suficiente.
Eu consigo estudar pelo celular?
Sim, a DevMedia possui um aplicativo que te permite seguir com seus estudos de qualquer lugar.
A DevMedia tem aplicativo?
Sim, nosso aplicativo está disponível na Play Store e na Apple Store, permitindo que você estude de forma prática e conveniente em qualquer lugar.
Preciso estar na faculdade para acompanhar os estudos na DevMedia?
Não, a faculdade não é necessária. Você não precisa de nenhum conhecimento prévio para iniciar os estudos na nossa plataforma.
Assinatura e Pagamentos
Quais são os planos de assinatura disponíveis?
Oferecemos dois tipos de planos: o plano recorrente e o plano anual. No plano recorrente, a cobrança é lançada mensalmente no cartão de crédito, necessitando apenas do limite para uma parcela. No plano anual, o valor total é lançado no cartão de crédito, parcelado em 12 vezes, e você precisa dispor do valor total no limite do seu cartão. Você também pode optar por pagar no PIX ou no Boleto parcelado (sujeito à analise de crédito)
Adquirindo o plano, terei acesso a todo o conteúdo?
Sim, ao assinar nossa plataforma, você desbloqueia acesso total a todo o nosso conteúdo, sem precisar comprar nada separadamente.
A plataforma tem planos vitalícios?
Não, nossos planos são anuais, garantindo que você tenha acesso contínuo às atualizações mais recentes e aos novos conteúdos. A tecnologia evolui rapidamente, e um plano vitalício oferece um conteúdo estático que se tornará ultrapassado em pouco tempo. Com nossos planos anuais, você está sempre à frente, aprendendo as novidades e tendências mais atuais no mundo da programação.
A DevMedia tem fidelidade?
Sim, nosso plano tem uma fidelidade de 12 meses, o que garante o tempo ideal para você explorar nosso conteúdo e desenvolver a autonomia necessária para trabalhar com programação.
Como funciona o cancelamento?
Nós garantimos seu direito de cancelamento com reembolso total dentro dos primeiros 7 dias, tanto no plano anual quanto no plano recorrente. Após esse período, se você estiver no plano recorrente e optar por cancelar antes de completar 12 meses, há uma taxa de 10% sobre o valor total. No plano anual, não há multas adicionais, mas o valor pago não é reembolsável.
Para que você aproveite ao máximo seu investimento, oferecemos suporte personalizado para orientá-lo na utilização da plataforma. Também temos a opção de transferência de titularidade do plano, permitindo que outra pessoa aproveite o restante do seu período de assinatura.
A renovação é automática?
Sim, nosso plano anual renova automaticamente após 12 meses, proporcionando conveniência e continuidade no seu aprendizado. Na renovação automática não é debitado do seu cartão as 12 parcelas. Para facilitar e não prejudicar o seu limite, a renovação é feita no modelo recorrente, cobrando uma mensalidade a cada mês.
Além disso, a renovação não tem fidelidade, oferecendo total flexibilidade. Você também tem a liberdade de desativar a renovação automática a qualquer momento, garantindo controle absoluto sobre sua assinatura.
Cadastro
Como excluir meus dados da plataforma?
Para excluir seus dados da plataforma, acesse o link : https://www.devmedia.com.br/fale-conosco/ e abra um protocolo de 'Exclusão de dados'. Nossa equipe processará a solicitação e removerá todas as informações do seu cadastro.
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com
vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa
bagagem consegui um estágio logo no início do meu primeiro
período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo. Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento! Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a
pena, pois a plataforma é bem intuitiva e muuuuito
didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito
obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento
front-end, tinha coisas que eu ainda não tinha visto. A
didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado,
adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É
um passo a passo incrível. Só não aprende quem não quer.
Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido
bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da
programação, irei assinar meu contrato como programador
graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana,
aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem
como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de
seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com
React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo
muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na
área.