Duvida: Exercício iniciante (Casa do Código: JAVA)
5 respostas
java
B
Bruno_Mazello
Galera, primeiramente é um prazer participar do fórum!
Sou novo na área (Estou aprendendo ainda o básico sobre a linguagem) e gostaria de tirar uma dúvida.
Estou lendo e fazendo junto com o livro da casa do código (Desbravando Java e Orientação a Objetos) e existe uma parte na qual não estou conseguindo fazer com que o código compile corretamente.
Usei o Private no VALOR e agora não consigo utilizar ele já que apenas a classe LIVRO tem o controle. Porém ao criar o adicionarValor continuo não conseguindo usar o livro.valor no meu código.
publicclassCadastroDeLivros{publicstaticvoidmain(String[]args){Autorautor=newAutor();autor.nome="Bruno Mazello";autor.cpf="1321231321321";autor.email="[email removido]";Livrolivro=newLivro();livro.nome="Java 8 Prático";livro.descricao="Novos recursos de Linguagem";livro.valor=59.90;// Não consigo utilizar.livro.isbn="978-85-66250-46-6";livro.mostrarDetalhes();autor.detalhesAutor();AutoroutroAutor=newAutor();outroAutor.nome="José Silva";outroAutor.cpf="088232131231231";outroAutor.email="[email removido]";LivrooutroLivro=newLivro();outroLivro.nome="Lógica de Programação";outroLivro.descricao="Crie seus próprios programas";outroLivro.valor=59.90;outroLivro.isbn="978-85-66250-22-0";outroLivro.mostrarDetalhes();outroAutor.detalhesAutor();}}
Grato pela ajuda e desculpem a “simplicidade” já que ainda estou iniciando.
Olá Bruno, seja bem vindo ao forum!! Ps: sou novo aqui tbm
vamos lá, então como seu atributo ta como PRIVATE somente a classe Livro tem acesso a esse atributo, sugiro que você leia um pouco sobre get e set do java, os famosos métodos acesssores
dei uma pesquisada no forum é aqui tem uma explicação legal
qualquer duvida poste novamente!!
D
DiegoDC
Faça como o amigo acima falou. Eu estou lendo esse livro também, estou no capítulo seguinte
Mas respondendo a questão, quando você não usava o “private”, você possuía acesso direto aos atributos da classe Livro, por isso você conseguia colocar dessa forma;
Porém como você deixou o método privado, você não terá acesso direto à acesse atributo, então terá que passar o valor por parâmetro, usando o método chamado Set, ficando dessa forma;
livro.setValor(59.9);
Mas para funcionar você precisa ter criado o método Setter dele na classe Livro que seria:
Bruno, tenho esse código da faculdade, veja se te serve:
Principal.java
packageprincipal;publicclassPrincipal{publicstaticvoidmain(String[]args){// add new accountContacontaDiego=newConta();contaDiego.nome="Diego Adler";contaDiego.tipo="CC";contaDiego.saldo=0;// fim add account // add new movementcontaDiego.depositar(200);contaDiego.extrato();contaDiego.sacar(15);contaDiego.extrato();contaDiego.transferir(199);contaDiego.extrato();//end of movement1ContacontaDiego0=newConta();contaDiego0.nome="Antonio Alberto";contaDiego0.tipo="CP";contaDiego0.saldo=49.558;// fim add account // add new movement contaDiego0.depositar(200520.22);contaDiego0.extrato();contaDiego0.sacar(18000.55);contaDiego0.extrato();contaDiego0.transferir(582.55);contaDiego0.extrato();//end of movement2ContacontaDiego10=newConta();contaDiego10.nome="Antonio Carlos";contaDiego10.tipo="CC";contaDiego10.saldo=-198.558;// fim add account // add new movement contaDiego10.depositar(20.22);contaDiego10.extrato();contaDiego10.sacar(18000.55);contaDiego10.extrato();contaDiego10.transferir(582.55);contaDiego10.extrato();contaDiego10.transferir(2.85);contaDiego10.extrato();//Scanner entrada = new Scanner(System.in);//saldo = entrada.nextDouble();//saldo = saldo +valorDepositado;}//class}// public
Conta.java
/* spencer aula 2 semestre *///import java.util.Scanner;packageprincipal;publicclassConta{Stringnome;Stringtipo;doublesaldo;doublevalorDepositado;doublevalorSaque;doublevalorTransfere;voidsacar(doublevalorSaque){if(valorSaque>saldo){System.out.println("***Voce não pode sacar - Saldo Insuficiente***");this.saldo=saldo;}else{this.saldo=saldo-valorSaque;System.out.println("|--------------------------------------------|");System.out.println("| Valor Saque: R$ ........"+valorSaque+"|");System.out.println("|--------------------------------------------|");}}voidtransferir(doublevalorTransfere){if(valorTransfere>saldo){System.out.println("|--------------------------------------------|");System.out.println("|*Não Foi Possivel Realizar Sua Transferencia|");System.out.println("|-------- ***Saldo Insuficiente*** --------|");System.out.println("|--------------------------------------------|");System.out.println("|Valor Transferido: R$ ......"+valorTransfere+" |");System.out.println("|--------------------------------------------|");this.saldo=saldo;}else{this.saldo=saldo-valorTransfere;System.out.println("|--------------------------------------------|");System.out.println("|-----------C o m p r o v a n t e------------|");System.out.println("|--------------------------------------------|");System.out.println("| Valor Transferido: R$ .......... "+valorTransfere+" |");System.out.println("|--------------------------------------------|");}}voiddepositar(doublevalorDepositado){//System.out.println("Olá, quanto vc quer depositar? \n");this.saldo=saldo+valorDepositado;System.out.println("|--------------------------------------------|");System.out.println("|-----------C o m p r o v a n t e------------|");System.out.println("|--------------------------------------------|");System.out.println("| Valor Depositado: R$..........."+valorDepositado+"|");System.out.println("|--------------------------------------------|");}voidextrato(){System.out.println("* VOCÊ SOLICITOU UM EXTRATO *Sujeito a mudanças no decorrer do dia! *");System.out.println("=========================== E X T R A T O ============================");System.out.println("Ola "+nome);System.out.println("Seu saldo é R$: "+saldo);//System.out.println("Operação Escolhida foi" );System.out.println("Tipo de conta é "+tipo);// System.out.println ("Valor Transferido "+ valorTransfere);System.out.println("=========================== F I M ============================");}}
a saída dele (output) fica parecido com isso:
|--------------------------------------------|
-----------C o m p r o v a n t e------------
Valor Depositado: R$…200.0
--------------------------------------------
VOCÊ SOLICITOU UM EXTRATO *Sujeito a mudanças no decorrer do dia! *
=========================== E X T R A T O ============================
Ola Diego Adler
Seu saldo é R$: 200.0
Tipo de conta é CC
=========================== F I M ============================
|--------------------------------------------|
| Valor Saque: R$ …15.0|
|--------------------------------------------|
VOCÊ SOLICITOU UM EXTRATO *Sujeito a mudanças no decorrer do dia! *
=========================== E X T R A T O ============================
Ola Diego Adler
Seu saldo é R$: 185.0
Tipo de conta é CC
=========================== F I M ============================
|--------------------------------------------|
|*Não Foi Possivel Realizar Sua Transferencia|
|-------- Saldo Insuficiente --------|
|--------------------------------------------|
|Valor Transferido: R$ …199.0 |
|--------------------------------------------|
VOCÊ SOLICITOU UM EXTRATO *Sujeito a mudanças no decorrer do dia! *
=========================== E X T R A T O ============================
Ola Diego Adler
Seu saldo é R$: 185.0
Tipo de conta é CC
=========================== F I M ============================
|--------------------------------------------|
|-----------C o m p r o v a n t e------------|
|--------------------------------------------|
| Valor Depositado: R$…200520.22|
|--------------------------------------------|
VOCÊ SOLICITOU UM EXTRATO *Sujeito a mudanças no decorrer do dia! *
=========================== E X T R A T O ============================
Ola Antonio ALberto
Seu saldo é R$: 200569.778
Tipo de conta é CP
=========================== F I M ============================
|--------------------------------------------|
| Valor Saque: R$ …18000.55|
|--------------------------------------------|
VOCÊ SOLICITOU UM EXTRATO *Sujeito a mudanças no decorrer do dia! *
=========================== E X T R A T O ============================
Ola Antonio ALberto
Seu saldo é R$: 182569.228
Tipo de conta é CP
=========================== F I M ============================
|--------------------------------------------|
|-----------C o m p r o v a n t e------------|
|--------------------------------------------|
| Valor Transferido: R$ … 582.55 |
|--------------------------------------------|
VOCÊ SOLICITOU UM EXTRATO *Sujeito a mudanças no decorrer do dia! *
=========================== E X T R A T O ============================
Ola Antonio ALberto
Seu saldo é R$: 181986.678
Tipo de conta é CP
=========================== F I M ============================
|--------------------------------------------|
|-----------C o m p r o v a n t e------------|
|--------------------------------------------|
| Valor Depositado: R$…20.22|
|--------------------------------------------|
VOCÊ SOLICITOU UM EXTRATO *Sujeito a mudanças no decorrer do dia! *
=========================== E X T R A T O ============================
Ola Antonio Carlos
Seu saldo é R$: -178.338
Tipo de conta é CC
=========================== F I M ============================ Voce não pode sacar - Saldo Insuficiente
VOCÊ SOLICITOU UM EXTRATO *Sujeito a mudanças no decorrer do dia! *
=========================== E X T R A T O ============================
Ola Antonio Carlos
Seu saldo é R$: -178.338
Tipo de conta é CC
=========================== F I M ============================
|--------------------------------------------|
|*Não Foi Possivel Realizar Sua Transferencia|
|-------- Saldo Insuficiente --------|
|--------------------------------------------|
|Valor Transferido: R$ …582.55 |
|--------------------------------------------|
VOCÊ SOLICITOU UM EXTRATO *Sujeito a mudanças no decorrer do dia! *
=========================== E X T R A T O ============================
Ola Antonio Carlos
Seu saldo é R$: -178.338
Tipo de conta é CC
=========================== F I M ============================
|--------------------------------------------|
|*Não Foi Possivel Realizar Sua Transferencia|
|-------- Saldo Insuficiente --------|
|--------------------------------------------|
|Valor Transferido: R$ …2.85 |
|--------------------------------------------|
VOCÊ SOLICITOU UM EXTRATO *Sujeito a mudanças no decorrer do dia! *
=========================== E X T R A T O ============================
Ola Antonio Carlos
Seu saldo é R$: -178.338
Tipo de conta é CC
=========================== F I M ============================
CONSTRUÍDO COM SUCESSO (tempo total: 14 segundos)
vou postar minha dúvida relativo ao uso desse tipo de estrutura também acho que o ajudará a entender como funciona esses atributos private x public . this.minha sugestão->Caso tenha conseguido algum sucesso no seu código edite a pergunta para esclarecer como chegou na resolução. (while {pode ser?}) ab