Baixe o app para aproveitar ainda mais
Prévia do material em texto
Te ajudei??? Curta!!! Contribua!!! PIX: leeaugust@yahoo.com 1 JAVA COMO PROGRAMAR 10ª EDIÇÃO - Capítulo 3.2 – Variáveis de instância, métodos set e get Classe Conta Classe ContaTeste Saída Te ajudei??? Curta!!! Contribua!!! PIX: leeaugust@yahoo.com 2 Diagrama de Classe UML de Conta Conta - nome: String + setNome(nome: String) +getNome(): String Capítulo 3.4 - Inicialização de objetos com construtores Classe Conta Classe ContaTeste Saída Te ajudei??? Curta!!! Contribua!!! PIX: leeaugust@yahoo.com 3 Diagrama de Classe UML de Conta Conta - nome: String «construtor» Conta(nome: String) + setNome(nome: String) +getNome(): String Capítulo 3.5 – Classe Conta com um saldo; números de ponto flutuante Classe Conta Te ajudei??? Curta!!! Contribua!!! PIX: leeaugust@yahoo.com 4 Classe ContaTeste Saída Te ajudei??? Curta!!! Contribua!!! PIX: leeaugust@yahoo.com 5 Diagrama de Classe UML de Conta Conta - nome: String - saldo: double «construtor» Conta(nome: String, saldo: double) + depositar(valorDepositado: double) +getSaldo(): double + setNome(nome: String) +getNome(): String Capítulo 3.6 – Estudo de Caso de GUIs e imagens gráficas: utilizando caixas de diálogo Classe Dialogo1 Saída Classe DialogoNome Te ajudei??? Curta!!! Contribua!!! PIX: leeaugust@yahoo.com 6 Questões 3.11 (Classe Account modificada) Modifique a classe Account (Figura 3.8) para fornecer um método chamado withdraw que retira dinheiro de uma Account. Assegure que o valor de débito não exceda o saldo de Account. Se exceder, o saldo deve ser deixado inalterado e o método deve imprimir uma mensagem que indica "Withdrawal amount exceeded account balance" [Valor de débitoexcedeu o saldo da conta]. Modifique a classe AccountTest (Figura 3.9) para testar o método withdraw. Classe Conta package cap3; // Classe Conta com uma variável de instância "saldo" do tipo double e um construtor // e método "depositar" que executa a validação. public class Conta { private String nome; // variável de instância private double saldo; // variável de instância // Construtor de Conta que recebe dois parâmetros public Conta(String nome, double saldo) { this.nome = nome; // atribui nome a variável de instância nome // valida que o saldo é maior que 0.0; se não for, // a variável de instância saldo mantém seu valor inicial padrão de 0.0 if (saldo > 0.0) // se o saldo for válido this.saldo = saldo; // o atribui à variável de instância saldo } // método que deposita (adiciona) apenas a quantia válida no saldo public void depositar(double valorDepositado) { if ( valorDepositado > 0.0 ) // se depositaValor for válido saldo = saldo + valorDepositado; // o adiciona ao saldo } // método que debita (retira) apenas a quantia válida no saldo public void debitar(double valorDebitado) { if ( valorDebitado > saldo ) { System.out.print("Valor de débito excedeu o saldo da conta!"); }else { saldo = saldo - valorDebitado; } } // método que retorna o saldo da conta public double getSaldo() { return saldo; } // método que define o nome public void setNome(String nome) { this.nome = nome; } // método que retorna o nome public String getNome() { return nome; // retorna o valor de nome ao chamador } // fim do método getNome } // fim da classe Conta Te ajudei??? Curta!!! Contribua!!! PIX: leeaugust@yahoo.com 7 Classe ContaTeste Te ajudei??? Curta!!! Contribua!!! PIX: leeaugust@yahoo.com 8 3.12 (Classe Invoice) Crie uma classe chamada Invoice para que uma loja de suprimentos de informática a utilize para representar uma fatura de um item vendido nela. Uma Invoice (fatura) deve incluir quatro partes das informações como variáveis de instância — o número (tipo String), a descrição (tipo String), a quantidade comprada de um item (tipo int) e o preço por item (double). Sua classe deve ter um construtor que inicializa as quatro variáveis de instância. Forneça um método set e um get para cada variável de instância. Além disso, forneça um método chamado getInvoiceAmount que calcula o valor de fatura (isto é, multiplica a quantidade pelo preço por item) e depois retorna esse valor como double. Se a quantidade não for positiva, ela deve ser configurada como 0. Se o preço por item não for positivo, ele deve ser configurado como 0.0. Escreva um aplicativo de teste chamado InvoiceTest que demonstra as capacidades da classe Invoice. Classe Fatura package cap3; public class Fatura { private String numero; private String descricao; private int quantidade; private double preco; private double total; // métodos set e get do numero public void setNumero(String numero) { this.numero = numero; } public String getNumero() { return numero; } // métodos set e get da descrição public void setDescricao(String descricao) { this.descricao = descricao; } public String getDescricao() { return descricao; } // métodos set e get da quantidade public void setQuantidade(int quantidade) { if (quantidade < 0) quantidade = 0; this.quantidade = quantidade; } public int getQuantidade() { return quantidade; } // métodos set e get do preço public void setPreco(double preco) { if (preco < 0) preco = 0; this.preco = preco; } public double getPreco() { return preco; } // método que calcula o total da Fatura public double totalFatura() { return total = preco * quantidade; } } Te ajudei??? Curta!!! Contribua!!! PIX: leeaugust@yahoo.com 9 Classe FaturaTeste Te ajudei??? Curta!!! Contribua!!! PIX: leeaugust@yahoo.com 10 3.13 (Classe Employee) Crie uma classe chamada Employee que inclua três variáveis de instância — um primeiro nome (tipo String), um sobrenome (tipo String) e um salário mensal (double). Forneça um construtor que inicializa as três variáveis de instância. Forneça um método set e um get para cada variável de instância. Se o salário mensal não for positivo, não configure seu valor. Escreva um aplicativo de teste chamado EmployeeTest que demonstre as capacidades da classe Employee. Crie dois objetos Employee e exiba o salário anual de cada objeto. Então dê a cada Employee um aumento de 10% e exiba novamente o salário anual de cada Employee. Classe Funcionario Te ajudei??? Curta!!! Contribua!!! PIX: leeaugust@yahoo.com 11 Classe FuncionarioTeste package cap3; import java.util.Scanner; public class FuncionarioTeste { public static void main(String[] args) { // Inicialização do construtor Funcionario funcionario1 = new Funcionario(); Funcionario funcionario2 = new Funcionario(); // Entrada de dados Scanner imput = new Scanner(System.in); System.out.printf("Nome do 1º Funcionario: "); String nome1 = imput.next(); funcionario1.setNome(nome1); System.out.printf("Sobrenome do 1º Funcionario: "); String sobrenome1 = imput.next(); funcionario1.setSobrenome(sobrenome1); System.out.printf("Salário do 1º Funcionario: "); double salario1 = imput.nextDouble(); funcionario1.setSalario(salario1); System.out.println("----------------------------------"); System.out.printf("Nome do 2º Funcionario: "); String nome2 = imput.next(); funcionario2.setNome(nome2); System.out.printf("Sobrenome do 2º Funcionario: "); String sobrenome2 = imput.next(); funcionario2.setSobrenome(sobrenome2); System.out.printf("Salário do 2º Funcionario: "); double salario2 = imput.nextDouble(); funcionario2.setSalario(salario2); // Exibição dos dados System.out.printf("%n1º Funcionário %s %s recebe %.2f /ano.", funcionario1.getNome(), funcionario1.getSobrenome(),funcionario1.getSalario()); System.out.printf("%n2º Funcionário %s %s recebe %.2f /ano.%n", funcionario2.getNome(), funcionario2.getSobrenome(), funcionario2.getSalario()); System.out.println("----------------------------------"); // Exibição dos dados com aumento de 10% System.out.print("Total anual com aumento de 10%"); System.out.printf("%n1º Funcionário %s %s recebe %.2f /ano.", funcionario1.getNome(), funcionario1.getSobrenome(), ( funcionario1.getSalario()+(funcionario1.getSalario()*0.10)) ); System.out.printf("%n2º Funcionário %s %s recebe %.2f /ano.", funcionario2.getNome(), funcionario2.getSobrenome(), ( funcionario2.getSalario()+(funcionario2.getSalario()*0.10)) ); } } Te ajudei??? Curta!!! Contribua!!! PIX: leeaugust@yahoo.com 12 Capítulo 4.7 – Classe Estudante: instruções if…else aninhadas Classe Estudante package cap4; // Classe Estudante que armazena o nome e a média de um aluno. public class Estudante { private String nome; private double media; // construtor inicializa variáveis de instância public Estudante (String nome, double media) { this.nome = nome; // valida que a média é > 0.0 e <= 100.0; caso contrário, // armazena o valor padrão da média da variável de instância (0.0) if ( media > 0.0 ) if ( media <= 100.0 ) this.media = media; // atribui a variável de instância } // define o nome do Estudante public void setNome ( String nome ) { this.nome = nome; } // recupera o nome do Estudante public String getNome () { return nome; } // define a média do Estudante public void setMedia ( double mediaEstudante ) { // valida que a média é > 0.0 e <= 100.0; caso contrário, // armazena o valor atual da média da variável de instância if ( media > 0.0 ) if ( media <= 100.0 ) this.media = media; // atribui a variável de instância } // recupera a media do Estudante public double getMedia () { return media; } // determina e retorna a letra da nota do Estudante public String getNotaLetra() { String notaLetra = ""; // inicializado como uma String vazia if ( media >= 90.0 ) notaLetra = "A"; else if ( media >= 80.0 ) notaLetra = "B"; else if ( media >= 70.0 ) notaLetra = "C"; else if ( media >= 60.0 ) notaLetra = "D"; else notaLetra = "F"; return notaLetra; } } // finaliza a classe Estudante Te ajudei??? Curta!!! Contribua!!! PIX: leeaugust@yahoo.com 13 Classe EstudanteTeste Saída Te ajudei??? Curta!!! Contribua!!! PIX: leeaugust@yahoo.com 14 Capítulo 4.9 – Formulando algoritmos: repetição controlada por contador Classe MediaClasse Saída Te ajudei??? Curta!!! Contribua!!! PIX: leeaugust@yahoo.com 15 Capítulo 4.10 – Formulando algoritmos: repetição controlada por sentinela Classe MediaClasse package cap4; import java.util.Scanner; // programa utiliza a classe Scanner // Resolvendo o problema da média da classe usando a repetição controlada por sentinela. public class MediaClasse { public static void main(String[] args) { // cria Scanner para obter entrada a partir da janela de comando Scanner input = new Scanner(System.in); // fase de inicialização int total = 0; // inicializa a soma das notas inseridas pelo usuário int contador = 0; // inicializa nº da notas inseridas até agora // fase de processamento // solicita entrada e lê a nota do usuário System.out.print( "Entre com a nota ou -1 para sair: " ); int nota = input.nextInt(); // faz um loop até ler o valor de sentinela inserido pelo usuário while ( nota != -1 ) { total = total + nota; // adiciona nota ao total contador = contador + 1; // incrementa o contador // solicita entrada e lê a próxima nota fornecida pelo usuário System.out.print( "Entre com a nota ou -1 para sair: " ); nota = input.nextInt(); } // fase de término // se o usuário inseriu pelo menos uma nota... if ( contador !=0 ) { // usa número com ponto decimal para calcular a média das notas double media = (double) total / contador; // exibe o total e a média (com dois dígitos de precisão) System.out.printf( "%nTotal das %d entradas: %d%n", contador, total ); System.out.printf( "Média da classe: %.2f%n", media); } else System.out.println( "Nenhuma nota foi informada." ); } } // fim da classe MediaClasse Saída Te ajudei??? Curta!!! Contribua!!! PIX: leeaugust@yahoo.com 16 Capítulo 4.11 – Formulando algoritmos: instruções de controle aninhadas Classe Analise Saída (teste com a mensagem de bônus) Saída
Compartilhar