Você está aqui: Java ::: Dicas & Truques ::: Programação Orientada a Objetos |
|
Como usar classes abstratas em Java - Programação Orientada a Objetos - Java POOQuantidade de visualizações: 21431 vezes |
|
Classes abstratas (abstract classes) não diferem muito das classes que normalmente criamos, ou seja, elas também podem possuir propriedades e métodos. Porém, não é possível criar instâncias de uma classe abstrata usando o operador new. Veja:abstract class Pessoa{ public String nome; public int idade; } public class Estudos{ public static void main(String args[]){ ...... Ao tentarmos compilar este exemplo teremos a seguinte mensagem: Estudos.java:9: Pessoa is abstract; cannot be instantiated Pessoa p = new Pessoa(); ^ 1 error Classes abstratas geralmente contém métodos abstratos (ainda que métodos não abstratos sejam também permitidos). Um método abstrato é um método que possui apenas a assinatura. Não há implementação. Esta implementação deverá ser fornecida pela subclasse ou classe derivada. Uma classe que contém métodos abstratos deverá, obrigatoriamente, ser declarada abstrata. Veja um exemplo de um método abstrato: public abstract class Pessoa{ public abstract String getNome(); ...... Se a classe não fosse declarada com o modificador abstract, teríamos a seguinte mensagem de erro de compilação: Pessoa.java:1: Pessoa is not abstract and does not override abstract method getNome() in Pessoa public class Pessoa{ ^ 1 error Classes abstratas são um dos tópicos mais complicados da linguagem Java e uma dor de cabeça enorme para aqueles que estão estudando para a certificação Java. Mostramos abaixo algumas dicas resultantes de nossas pesquisas sobre o assunto. 1)Uma classe não abstrata não pode conter métodos abstratos. Se uma classe concreta (não abstrata) herda de uma classe abstrata e não implementa todos os métodos abstratos, a classe derivada deve ser declarada abstract. Além disso, métodos abstratos não podem ser marcados como static. Insistir nisso pode gerar a seguinte mensagem de erro de compilação: Pessoa.java:2: illegal combination of modifiers: abstract and static public static abstract String getNome(); ^ 2) Embora uma classe abstrata não possa ser instanciada usando o operador new, ela pode conter construtores. Tais construtores serão invocados nos construtores das classes derivadas. 3) Uma subclasse pode ser abstrata até mesmo se sua superclasse for concreta. E isso é fácil de notar, uma vez que todas as classes Java herdam de Object, que é concreta. 4) Uma classe derivada pode sobrescrever um método de sua superclasse e declará-lo abstract. Isso faz sentido quando a classe derivada for abstract e quiser tornar o método herdado inválido. 5) Embora uma classe abstrata não possa ser instanciada usando o operador new, ela pode ser usada como um tipo de dados. Esta técnica é útil quando parte do time de desenvolvedores precisa adiantar códigos que dependem de classes que ainda não foram implementadas (e, portanto, herdarão das classes abstratas usadas como tipos de dados) por outra parte do mesmo time. |
|
Link para compartilhar na Internet ou com seus amigos: | |
PHP ::: Dicas & Truques ::: Data e Hora |
Como verificar se um ano é bissexto usando PHPQuantidade de visualizações: 9436 vezes |
Chama-se ano bissexto o ano ao qual é acrescentado um dia extra, ficando com 366 dias, um dia a mais do que os anos normais de 365 dias, ocorrendo a cada quatro anos (exceto anos múltiplos de 100 que não são múltiplos de 400). Isto é feito com o objetivo de manter o calendário anual ajustado com a translação da terra e com os eventos sazonais relacionados às estações do ano. Na linguagem PHP podemos verificar se um ano é bissexto checando o valor retornado por date("L"). Se o valor retornado for "1", então o ano é bissexto. Observe que, em PHP, o valor 1 é considerado true (verdadeiro). Veja um trecho de código completo no qual testamos se um determinado ano é bissexto ou não: <html> <head> <title>Estudos PHP</title> </head> <body> <?php // função que verifica se o ano é bissexto function ano_bissexto($ano){ return (date('L', mktime(0, 0, 0, 1, 1, $ano)) == 1); ...... Ao executar este código nós teremos o seguinte resultado: O ano 2020 é bissexto |
C++ ::: Dicas & Truques ::: Strings e Caracteres |
Como acessar os caracteres de uma string C++ individualmente usando um iteradorQuantidade de visualizações: 10885 vezes |
Nesta dica mostrarei como podemos usar um iterador para percorrer todos os caracteres de uma palavra, frase ou texto em C++. Para isso nós vamos combinar um iterator e as funções begin() e end(). Veja o código C++ completo para o exemplo: #include <string> #include <iostream> using namespace std; // função principal do programa C++ int main(int argc, char *argv[]){ // vamos declarar um objeto da classe string string palavra("FACULDADE"); // agora criamos um iterador para a string string::iterator it; // e usamos um laço for para percorrer o iterador ...... Ao executar este código C++ nós teremos o seguinte resultado: F A C U L D A D E |
JavaScript ::: Dicas & Truques ::: Mouse e Teclado |
Como obter o código da tecla pressionada em um elemento HTML usando o evento onkeypress do JavaScriptQuantidade de visualizações: 16396 vezes |
Nesta dica eu mostrarei como é possível usar o evento onkeypress do HTML + JavaScript para obter o código da tecla pressionada pelo usuário. Note que usei a propriedade keyCode do objeto event para capturar o código da tecla. Veja o código JavaScript completo, incluindo a página HTML: <html> <head> <title>Estudando JavaScript</title> </head> <body> <p>Experimente pressionar qualquer tecla e uma mensagem mostrará o código da tecla pressionada.</p> <script type="text/javascript"> ...... Abra esta página no seu navegador e experimente pressionar uma tecla. Se você presssionar, por exemplo, a tecla "a", teremos a seguinte mensagem: O código da tecla pressionada foi: 97 |
C ::: Dicas & Truques ::: Matemática e Estatística |
Como calcular porcentagem em C - Como efetuar cálculos de porcentagem em CQuantidade de visualizações: 27586 vezes |
Cálculos de porcentagens estão presentes em boa parte das aplicações que desenvolvemos. Porém, há momentos em que a mente trava e não conseguimos lembrar com clareza como estes cálculos são feitos, principalmente em C. Esta anotação tem o objetivo de ser uma fonte de pesquisa para os momentos em que suas habilidades matemáticas insistirem em continuar ocultas. Ex: 1 - Suponhamos que um produto que custe R$ 178,00 sofra um acréscimo de 15%. Qual o valor final do produto? Veja o código em C: // Algoritmo que calcula porcentagem em C #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { // variáveis usadas na resolução do problema float valor, percentual, valor_final; valor = 178.00; // valor original percentual = 15.0 / 100.0; // 15% ...... Ex: 2 - Um produto, cujo valor original era de R$ 250,00, teve um desconto de 8%. Qual foi seu valor final? Veja o código em C: // Algoritmo que calcula porcentagem em C #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { // variáveis usadas na resolução do problema float valor, percentual, valor_final; valor = 250.00; // valor original percentual = 8.0 / 100.0; // 8% ...... Ex: 3 - Em um concurso de perguntas e respostas, um jovem acertou 72 das 90 perguntas apresentadas. Qual foi a porcentagem de acertos? E a porcentagem de erros? Veja o código em C: // Algoritmo que calcula porcentagem em C #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { // variáveis usadas na resolução do problema float perguntas, acertos; perguntas = 90.0; acertos = 72.0; // mostra a porcentagem de acertos printf("Porcentagem de acertos: %f%%", ((acertos / perguntas) * 100)); ...... Ex: 4 - Um aparelho de CD foi adquirido por R$ 300,00 e revendido por R$ 340,00. Qual foi a porcentagem de lucro na transação? Veja o código em C: // Algoritmo que calcula porcentagem em C #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { // variáveis usadas na resolução do problema float valor_anterior, novo_valor, porcentagem_lucro; valor_anterior = 300.0; // valor anterior novo_valor = 340.0; // valor novo ...... Ex: 5 - Uma loja repassa 5% do lucro a seus vendedores. Se um produto custa R$ 70,00, qual o valor em reais repassado a um determinado vendedor? Veja o código em C: // Algoritmo que calcula porcentagem em C #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { // variáveis usadas na resolução do problema float valor, percentual, comissao; valor = 70.0; // valor do produto percentual = 5.0 / 100.0; // 5% ...... |
C++ ::: Dicas & Truques ::: Strings e Caracteres |
Como substituir todas as ocorrências de uma substring em uma string C++ usando uma função substituir_string() personalizadaQuantidade de visualizações: 9988 vezes |
Nesta dica mostrarei como podemos tirar proveito das funções empty(), size(), find(), replace() e length() da classe String do C++ para escrever uma função substituir_string() personalizada que nos permite substituir todas as ocorrências de uma substring em uma string. Veja o código C++ completo para o exemplo: #include <string> #include <iostream> using namespace std; // função personalizada para substituir todas as ocorrências // de uma substring em uma string void substituir_string(string& str, const string de, const string para){ // variáveis auxiliares int i = 0, indice; // a string está vazia? if(str.empty()){ str = de; return; } // fazemos as substituições da substring while(i < str.size()){ indice = str.find(de, 0); if(indice >= 0){ str.replace(indice, de.length(), para); } else{ ...... Ao executar este código C++ nós teremos o seguinte resultado: A frase original é Java? Gosto de Java, Java! Depois da substituição: PHP? Gosto de PHP, PHP! |
Desafios, Exercícios e Algoritmos Resolvidos de C++ |
Veja mais Dicas e truques de C++ |
Dicas e truques de outras linguagens |
PHP - Programação Orientada a Objetos em PHP - Aprenda a criar e usar métodos e classes abstratas em PHP Python - Como testar se um ponto está dentro de um círculo em Python - Desenvolvimento de Games com Python |
Quem Somos |
Programador Freelancer - Full Stack Developer, Professional Java Developer, PHP, C/C++, Python Programmer, wxWidgets Professional C++ Programmer, Freelance Programmer. Formado em Ciência da Computação pela UNIP (Universidade Paulista Campus Goiânia) e cursando Engenharia Civil pela PUC-Goiás. Possuo conhecimentos avançados de Java, Python, JavaScript, C, C++, PHP, C#, VB.NET, Delphi, Android, Perl, e várias tecnologias que envolvem o desenvolvimento web, desktop, front-end e back-end. Atuo há mais de 20 anos como programador freelancer, atendendo clientes no Brasil, Portugal, Argentina e vários outros paises.
Entre em contato comigo para, juntos, vermos em que posso contribuir para resolver ou agilizar o desenvolvimento de seus códigos.
|
Programador Freelancer - Formado em Sistemas de Informação pela Faculdade Delta, Pós graduado em Engenharia de Software (PUC MINAS), Pós graduado Marketing Digital (IGTI) com ênfase em Growth Hacking. Mais de 15 anos de experiência em programação Web. Marketing Digital focado em desempenho, desenvolvimento de estratégia competitiva, analise de concorrência, SEO, webvitals, e Adwords, Métricas de retorno. Especialista Google Certificado desde 2011 Possui domínio nas linguagens PHP, C#, JavaScript, MySQL e frameworks Laravel, jQuery, flutter. Atualmente aluno de mestrado em Ciência da Computação (UFG)
Não basta ter um site. É necessário ter um site que é localizado e converte usuários em clientes. Se sua página não faz isso, Fale comigo e vamos fazer uma analise e conseguir resultados mais satisfatórios..
|
Linguagens Mais Populares |
1º lugar: Java |