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: 13781 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. |
Excel ::: Fórmulas do Excel ::: Matemática e Estatística |
Como gerar números aleatórios inteiros entre 1 e 10 no Excel usando as funções ALEATÓRIO() e INT()Quantidade de visualizações: 636 vezes |
|
A função ALEATÓRIO() do Excel pode ser usada quando queremos gerar um número randômico, ou seja, um número aleatório entre 0 e 1. Nesse caso o número gerado é um número real aleatório que inclue o 0 mas não inclui o 1. No entanto, podemos usar um truque aritmético para gerar números aleatórios entre uma determinada faixa, por exemplo, de 1 até 10 (incluindo o 1 e o 10 na amostra). Para gerar um número randômico inteiro na faixa de 1 até 10 combinando as funções ALEATÓRIO e INT, digite o conteúdo a seguir em uma célula ou na barra de fórmulas do Excel: =INT(ALEATÓRIO()*(11-1)+1) Pressione Enter ou Tab e você terá um resultado parecido com: 7 É importante observar que, sempre que chamamos a função ALEATÓRIO(), todas as células que estão usando a fórmula serão atualizadas. Para evitar isso, com o cursor na janela de fórmulas, pressione F9. Isso fará com que a fórmula seja convertida em valor final e este valor seja atribuído à célula desejada. |
VB.NET ::: Dicas & Truques ::: Strings e Caracteres |
Como declarar e inicializar uma string em VB.NET usando o operador NewQuantidade de visualizações: 8654 vezes |
|
Nesta dica mostrarei como podemos usar o operador New para criar e inicializar um novo objeto da classe String em VB.NET. Veja o código completo para o exemplo:
Imports System
Module Program
Sub Main(args As String())
' declara uma variável do tipo String
Dim frase As String
' inicializa a string usando New
frase = New String("Você já conhece o site Arquivo de Códigos?")
' vamos mostrar o resultado
Console.WriteLine("A frase é: " & frase)
Console.WriteLine(vbCrLf & "Pressione qualquer tecla para sair...")
' pausa o programa
Console.ReadKey()
End Sub
End Module
Ao executar este código VB.NET nós teremos o seguinte resultado: A frase é: Você já conhece o site Arquivo de Códigos? |
Java ::: Java Swing - Gerenciadores de Layout ::: GridBagLayout |
Como criar uma tela de login usando o gerenciador de layout GridBagLayout do Java SwingQuantidade de visualizações: 36162 vezes |
|
Temos que aceitar o fato de que o uso de uma IDE visual facilita muito o trabalho de criação de interfaces gráficas (GUI). Contudo, é muito bom poder escrever telas via código mesmo. E o gerenciador de layout GridBagLayout possibilita a criação de layouts realmente avançados. O trecho de código abaixo mostra como criar uma tela de login usando este gerenciador. Guarde este código. Ele poder ser útil na criação de outros formulários:
package arquivodecodigos;
import javax.swing.*;
import javax.swing.border.*;
import java.awt.*;
public class Estudos extends JFrame{
public Estudos(){
super("Tela de login usando GridBagLayout");
// define o layout
setLayout(new GridBagLayout());
// define uma borda para aumentar o espaço
// entre as bordas da janela e o gerenciador
// de layout
((JComponent)getContentPane()).setBorder(
new EmptyBorder(5, 8, 8, 8));
// cria o GridBagConstraints
GridBagConstraints gbc = new GridBagConstraints();
// controla o espaço entre os componentes
// e as linhas do GridBagLayout.
// aqui nós definimos 3 pixels para os
// lados de cima, esquerda, inferior e direita
gbc.insets = new Insets(3, 3, 3, 3);
// adiciona componentes à janela
// esta primeira JLabel ocupará duas células
// na primeira linha
gbc.gridy = 0; // linha
gbc.gridx = 0; // coluna
gbc.gridwidth = 2; // duas células na linha
// alinha o label à esquerda
gbc.anchor = GridBagConstraints.WEST;
JLabel infoLabel = new JLabel("Dados do Usuário:");
// vamos aumentar a fonte da JLabel
infoLabel.setFont(new Font("SansSerif",
Font.BOLD, 14));
// vamos adicionar um espaço extra na parte
// inferior da JLabel
infoLabel.setBorder(
new EmptyBorder(0, 0, 5, 0));
add(infoLabel, gbc);
gbc.gridy = 1; // linha
gbc.gridx = 0; // coluna
gbc.gridwidth = 1;
// cria a label do usuário
JLabel usuarioLabel = new JLabel("Usuário:");
add(usuarioLabel, gbc);
gbc.gridy = 1; // linha
gbc.gridx = 1; // coluna
// cria a JTextField do usuário
JTextField usuarioTxt = new JTextField(13);
add(usuarioTxt, gbc);
gbc.gridy = 2; // linha
gbc.gridx = 0; // coluna
// cria a label da senha
JLabel usuarioSenha = new JLabel("Senha:");
add(usuarioSenha, gbc);
gbc.gridy = 2; // linha
gbc.gridx = 1; // coluna
// cria a JPasswordField da senha
JPasswordField senhaTxt = new JPasswordField(13);
add(senhaTxt, gbc);
gbc.gridy = 3; // linha
gbc.gridx = 1; // coluna
gbc.gridwidth = 2; // duas células na linha
// alinha os botões à direita
gbc.anchor = GridBagConstraints.EAST;
JPanel botoesPanel = new JPanel();
botoesPanel.add(new JButton("Cancelar"));
botoesPanel.add(new JButton("OK"));
add(botoesPanel, gbc);
pack(); // ajusta o tamanho da janela ao
// dos componentes
setVisible(true);
}
public static void main(String args[]){
Estudos app = new Estudos();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Ao executar este código Java Swing nós teremos o seguinte resultado: ![]() |
Nossas 20 dicas & truques de programação mais populares |
|
JavaScript - Como remover os espaços no final de uma string em JavaScript usando uma função trim_final() personalizada |
Você também poderá gostar das dicas e truques de programação abaixo |
|
Delphi - Como calcular o cateto adjascente dadas as medidas da hipotenusa e do cateto oposto em Delphi |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
|
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






