Bem estou ainda iniciando, passei um tempo maior agora estudando e tentando entender o que são, métodos, classes e objetos.
Por isso dizem que entender o que são objetos é dificil. rs , ainda to penando, mas vou postar o que já tenho, agradeço quem puder dizer
se estou certo ou errado.
Minha Classe:
class Conta {
int numero;
String dono; // objeto, so não entendi pq? diz que mais pra frente na apostila vou entender...
double saldo;
double limite;
// daqui pra baixo são os métodos da minha classe? certo ou errado?
boolean deposita(double valor){
if (this.saldo > 10000){
return false;
} else {
this.saldo = this.saldo + valor;
return true;
}
}
boolean saca(double valor){
if (this.saldo < valor){
return false;
} else {
this.saldo = this.saldo - valor;
return true;
}
}
}
Agora vem as partes que são objetos, (se eu estiver certo rsrs)
class TestaReferencias {
public static void main(String args[]) {
Conta c1 = new Conta(); //objeto conta, esse seria o único objeto? Esse "c1" seria objeto ou somente uma referencia ou variavel?
c1.dono = "celio"; // se na classe a variavel string "dono" é objeto então aqui é objeto tb?
c1.saldo = 2100.0;
if (c1.deposita(100)){
System.out.println ("consegui depositar");
System.out.println("Saldo Atual:" + c1.saldo);
}else{
System.out.println("Nao consegui depositar");
System.out.println("Saldo Atual:" + c1.saldo);
}
Conta c2 = new Conta();
c2.dono = "lipe";
c2.saldo = 2500.0;
if (c2.deposita(300)){
System.out.println ("consegui depositar");
System.out.println("Saldo Atual:" + c2.saldo);
}else{
System.out.println("Nao consegui depositar");
System.out.println("Saldo Atual:" + c2.saldo);
}
Conta c3 = new Conta();
c3.dono = "bruna";
c3.saldo = 2970.0;
if (c3.deposita(130)){
System.out.println ("consegui depositar");
System.out.println("Saldo Atual:" + c3.saldo);
}else{
System.out.println("Nao consegui depositar");
System.out.println("Saldo Atual:" + c3.saldo);
}
}
}
Agradeço se alguém dizer se está tudo certo, ou errado? Se errado por favor me corrijam.
vlw
Estou lendo esse manual da unicamp tb, bom ele pra quem está começando. Mas alguém ainda poderia dizer o qeu está certo ou errado, somente errando e sendo corrigido posso aprender…vlw
A classe String no Java é um objeto por default, toda vez q vc declara um atributo na sua classe como String
vc está declarando um objeto. por ex:
String dono = new String("nomeDaPessoa");
mas raramente vc cria uma string deste jeito, para facilitar
a nossa vida, o compilador permite fazer assim:
String dono = "nomeDaPessoa"
como se por traz dos panos ele desse um new pra nós.
todo objeto permite que sua variavel de referencia seja atribuido o valor null,
já os tipos primitivos (int, double, etc…) isto não é permitido.
no seu exemplo: Conta c1 = new Conta();
O c1 é uma referência (ponteiro em C) para o seu objeto que foi criado no heap (local na memória onde ficam armazenados os objetos), o objeto está lá, mas só conseguimos manipulá-lo através de sua referencia que neste caso é o c1.
Cara, está mais ou menos. Tem muito conceito ainda pra vc conhecer.
Por exemplo: Conta é uma classe.
Conta c1 = new Conta(); c1 é um objecto. No caso é um objeto do tipo Conta.
No caso de c1.dono, dono é uma propriedade do seu objeto c1. Na classe Conta, sua propriedade dono é um objeto.
Parece que ouve um conflito aqui, acima valfrido.silva, diz que: Conta e um objeto, c1 e c2…são como ponteiros, que indicam em que local da memória está localizado a conta “c1, c2…”
Logo abaixo aluisiodsv diz que: c1 é um objeto, no caso um objeto do tipo conta, fiquei meio confuso, mas olhando o site acima do Master.abs (site da unicamp) deu a entender que: somente “Conta”, é um objeto, pq será objeto único na memória, e dentro do objeto “Conta” é que vão estar “c1, c2,…”. Dessa vez eu devo ter acertado. Me corrijam se eu estiver errado, obrigado a todos que ajudaram.
A variavel c1, referencia ou aponta para um objeto na memória.
Conta c2 = new Conta();
A variavel c2, referencia ou aponta para um outro objeto alocado na memória.
c2 = c1;
Tanto a variavel c1 quanto a c2, se referencia para o mesmo objeto na memória.
Ou seja, o objeto esta na memória e para que suas propriedades e metodos possam sser acessados, é necessario usar uma variavel que aponte para esse objeto.
Na verdade o objeto é criado na memória com a palavra “new” com forme especificado no construtor da classe Conta “Conta()”, e com o sinal de “=”, é atribuido a uma variavel a referencia para esse objeto.
Por isso que essas variaveis são chamadas de variaveis de referencias, por que elas não amarzena o objetos propriamente dito, e sim uma referencia a esse objeto, ex. varias variaveis podem referenciar o mesmo objeto.
Vlw gente, digamos que ainda não está totalmente claro, mas acho que agora estudando um pouco mais deve ir clareando como as coisas funcionam, Anime gostei do video.
c1, c2, c3… variaveis de referência.
new Conta(); objeto.
na classe tenho, atributos e métodos.
atributos são os dados.
métodos: o que fazem com os dados que são passados como parâmetros.
Espero que eu esteja indo bem com o que entendi até agora.
new Conta(): “new” seria o que cria o objeto, e o que vem seguido dele, “Conta()”, é o construtor, o que estabelece a forma que o objeto deve ser criado.
atributo: são as caracteristicas dos objetos, e também podem ser chamados de estados do objetos.
métodos: são ações que o objeto realiza, em grade parte são ações realizadas em sima dos atributos(modificando ou recuperando).
Bom, eu num sei, mas acredito qeu com mais treino eu chego lá, só espero qeu num seja facil assim e eu esteja complicando tudo, quem ai já passou por isso pode responder, será qeu eu to indo bem nisso, essa foi a primeira vez que vi isso, ta certo que to tentando ler tudo o qeu passam, mas ainda assim tá meio dificil, alguem pode dizer, to indo mal, ou tá razoavel? ( bom eu sei qeu num tá rsrs)
Particularmente, acho que é uma otima iniciativa de procurar entender sobre o assunto.
Eu mesmo, por ignorancia demorei a procurar entender esses conceito, e acabei fazendo burradas absurdas.
De rasumo, acho que sim, até que ta pegando legal o conceito… mas sempre é bom procurar um bom livro, porque isso é o inicio, ainda tem muita coisa pela frente.