porque esse código não funciona?
public class Conta {
double valor;
double saldo;
boolean saca(double valor) {
if (this.saldo < valor) {
return false;
}
else {
this.saldo = this.saldo - valor;
return true;
}
}
}
porque esse código não funciona?
public class Conta {
double valor;
double saldo;
boolean saca(double valor) {
if (this.saldo < valor) {
return false;
}
else {
this.saldo = this.saldo - valor;
return true;
}
}
}
Olá Fabio, como está?
Mas o que está acontecendo, algum erro de compilação?
Se for manda a mensagem para agente entender.
Aepnas um detalhe, tente identar o código para que agente possamos enteder mais facilmente
Abraço
cara, eou vou chutar… mas eu acho que está faltando um método main pra ele funcionar…
Se o método main existir em alguma outra classe, vocês está criando um Objeto Conta e chamando esse método ???
Se Sim, diga aí exatamente o que não está funcionando.
Abs []
o objetivo desse código é mostrar se pode sacar ou não , mas mesmo colocando o public main não funciona , tentei dessa maneira e ocorre erro
public class Conta {
public static void main(String[] args) {
double valor;
double saldo;
saldo = 200;
valor = 100;
boolean saca(double valor) {
if (this.saldo < valor) {
return false;
}
else {
this.saldo = this.saldo - valor;
return true;
}
}
}
}
O que o Adriano falou, pode ser também.
é muito Importante você ver que a tua classe Conta, simplesmente não vai rodar na sua implementação de JVM, a sua classe Conta apenas define o que as contas criadas no teu sistema devem ter (como o saldo por exemplo) e o que elas devem fazer (como o saca por exemplo), agora fazer um programa java rodar dentro da JVM SEMPRE temos que ter uma classe que terá uma main, na main que a JVM começa a executar os seus programas java, então você deve criar uma classe aonde vai ficar a sua main
E é uma ótima prática, que a main não esteja dentro das classes que definem como as coisas importantes do seu sistema deve ser, como a classe Conta.
Abraço
Fábio, você precisa voltar a estudar o básico de Java cara.
main é um método e saca é outro método, da forma que você fez, saca está dentro de main.
Segue também a dica do nosso amigo e identa teu código, é complicado ler código onde a linha começa colada na tela.
Abs []
[quote=Super Fabio]o objetivo desse código é mostrar se pode sacar ou não , mas mesmo colocando o public main não funciona , tentei dessa maneira e ocorre erro
[code]
public class Conta {
public static void main(String[] args) {
double valor;
double saldo;
saldo = 200;
valor = 100;
boolean saca(double valor) {
if (this.saldo < valor) {
return false;
}
else {
this.saldo = this.saldo - valor;
return true;
}
}
}
}
[/code][/quote]
Como eu disse no post anterior, para não te causar confusão coloca a main em uma outra classe.
Fabio desculpe por falar assim não sei seu nível de conhecimento em programação, indentar o código é como o exemplo abaixo. (nós agradecemos :lol: )
[code]public class Conta {
public static void main(String[] args) {
double valor;
double saldo;
saldo = 200;
valor = 100;
boolean saca(double valor) {
if (this.saldo < valor) {
return false;
}
else {
this.saldo = this.saldo - valor;
return true;
}
}
}
} [/code]
bem que puderia desse jeito dar certo Frantic mas deu erro , o que eu intendi é que eu tenho que criar uma classe num outro bloco e usar o new , mas isso pelo que vi na apostila da Caelum na página 46(Métodos com retorno) isso não será necessário, onde ele pede para colocar os atributos abaixo da classe Conta , está desse jeito na apostila
class Conta {
// ... outros metodos e atributos ...
boolean saca(double valor) {
if (this.saldo < valor) {
return false;
}
else {
this.saldo = this.saldo - valor;
return true;
}
}
}
Fábio não falei que a indentação “corrigiria” seu código apenas que torna ele mais fácil de ser lido.
Primeiramente tira um método de dentro do outro e passe como parâmetros as duas variáveis e não somente a variável valor, aí chame o método saca e veja se dá certo.
E ai Super Fabio, conseguiu fazer funcionar cara?
Acredito ser “this” dentro do IF
Eu tentaria isso
public class Conta {
public static void main(String[] args) {
double saldo = 200;
double valor = 100;
boolean saca;
if (saldo < valor) {
return false;
}
else {
return true;
}
}
}
Vamos lá Super Fábio, vou fazer algo totalmente contrarecomendado, mas vou passar a resposta aqui, ela começa mais ou menos assim:
A sua classe Conta, basicamente ela apenas define o que COMO deve ser, uma conta deve TER (atributos), como saldo, agencia, numero…, e o uma conta deve FAZER (métodos), tais como saca, consultaSaldo, transfere, deposita…
Então podemos colocar a sua conta aqui, do jeito que você postou primeiro:
[code]
// Salva ai em um arquivo Conta.java, acostumem-se assim
class Conta {
int numero;
double saldo;
boolean saca(double valor) {
if (this.saldo < valor) {
return false;
}
else {
this.saldo = this.saldo - valor;
return true;
}
}
void deposita(double valor) {
this.saldo = this.saldo + valor;
}
}[/code]
Ok, com esta classe Conta, eu sei qual é o saldo dessa conta por exemplo? Eu sei qual é o numero? Não temos a definição dessas coisas ainda! Aonde fazemos nosso programa rodar é na main, vamos criar então um programa java, para criar um programa java, precisamos de uma main. Mas percebe que vou criar a main em uma outra classe, para não misturar o que é execução do programa, do que é a definição da conta:
[code]
// Salve este arquivo no mesmo diretório que o anterior, e com o nome Programa.java, como boa prática, coloque o mesmo nome da classe com o nome do arquivo
// em algum momento nos seus estudos, vai chegar uma situação que você vai ser obrigado a fazer isto.
class Programa {
public static void main(String args[]) {
// Aqui vc coloca a execução do seu programa
// Cria uma nova conta
Conta contaDoFabio = new Conta();
//chamada de método deposita, para depositar 100 reais na conta do Fabio
contaDoFabio.deposita(100);
//chamada de método para sacar 10 reais
boolean conseguiuSacar = contaDoFabio.saca(10);
if(conseguiuSacar) {
System.out.println("Sacou!!!!");
}
else {
System.out.println("Ops!!! Saldo insuficiente!");
}
}
}[/code]
Perceba o seguinte, não falei que o sado estava dentro da main, apenas depositei e o saldo vai ser alterado, mesma coisa para o médo saca.
Com isso você começa a escrever seus primeiros programas java, Orientado a objetos.
Apenas para constar, isso aqui não vai resolver muitas duvidas que você tem ainda, ainda tem muito detalhe que foi simplesmente jogado aqui, então continue estudando!
Abraço
ótima resposta narciso , tem que saber usar bem esses { } , obrigado pela compreensão