Meu problema continua - Problema com classes

5 respostas
A

Olá pessoal, estou aqui de novo pois recebí muita ajuda no meu 1º tópico aqui no GUJ mas apesar disso meu problema ainda não foi resolvido.

aqui está o tópico que eu avia criado
http://www.guj.com.br/posts/list/114626.java

Coloquei em pratica aquilo que me ensinaram mas ainda continua dando 1 erro. Veja o meu código:

public class mundo
{
public static void main(String[] args) 
{

class Casa 
{
String cor;
Venda novavenda;
}


class Venda
{
int ab;
}

Casa a1 = new Casa();

a1.cor = "azul";
a1.novavenda.ab = 1;
System.out.println(a1.novavenda.ab);

	
}
}

Pessoal, gostaria de saber por que eu ainda não estou conseguindo atribuir o int ab (classe Venda) no novavenda (classe Casa). Alguém pode me ajudar?

Obrigado

5 Respostas

renzonuccitelli

primeiramente era bom vc usar métodos getter e setters. Mas tentar fazer isso aqui olha:

public class mundo
{
public static void main(String[] args) 
{

class Casa 
{
String cor;
Venda novavenda;
}


class Venda
{
int ab;
}

Casa a1 = new Casa();

a1.cor = "azul";
Venda venda=new Venda();
venda.ab=1
a1.novavenda = venda;
System.out.println(a1.novavenda.ab);


}
}
M

Recomendo que leia algum totorial de orientação a objetos básico para você entender melhor o conceito de campos, de criação de objetos, de métodos, etc. O tutorial oficial da Sun pode ser lido aqui.
Tutorial bem básico em português: http://programacaoemjava.blogspot.com/2009/01/conceitos-orientao-objetos.html

DiegoMau

bem tbm sou novato em java, mais uns bons conselhos que aprendi foi
para cada classe crie um novo arquivo .java = “Novo - Classe Java” pois deixa seu codigo mas organizado
sempre idente seu codigo = “Ctrl + Alt+ F” com um codigo mais legivel vc entende melhor os erros
e nas variaveis procure usar referencia que tenham mais sentido isso tbm vai te ajudar por exemplo se ab significar o valor da venda da casa vc coloca valorVenda se a1 é referencia pra casa coloque casa1 etc…
sempre encapsule seu metodos e atributos = "private, public "
deixe cada classe o menor possivel

agora sobre os erros

Se você tem uma classe chamada casa
isso não significa que vc tenha uma casa e sim uma “uma planta de casa”
e para você ter acesso a seus atributos da casa vc teria que ter um objeto casa como voce fez o a1
logo depois você tem outra classe venda, isso significa que voce para ter acesso aos seus atributos tbm tem que ter um objeto inicializado para o atributo nova venda para classe casa

bem de inicio está legal
estou postando o codigo funcionando como eu acredito que você queira

public class Casa { String cor; Venda novaVenda; }

public class Venda {
    int ab;
}

public class Mundo { public static void main(String[] args) { Casa casa1 = new Casa(); Venda venda = new Venda(); casa1.cor = "azul"; casa1.novaVenda = venda; casa1.novaVenda.ab = 2; System.out.println(casa1.novaVenda.ab); } }

é claro que você não vai gravar tudo mais isso te ajuda um pouco
antes de só copiar e colar procure entender
valeuuu

G

Também estou aprendendo java e fiquei com uma duvida em relacao a esse codigo.

String cor;
Venda novaVenda;

Entendendo que seriam variaveis de instancia. Certo?

Nao teriam que ser declaradas como “private”?

Venda é o tipo da variável novaVenda? nao teria que ser um tipo “valido”, digo double, int, string ou algum desses?

DiegoMau

"Nao teriam que ser declaradas como “private”? " correto GabrielaVillar isso se chamar encapsular metodos
por padrão e até para certifiação java é aconselhavem deixar todos seus atributos private e criar get e set para eles

Venda é uma classe que tem um atributo que pode significar o valor da venda

tente entender a logica por que duas classes???

é correto você dizer que um cliente tem um numero de conta?? Não pq o numero está associado a conta e a conta
é correto fazer uma classe dessa??

tbm não pq, pq uma pessoa não tem um bairro
bairro está associado a um endereco e um endereco está associado a uma pessoa

Logo valor não está associado a uma casa
e sim a uma venda, e uma venda faz uma associação pela referencia novaVenda da classe casa
veja a importancia de uma lógica correta

o que é associação
Em programação orientada a objeto, uma associação define um relacionamento entre duas classes que permite que um objeto faça com que outro objeto realize uma ação em seu lugar.

blz??

Criado 10 de janeiro de 2009
Ultima resposta 11 de jan. de 2009
Respostas 5
Participantes 5