Classes Abstratas
Linguagem de Programação / Java / Classes Abstratas / Turmas 3002 / 3010
Com base no diagrama abaixo, desenvolva o código: ATUALIZADO
Com base no diagrama abaixo, desenvolva o código: ATUALIZADO
Diagrama desenvolvido no astah
Muito boa tarde professor!
ResponderExcluirJá criei este projeto, porém minhas dúvidas são em relação ao conteúdo dos métodos, pois o gráfico só passa a ideá e não a dinâmica.
Possui algum enunciado?
Acredito ser possível a interpretação, mas para isso, entretanto, não adquiri esta habilidade.
ResponderExcluirPoderia me esclarecer?
Boa noite João!
ResponderExcluirLembrando que o polimorfismo está diretamente ligado ao conceito de herança!
Sempre devemos criar uma classe principal para testar a passagem de parâmetros!
Um abraço!
Pode solucionar :
ResponderExcluirpublic String getIsbn()
{
return Long.toString(isbn);
}
Atenção: o método getIsbn(), devolverá um long e não um String !
ResponderExcluirBoa João !!! Vou corrigir o diagrama !!!!
ResponderExcluirmétodo atualizaPreco da classe CompactDisc: this.preco = preco * (1+preco);
ResponderExcluirmétodo atualizaPreco da classe Livro: this.preco = preco * (1+preco) * 1.10;
Bom dia professor!
ResponderExcluirImplementei o código do método atualizaPreco da classe CompactDisc:
public void atualizaPreco(double preco)
{
this.preco = preco * (1+preco);
JOptionPane.showMessageDialog(null," PREÇO ATUALIZADO: "
+ real.format(this.preco));
}
// AQUI ELE FAZ O SEGUINTE CALCULO: EX: PARA 10 IMPRIME R$ 110,00.
Está correto?
Uma dúvida: Já que o diagrama só pede os gets.
ResponderExcluirComo utilizar este método construtor abaixo no lugar dos sets
e lincar aos gets da classe livro?
public Livro(int codigo, double preco, String autor, long isbn)
{
}
João, alterei o diagrama. Tente agora ! Att
ResponderExcluirEste comentário foi removido pelo autor.
ExcluirBoa tarde professor!
ExcluirI finish!
CLASSE PRODUTO:
package comum;
public abstract class Produto
{
private int codigo;
double preco;
public int getCodigo() {
return codigo;
}
public void setCodigo(int codigo) {
this.codigo = codigo;
}
public double getPreco() {
return preco;
}
public void setPreco(double preco) {
this.preco = preco;
}
public void atualizaPreco(double preco)
{
this.preco = preco * preco;
}
}
CLASSE COMPACTDISC:
package comum;
import javax.swing.JOptionPane;
import java.text.DecimalFormat;
public class CompactDisc extends Produto
{
private String artista;
private String gravadora;
DecimalFormat real = new DecimalFormat("R$ 00.00");
public String getArtista()
{
return artista;
}
public void setArtista(String artista)
{
this.artista = artista;
}
public String getGravadora()
{
return gravadora;
}
public void setGravadora(String gravadora)
{
this.gravadora = gravadora;
}
@Override // AQUI ELE FAZ O SEGUINTE CALCULO: EX: 10 IMPRIME 110.
public void atualizaPreco(double preco)
{
this.preco = preco * (1+preco);
JOptionPane.showMessageDialog(null," PREÇO ATUALIZADO: "
+ real.format(this.preco));
}
}
CLASSE LIVRO:
package comum;
import java.text.DecimalFormat;
import javax.swing.JOptionPane;
public class Livro extends Produto
{
private String autor;
private long isbn;
DecimalFormat real = new DecimalFormat("R$ 00.00");
public String getAutor()
{
return autor;
}
public String getIsbn()
{
return Long.toString(isbn);
}
public void setAutor(String autor)
{
this.autor = autor;
}
public void setIsbn(long isbn)
{
this.isbn = isbn;
}
@Override
public void atualizaPreco(double preco)
{
this.preco = preco * (1+preco) * 1.10;
JOptionPane.showMessageDialog(null," PREÇO ATUALIZADO: "
+ real.format(this.preco));
}
}
CLASSE PRINCIPAL:
package comum;
import java.text.DecimalFormat;
import javax.swing.JOptionPane;
public class TestaProduto {
public static void main(String[] args)
{
CompactDisc novo = new CompactDisc();
Livro n = new Livro();
DecimalFormat real = new DecimalFormat("R$ 00.00");
novo.setArtista(JOptionPane.showInputDialog(" Digite o nome do artista: "));
novo.setGravadora(JOptionPane.showInputDialog(" Digite o nome da gravadora: "));
novo.setCodigo(Integer.parseInt(JOptionPane.showInputDialog(" Digite o código: ")));
novo.setPreco(Double.parseDouble(JOptionPane.showInputDialog(" Digite o Preço: ")));
n.setCodigo(Integer.parseInt(JOptionPane.showInputDialog(" Digite o código: ")));
n.setAutor(JOptionPane.showInputDialog(" Digite o nome do Autor: "));
n.setIsbn(Long.parseLong(JOptionPane.showInputDialog(" Digite o ISBN: ")));
n.setPreco(Double.parseDouble(JOptionPane.showInputDialog(" Digite o Preço: ")));
JOptionPane.showMessageDialog(null,"\nCÓDIGO: " + novo.getCodigo()
+"\nARTISTA:" + novo.getArtista() + "\nGRAVADORA :" + novo.getGravadora()
+ "\nPREÇO: " + real.format(novo.getPreco()) );
novo.atualizaPreco(novo.getPreco());
JOptionPane.showMessageDialog(null,"\nCÓDIGO: " + n.getCodigo()
+"\nAUTOR:" + n.getAutor() + "\nISBN :" + n.getIsbn()
+ "\nPREÇO: " + real.format(n.getPreco()) );
n.atualizaPreco(n.getPreco());
}
}
Grande abraço!
Mandou bem João !!!! Alguém mais, gostaria colaborar !?
ResponderExcluir//classe de teste
ResponderExcluirpackage comum;
import javax.swing.JOptionPane;
import java.text.DecimalFormat;
public class Exercicio {
public static void main(String[] args) {
DecimalFormat real = new DecimalFormat("R$ 00.00");
CompactDisc cd1 = new CompactDisc();
cd1.setCodigo(Integer.parseInt(JOptionPane.showInputDialog(" Digite o código: ")));
cd1.setArtista(JOptionPane.showInputDialog(" Digite o nome do artista: "));
cd1.setGravadora(JOptionPane.showInputDialog(" Digite o nome da gravadora: "));
cd1.setPreco(Double.parseDouble(JOptionPane.showInputDialog(" Digite o Preço: ")));
Livro l1= new Livro();
l1.setCodigo(Integer.parseInt(JOptionPane.showInputDialog(" Digite o código: ")));
l1.setAutor(JOptionPane.showInputDialog(" Digite o nome do Autor: "));
l1.setIsbn(Long.parseLong(JOptionPane.showInputDialog(" Digite o ISBN: ")));
l1.setPreco(Double.parseDouble(JOptionPane.showInputDialog(" Digite o Preço: ")));
JOptionPane.showMessageDialog(null,"\nCódigo: " + cd1.getCodigo()
+"\nArtista:" + cd1.getArtista() + "\nGravadora :" + cd1.getGravadora()
+ "\nPreço: " + real.format(cd1.getPreco()) );
cd1.atualizaPreco(cd1.getPreco());
JOptionPane.showMessageDialog(null,"\nCódigo: " + l1.getCodigo()
+"\nAutor:" + l1.getAutor() + "\nISBN :" + l1.getIsbn()
+ "\nPreço: " + real.format(l1.getPreco()) );
l1.atualizaPreco(l1.getPreco());
}
}
package comum;
public abstract class Produto {
private int codigo;
private double preco;
public void atualizaPreco (double preco){
this.preco = preco;
}
public int getCodigo() {
return codigo;
}
public void setCodigo(int codigo) {
this.codigo = codigo;
}
public double getPreco() {
return preco;
}
public void setPreco(double preco) {
this.preco = preco;
}
}
package comum;
import javax.swing.JOptionPane;
import java.text.DecimalFormat;
public class CompactDisc extends Produto {
private String artista;
private String gravadora;
DecimalFormat real = new DecimalFormat("R$ 00.00");
public void atualizaPreco(double preco){
double novoValor;
novoValor = preco * (1+preco);
JOptionPane.showMessageDialog(null," Preço atualizado: " + real.format(novoValor));
}
public String getArtista() {
return artista;
}
public void setArtista(String artista) {
this.artista = artista;
}
public String getGravadora() {
return gravadora;
}
public void setGravadora(String gravadora) {
this.gravadora = gravadora;
}
}
package comum;
import javax.swing.JOptionPane;
import java.text.DecimalFormat;
public class Livro extends Produto{
private String autor;
private long isbn;
DecimalFormat real = new DecimalFormat("R$ 00.00");
public String getAutor() {
return autor;
}
public void setAutor(String autor) {
this.autor = autor;
}
public long getIsbn() {
return isbn;
}
public void setIsbn(long isbn) {
this.isbn = isbn;
}
public void atualizaPreco(double preco){
double novoValor;
novoValor = preco * (1+preco) * 1.10;
JOptionPane.showMessageDialog(null," Preço atualizado: " + real.format(novoValor));
}
}
package Comum;
ResponderExcluirpublic abstract class Produto {
private int codigo;
double preco;
Produto (){
codigo = 0012;
preco = 120.00;
}
Produto(int codigo, double preco){
this.codigo = codigo;
this.preco = preco;
}
public void atualizaPreco(double preco){
}
public int getCodigo (){
return codigo;
}
public double getPreco (){
return preco;
}
}
Este comentário foi removido pelo autor.
ResponderExcluirBoa noite professor.
ResponderExcluirDá uma olhada no código aí, vê se ta ok, pelo menos no programa funcionou.
CLASSE PRODUTO
package comum;
public abstract class Produto {
private int codigo;
private double preco;
public int getCodigo() {
return codigo;
}
public void setCodigo(int codigo) {
this.codigo = codigo;
}
public double getPreco() {
return preco;
}
public void setPreco(double preco) {
this.preco = preco;
}
public void atualizaPreco(double preco){
}
}
CLASSE COMPACT DISC
package comum;
public class CompactDisc extends Produto {
private String artista;
private String gravadora;
public String getArtista() {
return artista;
}
public void setArtista(String artista) {
this.artista = artista;
}
public String getGravadora() {
return gravadora;
}
public void setGravadora(String gravadora) {
this.gravadora = gravadora;
}
@Override
public void atualizaPreco (double preco){
setPreco(preco * (1+preco));
}
}
CLASSE LIVRO
package comum;
public class Livro extends Produto {
private String autor;
private long isbn;
public String getAutor() {
return autor;
}
public void setAutor(String autor) {
this.autor = autor;
}
public long getIsbn() {
return isbn;
}
public void setIsbn(long isbn) {
this.isbn = isbn;
}
public void atualizaPreco (double preco){
setPreco(preco * (1+preco) * 1.10);
}
}
CLASSE TESTE (PRINCIPAL)
package comum;
import javax.swing.*;
public class Teste {
public static void main(String[] args) {
CompactDisc CD = new CompactDisc();
CD.setArtista(JOptionPane.showInputDialog("Digite o artista:"));
CD.setGravadora(JOptionPane.showInputDialog("Digite a gravadora:"));
CD.atualizaPreco(Double.parseDouble(JOptionPane.showInputDialog("Digite o preço:")));
JOptionPane.showMessageDialog(null,"O artista é " +CD.getArtista());
JOptionPane.showMessageDialog(null,"A gravadora é " +CD.getGravadora());
JOptionPane.showMessageDialog(null,"O preço é " +CD.getPreco());
Livro Liv = new Livro();
Liv.setAutor(JOptionPane.showInputDialog("Digite o autor:"));
Liv.setIsbn(Long.parseLong(JOptionPane.showInputDialog("Digite o ISBN:")));
Liv.atualizaPreco(Double.parseDouble(JOptionPane.showInputDialog("Digite o preço:")));
JOptionPane.showMessageDialog(null,"O autor é " +Liv.getAutor());
JOptionPane.showMessageDialog(null,"O ISBN é " +Liv.getIsbn());
JOptionPane.showMessageDialog(null,"O preço é " +Liv.getPreco());
}
}
package ClassesAbstratas;
ResponderExcluirpublic abstract class Produto {
private int codigo;
private double preco;
public int getCodigo() {
return codigo;
}
public void setCodigo(int codigo) {
this.codigo = codigo;
}
public double getPreco() {
return preco;
}
public void setPreco(double preco) {
this.preco = preco;
}
public void atualizaPreco(double preco){
}
}
package ClassesAbstratas;
ResponderExcluirpublic class CompactDisc extends Produto {
private String artista;
private String gravadora;
public String getArtista() {
return artista;
}
public void setArtista(String artista) {
this.artista = artista;
}
public String getGravadora() {
return gravadora;
}
public void setGravadora(String gravadora) {
this.gravadora = gravadora;
}
@Override
public void atualizaPreco(double preco){
setPreco(preco * (1 + preco));
}
}
package ClassesAbstratas;
ResponderExcluirpublic class Livro extends Produto {
private String autor;
private long isbn;
public String getAutor() {
return autor;
}
public void setAutor(String autor) {
this.autor = autor;
}
public long getIsbn() {
return isbn;
}
public void setIsbn(long isbn) {
this.isbn = isbn;
}
@Override
public void atualizaPreco(double preco){
setPreco(preco * (1 + preco) * 1.10);
}
}
Aula de 20-5
ResponderExcluirpackage auladehj;
public abstract class Produto {
private int codigo;
private double preco;
public abstract void atualizaPreco(double preco);
public int getCodigo() {
return codigo;
}
public void setCodigo(int codigo) {
this.codigo = codigo;
}
public double getPreco() {
return preco;
}
public void setPreco(double preco) {
this.preco = preco;
}
}
package auladehj;
import javax.swing.*;
public class CompactDisc extends Produto{
private String artista;
private String gravadora;
/**
*
* @param preco
*/
@Override
public void atualizaPreco(double preco){
setPreco(preco * (1+preco));
JOptionPane.showMessageDialog(null,"O preço atualizado é: " +getPreco());
}
public String getArtista() {
return artista;
}
public void setArtista(String artista) {
this.artista = artista;
}
public String getGravadora() {
return gravadora;
}
public void setGravadora(String gravadora) {
this.gravadora = gravadora;
}
}
package auladehj;
import javax.swing.*;
public class Livro extends Produto {
private String autor;
private long isbn;
@Override
public void atualizaPreco(double preco){
setPreco((preco*(1+preco) * 1.10));
JOptionPane.showMessageDialog(null,"O preço atualizado é: " +getPreco());
}
public String getAutor() {
return autor;
}
public void setAutor(String autor) {
this.autor = autor;
}
public long getIsbn() {
return isbn;
}
public void setIsbn(long isbn) {
this.isbn = isbn;
}
}
package auladehj;
import javax.swing.*;
public class AppUsaProduto {
public static void main(String[] args) {
Livro L1= new Livro();
CompactDisc CD1 = new CompactDisc();
L1.setCodigo(Integer.parseInt(JOptionPane.showInputDialog("Codigo do Livro: ")));
L1.setPreco(Double.parseDouble(JOptionPane.showInputDialog("Digite o preço do Livro")));
L1.setAutor(JOptionPane.showInputDialog("Autor do Livro: "));
L1.setIsbn(Long.parseLong(JOptionPane.showInputDialog("Isbn do LIVRO: ")));
L1.atualizaPreco(L1.getPreco());
JOptionPane.showMessageDialog(null,"Autor: " +L1.getAutor());
JOptionPane.showMessageDialog(null,"ISBN: " +L1.getIsbn());
JOptionPane.showMessageDialog(null,"CODIGO: " +L1.getCodigo());
CD1.setArtista(JOptionPane.showInputDialog("artista do CD: "));
CD1.setGravadora(JOptionPane.showInputDialog("GRAVADORA do CD"));
CD1.setCodigo(Integer.parseInt(JOptionPane.showInputDialog("Codigo do CD: ")));
CD1.setPreco(Double.parseDouble(JOptionPane.showInputDialog("PReço do CD: ")));
CD1.atualizaPreco(CD1.getPreco());
JOptionPane.showMessageDialog(null,"Artista: " +CD1.getArtista());
JOptionPane.showMessageDialog(null,"gravadora: " +CD1.getGravadora());
JOptionPane.showMessageDialog(null,"codigo: " +CD1.getCodigo());
}
}
package ClassesAbstratas;
ResponderExcluirimport java.util.Scanner;
public class AppProduto {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
CompactDisc C1 = new CompactDisc();
Livro L1 = new Livro();
System.out.println("Informe o código do disco: ");
int codigoD = entrada.nextInt();
C1.setCodigo(codigoD);
System.out.println("Informe o artista do disco: ");
String artista = entrada.next();
C1.setArtista(artista);
System.out.println("Informe a gravadora do disco: ");
String gravadora = entrada.next();
C1.setGravadora(gravadora);
System.out.println("Informe o preço do disco: ");
double precoD = entrada.nextDouble();
System.out.println("Informe o código do livro: ");
int codigoL = entrada.nextInt();
L1.setCodigo(codigoL);
System.out.println("Informe o autor do livro: ");
String autor = entrada.next();
L1.setAutor(autor);
System.out.println("Informe o código ISBN do livro: ");
long isbn = entrada.nextInt();
L1.setIsbn(isbn);
System.out.println("Informe o preço do livro: ");
double precoL = entrada.nextDouble();
C1.atualizaPreco(precoD);
L1.atualizaPreco(precoL);
System.out.println("Código do disco: " + C1.getCodigo());
System.out.println("Artista do disco: " + C1.getArtista());
System.out.println("Gravadora do disco: " + C1.getGravadora());
System.out.println("Preço do disco: " + C1.getPreco());
System.out.println("Código do livro: " + L1.getCodigo());
System.out.println("Autor do livro: " + L1.getAutor());
System.out.println("Código ISBN do livro: " + L1.getIsbn());
System.out.println("Preço do livro: " + L1.getPreco());
}
}
Achei muito legal este conceito de Classes abstratas, é muito eficaz.
ResponderExcluirAmei o Blog,
package auladehj;
public abstract class Produto {
private int codigo;
private double preco;
public abstract void atualizaPreco(double preco);
public int getCodigo() {
return codigo;
}
public void setCodigo(int codigo) {
this.codigo = codigo;
}
public double getPreco() {
return preco;
}
public void setPreco(double preco) {
this.preco = preco;
}
}
public class CompactDisc extends Produto{
private String artista;
private String gravadora;
/**
*
* @param preco
*/
@Override
public void atualizaPreco(double preco){
setPreco(preco * (1+preco));
JOptionPane.showMessageDialog(null,"O preço atualizado é: " +getPreco());
}
public String getArtista() {
return artista;
}
public void setArtista(String artista) {
this.artista = artista;
}
public String getGravadora() {
return gravadora;
}
public void setGravadora(String gravadora) {
this.gravadora = gravadora;
}
}
public class Livro extends Produto {
private String autor;
private long isbn;
@Override
public void atualizaPreco(double preco){
setPreco((preco*(1+preco) * 1.10));
JOptionPane.showMessageDialog(null,"O preço atualizado é: " +getPreco());
}
public String getAutor() {
return autor;
}
public void setAutor(String autor) {
this.autor = autor;
}
public long getIsbn() {
return isbn;
}
public void setIsbn(long isbn) {
this.isbn = isbn;
}
}
public class AppUsaProduto {
public static void main(String[] args) {
Livro L1= new Livro();
CompactDisc CD1 = new CompactDisc();
L1.setCodigo(Integer.parseInt(JOptionPane.showInputDialog("Codigo do Livro: ")));
L1.setPreco(Double.parseDouble(JOptionPane.showInputDialog("Digite o preço do Livro")));
L1.setAutor(JOptionPane.showInputDialog("Autor do Livro: "));
L1.setIsbn(Long.parseLong(JOptionPane.showInputDialog("Isbn do LIVRO: ")));
L1.atualizaPreco(L1.getPreco());
JOptionPane.showMessageDialog(null,"Autor: " +L1.getAutor());
JOptionPane.showMessageDialog(null,"ISBN: " +L1.getIsbn());
JOptionPane.showMessageDialog(null,"CODIGO: " +L1.getCodigo());
CD1.setArtista(JOptionPane.showInputDialog("artista do CD: "));
CD1.setGravadora(JOptionPane.showInputDialog("GRAVADORA do CD"));
CD1.setCodigo(Integer.parseInt(JOptionPane.showInputDialog("Codigo do CD: ")));
CD1.setPreco(Double.parseDouble(JOptionPane.showInputDialog("PReço do CD: ")));
CD1.atualizaPreco(CD1.getPreco());
JOptionPane.showMessageDialog(null,"Artista: " +CD1.getArtista());
JOptionPane.showMessageDialog(null,"gravadora: " +CD1.getGravadora());
JOptionPane.showMessageDialog(null,"codigo: " +CD1.getCodigo());
}
}
Este comentário foi removido pelo autor.
ResponderExcluirEstive pesquisando esse conceito iremos usar muito no decorrer da vida de programador!!
ResponderExcluirpackage ClassesAbstratas;
ResponderExcluirpublic abstract class Produto {
private int codigo;
private double preco;
public int getCodigo() {
return codigo;
}
public void setCodigo(int codigo) {
this.codigo = codigo;
}
public double getPreco() {
return preco;
}
public void setPreco(double preco) {
this.preco = preco;
}
public void atualizaPreco(double preco){
}
}
package ClassesAbstratas;
ResponderExcluirpublic class CompactDisc extends Produto {
private String artista;
private String gravadora;
public String getArtista() {
return artista;
}
public void setArtista(String artista) {
this.artista = artista;
}
public String getGravadora() {
return gravadora;
}
public void setGravadora(String gravadora) {
this.gravadora = gravadora;
}
@Override
public void atualizaPreco(double preco){
setPreco(preco * (1 + preco));
}
}
package ClassesAbstratas;
ResponderExcluirimport java.util.Scanner;
public class AppProduto {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
CompactDisc C1 = new CompactDisc();
Livro L1 = new Livro();
System.out.println("Informe o código do disco: ");
int codigoD = entrada.nextInt();
C1.setCodigo(codigoD);
System.out.println("Informe o artista do disco: ");
String artista = entrada.next();
C1.setArtista(artista);
System.out.println("Informe a gravadora do disco: ");
String gravadora = entrada.next();
C1.setGravadora(gravadora);
System.out.println("Informe o preço do disco: ");
double precoD = entrada.nextDouble();
System.out.println("Informe o código do livro: ");
int codigoL = entrada.nextInt();
L1.setCodigo(codigoL);
System.out.println("Informe o autor do livro: ");
String autor = entrada.next();
L1.setAutor(autor);
System.out.println("Informe o código ISBN do livro: ");
long isbn = entrada.nextInt();
L1.setIsbn(isbn);
System.out.println("Informe o preço do livro: ");
double precoL = entrada.nextDouble();
C1.atualizaPreco(precoD);
L1.atualizaPreco(precoL);
System.out.println("Código do disco: " + C1.getCodigo());
System.out.println("Artista do disco: " + C1.getArtista());
System.out.println("Gravadora do disco: " + C1.getGravadora());
System.out.println("Preço do disco: " + C1.getPreco());
System.out.println("Código do livro: " + L1.getCodigo());
System.out.println("Autor do livro: " + L1.getAutor());
System.out.println("Código ISBN do livro: " + L1.getIsbn());
System.out.println("Preço do livro: " + L1.getPreco());
}
}