Você está aqui: Cards de AutoCAD Civil 3D |
||
|
||
|
|
||
Java ::: Dicas & Truques ::: Programação Orientada a Objetos |
Como criar e usar métodos estáticos em suas classes Java - Programação Orientada a Objetos em Java - Java OOPQuantidade de visualizações: 13875 vezes |
Como já vimos em outras dicas desta seção, uma classe Java possui propriedades (variáveis) e métodos (funções). Veja a seguinte declaração de uma classe Produto:
package estudos;
// declaração da classe Produto
public class Produto {
private String nome;
private double preco;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public double getPreco() {
return preco;
}
public void setPreco(double preco) {
this.preco = preco;
}
}
Aqui cada instância da classe Produto terá suas próprias variáveis nome e preco e os métodos que permitem acesso e alteração destas variáveis também estão disponíveis a cada instância. Há, porém, situações nas quais gostaríamos que um determinado método estivesse atrelado à classe e não à cada instância individual. Desta forma, é possível chamar um método de uma classe sem a necessidade da criação de instâncias da mesma. O método main() presente em todas as aplicações Java é um bom exemplo deste tipo de método. Métodos estáticos em Java podem ser criados por meio do uso da palavra-chave static. É comum tais métodos serem declarados com o modificador public, o que os torna acessíveis fora da classe na qual estes foram declarados. Veja um exemplo: Código para Pessoa.java:
package estudos;
// classe Pessoa com duas variáveis privadas e
// um método estático
public class Pessoa {
private String nome;
private int idade;
// um método estático que permite verificar a validade
// de um número de CPF
public static boolean isCPFValido(String cpf){
// alguns cálculos aqui
return true;
}
}
Veja agora como podemos chamar o método isCPFValido() sem a necessidade da criação de uma nova instância da classe Pessoa: Código para Main.java:
package estudos;
public class Main {
public static void main(String[] args) {
// vamos efetuar uma chamada ao método isCPFValido() sem
// criar uma instância da classe Pessoa
if(Pessoa.isCPFValido("12345")){
System.out.println("CPF Válido");
}
else{
System.out.println("CPF Inválido");
}
}
}
Note que o método estático isCPFValido() da classe Pessoa foi declarado assim: public static boolean isCPFValido(String cpf); Desta forma, podemos chamá-lo a partir de código externo à classe sem a necessidade de criar uma nova instância da mesma. Veja: if(Pessoa.isCPFValido("12345")){} É importante notar que métodos estáticos não possuem acesso a variáveis e métodos não estáticos da classe, tampouco ao ponteiro this (que só existe quando criamos instâncias da classe). Assim, o trecho de código abaixo:
// um método estático que permite verificar a validade
// de um número de CPF
public static boolean isCPFValido(String cpf){
// alguns cálculos aqui
// vamos acessar a variável não estática nome
nome = "Osmar J. Silva";
return true;
}
vai gerar o seguinte erro de compilação: Uncompilable source code - non-static variable nome cannot be referenced from a static context. Se usarmos this.nome a mensagem de erro de compilação será: Uncompilable source code - non-static variable this cannot be referenced from a static context. Métodos estáticos são úteis quando precisamos criar classes que atuarão como suporte, nas quais poderemos chamar funções (métodos) auxiliares sem a necessidade de criar novas instâncias a cada vez que estas funções forem necessárias. |
C# ::: Windows Forms ::: Formulários e Janelas |
C# Windows Forms - Como obter a quantidade de controles em um formulário usando a propriedade Controls.CountQuantidade de visualizações: 8682 vezes |
|
Em algumas situações nós precisamos saber quantos controles existem atualmente em um formulário Windows Forms. Isso pode ser feito com uma chamada à propriedade Count da classe ControlCollection. Um objeto da classe ControlCollection é retornado quando acessamos a propriedade Controls de um formulário (e presente também em outros controles que podem conter controles filhos). Veja um trecho de código no qual obtemos a quantidade de controles em um formulário ao clicarmos em um botão:
private void button1_Click(object sender, EventArgs e){
// vamos obter a quantidade de controles no formulário
int quantControles = this.Controls.Count;
// vamos exibir o resultado
MessageBox.Show("O formulário contém " + quantControles +
" controles.");
}
Note que a coleção ControlCollection retorna apenas os controles visuais no formulário, ou seja, componentes tais como Timer, DirectoryEntry, etc, não são incluídos. |
Portugol ::: Dicas & Truques ::: Cadeias e Caracteres |
Como remover todos os espaços de um nome, frase ou texto usando a função substituir() da biblioteca Texto do PortugolQuantidade de visualizações: 465 vezes |
|
Como remover espaços de um nome, frase ou texto usando a função substituir() da biblioteca Texto do Portugol Nesta dica mostrarei como podemos usar a função substituir() da biblioteca Texto do Portugol para remover todas as ocorrências de espaços em um nome, frase ou texto. Esta técnica é muito interessante quando queremos processar e salvar dados informados pelos usuários em um arquivo texto. Veja o código Portugol completo para o exemplo:
programa {
// vamos incluir a biblioteca Texto
inclua biblioteca Texto --> texto
funcao inicio() {
// vamos declarar uma variável para guardar um nome
cadeia nome, novo_nome
// vamos pedir para o usuário informar o seu nome
escreva("Informe o seu nome: ")
leia(nome)
// agora vamos remover todos os espaços do nome informado
novo_nome = texto.substituir(nome, " ", "")
// e mostramos os resultados
escreva("Você informou o nome: " + nome)
escreva("\nSem os espaços: " + novo_nome)
}
}
Ao executar este código Portugol nós teremos o seguinte resultado: Informe o seu nome: Marcela de Oliveira Macedo Cunha Você informou o nome: Marcela de Oliveira Macedo Cunha Sem os espaços: MarceladeOliveiraMacedoCunha |
Rust ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como somar os elementos de um array em RustQuantidade de visualizações: 728 vezes |
|
Nesta dica mostrarei como podemos somar os valores de um vetor na linguagem Rust. Para isso nós vamos usar um laço for e percorrer os itens do array um de cada vez. Note também o uso da função len() para retornar o tamanho do array. Veja o código Rust completo para o exemplo:
// esta é a função principal do programa Rust
fn main() {
// vamos criar um array com 6 elementos
let valores:[i32;6] = [5, 2, 3, 7, 4, 1];
// para guardar a soma
let mut soma:i32 = 0;
// vamos mostrar o conteúdo do array
println!("Os elementos do array são: {:?}", valores);
// agora vamos somar os elementos do array
for i in 0..valores.len() {
soma = soma + valores[i];
}
// e mostramos o resultado
println!("A soma dos elementos é: {}", soma);
}
Ao executarmos este código Rust nós teremos o seguinte resultado: Os elementos do array são: [5, 2, 3, 7, 4, 1] A soma dos elementos é: 22 |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade) |
Exercícios Resolvidos de Java - Escreva um programa Java que usa uma função recursiva para retornar a quantidade de dígitos presentes em um número inteiro informado pelo usuárioQuantidade de visualizações: 1299 vezes |
|
Pergunta/Tarefa: Escreva um programa Java usa uma função recursiva para retornar a quantidade de dígitos presentes em um número inteiro informado pelo usuário. Você pode usar qualquer técnica de recursividade disponível, desde que o retorno da função seja um valor inteiro. Você deverá implementar a seguinte função recursiva:
public static int quantDigitos(int numero){
// seu código aqui
}
Informe um número inteiro de qualquer tamanho: 4983 O número informado possui 4 dígitos Veja a resolução comentada deste exercício usando Java console:
package exercicio;
import java.util.Scanner;
public class Exercicio{
public static void main(String[] args) {
// cria um novo objeto da classe Scanner
Scanner entrada = new Scanner(System.in);
// vamos pedir para o usuário informar um número inteiro
System.out.print("Informe um número inteiro de qualquer tamanho: ");
int num = Integer.parseInt(entrada.nextLine());
// vamos obter a quantidade de dígitos no número usando
// uma chamada à função recursiva quant_digitos()
int quant = quantDigitos(num);
// mostramos o resultado
System.out.println("O número informado possui " + quant +
" dígitos");
}
// função recursiva que recebe um número inteiro e retorna
// sua quantidade de dígitos
public static int quantDigitos(int numero){
if ((numero / 10) == 0){ // atenção: divisão inteira
// retorna o caso base
return 1;
}
else{
// efetua mais uma chamada recursiva
return 1 + quantDigitos(numero / 10);
}
}
}
|
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |




