Java ::: Desafios e Lista de Exercícios Resolvidos ::: Programação Orientada a Objetos |
POO - Programação Orientada a Objetos - Exercícios Resolvidos de Java - Ex. 2 - A classe Circulo (construtores, métodos, getters e setters e encapsulamento)Quantidade de visualizações: 20307 vezes |
|
Pergunta/Tarefa: Escreva uma classe Circulo para representar círculos. Esta classe deverá conter os seguintes atributos e métodos: a) Uma variável privada do tipo double chamada raio que guardará o valor do raio atual do circulo. b) Métodos get() e set() públicos que permitem definir e acessar o valor da variável raio. c) Um construtor que recebe o valor do raio como argumento. d) Um método getArea() que calcula e retorna a área do círculo. e) Um método getCircunferencia() que calcula e retorna a circunferência do círculo. f) Um método aumentarRaio() que recebe um valor double e o usa como percentual para aumentar o raio do círculo. Crie uma classe contendo um método main() para testar a funcionalidade da classe Circulo. Eis um exemplo de entrada e saída: ![]() Resposta/Solução: Veja a resolução comentada deste exercício usando Java console: Circulo.java:
package estudos;
public class Circulo{
private double raio; // guarda o raio atual do círculo
// construtor que recebe o valor do raio como argumento
public Circulo(double raio){
this.raio = raio;
}
// permite obter o raio do círculo
public double getRaio(){
return raio;
}
// permite definir o raio do círculo
public void setRaio(double raio){
this.raio = raio;
}
// obtém a área do círculo
public double getArea(){
double area = Math.PI * Math.pow(this.raio, 2);
return area;
}
// obtém a circunferência do círculo
public double getCircunferencia(){
double circunferencia = (2 * Math.PI) * this.raio;
return circunferencia;
}
// permite aumentar o raio de acordo com uma porcentagem fornecida
public void aumentarRaio(double porcentagem){
this.raio = this.raio + (porcentagem / 100.0) * this.raio;
}
}
Veja agora o método main() que nos permite testar a funcionalidade da classe Circulo:
package estudos;
import java.util.Scanner;
public class Estudos {
public static void main(String[] args) {
// vamos criar uma instância da classe Circulo
Scanner entrada = new Scanner(System.in);
System.out.print("Informe o raio do círculo: ");
double raio = Double.parseDouble(entrada.nextLine());
Circulo c = new Circulo(raio);
// vamos mostrar o valor do raio atual
System.out.println("Raio: " + c.getRaio());
// vamos mostrar a área
System.out.println("Área: " + c.getArea() + " metros quadrados");
// vamos mostrar a circunferência
System.out.println("Circunferência: " + c.getCircunferencia() + " metros");
// vamos aumentar o raio do circulo em uma determinada porcentagem
System.out.print("\nInforme o percentual de aumento do raio: ");
double percentual = Double.parseDouble(entrada.nextLine());
c.aumentarRaio(percentual);
// vamos mostrar o valor do raio atual
System.out.println("Raio: " + c.getRaio());
// vamos mostrar a área
System.out.println("Área: " + c.getArea() + " metros quadrados");
// vamos mostrar a circunferência
System.out.println("Circunferência: " + c.getCircunferencia() + " metros");
}
}
|
Java ::: Dicas & Truques ::: Threads |
Threads em Java - O que são threads e como usá-las em seus programas JavaQuantidade de visualizações: 13906 vezes |
|
Uma thread é um fluxo de execução de uma determinada tarefa em um programa. Na programação tradicional, temos apenas um fluxo de execução que começa a executar no início do programa e vai até o final. Com o uso de threads podemos ter várias tarefas sendo executadas ao mesmo tempo, cada uma independente da outra. Em programas que contêm interfaces gráficas, o uso de múltiplos fluxos de execução (ou threads) é muito comum. Enquanto digitamos em uma caixa de texto, uma animação pode estar sendo executada ou um arquivo sendo baixado. O Java permite que tenhamos várias threads sendo executadas ao mesmo tempo. Cada tarefa (ou thread) é uma instância da interface Runnable. Esta interface descreve apenas um método: public void run();
// criamos uma classe que servirá como thread
class MinhaThread extends Thread{
private String nome;
public MinhaThread(String nome){
this.nome = nome;
}
public void run(){
for(int i = 1; i <= 20; i++){
System.out.println(nome + ": " + i);
}
}
}
public class Estudos{
public static void main(String[] args){
// vamos criar duas threads
MinhaThread t1 = new MinhaThread("Thread 1");
t1.start(); // chamamos o método start() e não run()
MinhaThread t2 = new MinhaThread("Thread 2");
t2.start(); // chamamos o método start() e não run()
System.exit(0);
}
}
Salve este código como Estudos.java, compile e execute. Veja que cada thread escreverá de 1 a 20 na tela. Observe como as duas threads se alternam em suas tarefas, ou seja, de tempos em tempos uma cede lugar para que a outra seja executada. Note também que, embora nossa classe tenha um método run() nós não o chamamos. O que fazemos é chamar o método start(), que torna a thread elegível para ser executada a qualquer momento. Uma outra forma de criarmos uma thread é fazer com que nossa classe implemente a interface Runnable. Veja:
// criamos uma classe que servirá como thread
class MinhaThread implements Runnable{
private String nome;
public MinhaThread(String nome){
this.nome = nome;
}
public void run(){
for(int i = 1; i <= 20; i++){
System.out.println(nome + ": " + i);
}
}
}
public class Estudos{
public static void main(String[] args){
// vamos criar duas threads
MinhaThread mt1 = new MinhaThread("Thread 1");
Thread t1 = new Thread(mt1);
t1.start();
MinhaThread mt2 = new MinhaThread("Thread 2");
Thread t2 = new Thread(mt2);
t2.start();
System.exit(0);
}
}
O funcionamento do código é o mesmo. A diferença é que agora, a classe usada como thread implementa a interface Runnable. A forma de criação da thread também foi alterada. Agora nós criamos instâncias de Thread fornecendo nossa classe thread como argumento e chamamos o método start da classe Thread e não de nossa própria classe, como fizemos anteriormente. |
Delphi ::: VCL - Visual Component Library ::: TListBox |
Como excluir o item ou itens selecionados em uma TListBox do Delphi usando a função DeleteSelectedQuantidade de visualizações: 13716 vezes |
Em algumas ocasiões nós precisamos excluir o item ou os itens selecionados em uma TListBox. Isso pode ser feito com o auxílio do método DeleteSelected da classe TListBox. Veja um trecho de código no qual excluímos apenas o item selecionado:
procedure TForm3.FormCreate(Sender: TObject);
begin
// vamos adicionar alguns itens na ListBox
ListBox1.Items.Add('Goiânia');
ListBox1.Items.Add('Curitiba');
ListBox1.Items.Add('Brasilia');
end;
procedure TForm3.Button1Click(Sender: TObject);
begin
// vamos excluir o item selecionado
ListBox1.DeleteSelected;
end;
É possível conseguir o mesmo resultado usando o método Delete() do objeto Items (do tipo TStrings). Veja: procedure TForm3.Button1Click(Sender: TObject); begin // vamos excluir o item selecionado ListBox1.Items.Delete(ListBox1.ItemIndex); end; Note que o método Delete() do objeto Items exige o índice do elemento a ser removido. Com o método DeleteSelected da classe TListBox esta exigência não existe. Além disso, o método DeleteSelected permite excluir mais de um elemento selecionado, ou seja, ele excluir todos os elementos selecionados. Veja:
procedure TForm3.FormCreate(Sender: TObject);
begin
// vamos adicionar alguns itens na ListBox
ListBox1.Items.Add('Goiânia');
ListBox1.Items.Add('Curitiba');
ListBox1.Items.Add('Brasilia');
// para que este exemplo funcione corretamente, a ListBox
// deverá permitir seleção múltipla
ListBox1.MultiSelect := True;
end;
procedure TForm3.Button1Click(Sender: TObject);
begin
// vamos excluir todos os itens selecionados
ListBox1.DeleteSelected;
end;
Execute este código, selecione mais de um item e clique no botão para verificar o resultado. Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Python ::: NumPy Python Library (Biblioteca Python NumPy) ::: Passos Iniciais |
Machine Learning para iniciantes - Como usar a biblioteca NumPy em seus programas PythonQuantidade de visualizações: 2491 vezes |
|
Criada em 2005 por Travis Oliphant, a biblioteca NumPy é uma biblioteca Python que, embora escrita parcialmente em código Python, possui trechos de código C ou C++, principalmente as partes que requerem processamento ou computação mais veloz. Estudiosos, entusiastas e desenvolvedores de soluções envolvendo Data Science, Deep Learning, Machine Learning e Inteligência Artificial (IA) em geral, encontram nessa biblioteca muitas funções úteis para a criação e manipulação de vetores e matrizes, além de funções para trabalhar no domínio de algebra linear e transformação fourier. A biblioteca NumPy (Numerical Python) é um projeto open source e pode ser usada livremente em qualquer programa Python. Uma das razões para a sua adoção é a substituição das listas Python pelos vetores e matrizes NumPy, já que estes últimos são 50 vezes mais rápidas que as listas Python, que muitas vezes fazem o papel de arrays. Minha instalação do Python já possui a biblioteca NumPy? A melhor forma de descobrir se a NumPy já está disponível para os seus códigos Python é rodando o seguinte trecho de código: # importamos a bibliteca NumPy import numpy as np def main(): # construimos um vetor de cinco elementos vetor = np.array([20, 3, 87, 4, 120]) # imprimimos seu conteúdo print(vetor) if __name__== "__main__": main() Se você vir o resultado abaixo: [ 20 3 87 4 120] então sua instalação do Python já contém a biblioteca NumPy e você está pronto(a) para experimentar as demais dicas e truques dessa seção. Porém, se você ainda não tiver a NumPy, a seguinte mensagem de erro será exibida:
Exception has occurred: ModuleNotFoundError
No module named 'numpy'
File "C:\estudos_python\estudos.py", line 2, in <module>
import numpy as np
Não se desespere. Basta abrir uma janela de prompt e disparar o comando abaixo: pip install numpy Aguarde alguns minutos para que o Pip baixe e instale a biblioteca. Em seguida tente executar o código acima novamente. Agora é só aproveitar tudo que a biblioteca NumPy tem a nos oferecer. |
Nossas 20 dicas & truques de programação mais populares |
|
JavaScript - JavaScript para iniciantes - Como obter o valor do maior número possível em JavaScript usando Number.MAX_VALUE PHP - Manipulação de texto em PHP - Como acessar e modificar os caracteres individuais de uma string |
Você também poderá gostar das dicas e truques de programação abaixo |
|
CSS - Como definir uma imagem de fundo para a página HTML em CSS usando a propriedade background-image JavaScript - Como construir uma determinada data e hora usando o construtor do objeto Date do JavaScript |
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 |






