Duvida setar atributos

bom galera, recentemente comecei a estudar java e estou com a seguinte dúvida: como eu seto um atributo de uma classe a partir de outra classe ? Exemplo: tenho a classe produto, com atributo nome por exemplo, eu gostaria de setar o nome do produto a partir de uma outra classe, a classe gerente por exemplo como eu faria esse relacionamento ? obrigado desde já

Caso você esteja falando de Objetos fora de um banco de dados, você tem que entender isso:

Quando você usa um método getAlgo, ele te retorna o que você pede como por exemplo uma String, e o setAlgo ele diz o que aquele objeto vai ter, onde você usa por exemplo uma String, caso seja relacionado a aquele objeto. Se você tem um método que retorna uma String e um que precisa de uma String, pode se relacionar os dois? Sim. Na prática seria bem isso:

produto.setNome(venda.getNomeProduto);

Caso você estude JDBC, você vai ver que pode fazer essas relações diretamente com o banco de dados por meio de pesquisas. Mas um aviso: Isso se baseia apenas para objetos, quando se vai para o campo de banco de dados a palavra relacionamento tem um uma importância bem maior.

obrigado pela resposta neto, mas como eu poderia fazer o método gerente.setPreco , por exemplo ? sendo preco um atributo da classe produto. E ainda não comecei a estudar jdbc pois estou me aprofundando um pouco mais em listas, collections…pra começar a estudar jbdc, mas agradeço a dica

Eu aprendi java com um curso do canal XTI UNIVERSIDADE, muito bom… dá uma olhada tbm no cursoemvideo.com.br

Veja encapsulamento que você vai entender.

Vamos por partes.
Você pode ter, sim, atributos nas classes, são os atributos static

public class Foo {
    static String code = "123";
}

Mas, normalmente, estes atributos são constantes e são precedidos da palavra reservada final

public class Foo {
    public final static String code = "123";
}

Quando falamos em setar, definir ou atribuir valor a um atributo, temos que entender que este atributo pertence a um objeto de uma classe (ou, como disse, à própria classe, quando estático).
Para tanto, considere as seguinte classes:

public class Foo {
    private String nome;
    //getters e setters omitidos
}

e

public class OutraClasse {
    public void outroMetodo() {
            Foo foo = new Foo(); //Declara e instancia
            foo.setNome("Astolpho"); //Seta o valor
    }
}

Conseguiu entender?

Olá Gabriel, pelo oque eu estou vendo você está com dificuldades para entender o paradigma de objetos.

“obrigado pela resposta neto, mas como eu poderia fazer o método gerente.setPreco , por exemplo ? sendo preco um atributo da classe produto. E ainda não comecei a estudar jdbc pois estou me aprofundando um pouco mais em listas, collections…pra começar a estudar jbdc, mas agradeço a dica”.

Não pode, você teria que instanciar um objeto de tipo produto dentro da classe Gerente, tipo assim

public class Gerente{
//instanciando o produto
Produto produto = new Produto();
//setando o preco do produto
produto.setPreco(1000);
}

na verdade você não seta o atributo preco na classe, você seta no objeto de nome produto do tipo Produto, conseguiu entender ?, você so seta valores diretamente na classe se o atributo pertencer a classe e não a nenhum outro objeto gerado pela classe, exemplo

quando existe isso
public class Produto{
//o valor pertence somente a classe quando o atributo é declarado com a palavra static
public static Integer preco = 1000;

}
//nesse caso ai não é possível fazer isso
Produto produto = new Produto();
produto.setPreco(200) ou produto.preco = 200
porque produto(com minusculo) é um objeto gerado da classe Produto(com maiusculo) e atributos static nao pertencem a objetos, pertencem somente a classe.
Teria que fazer assim
public class Gerente{
Produto.preco = 200;
}

muito obrigado à todos que responderam aqui foi de grande ajuda, consegui entender perfeitamente o que me explicaram e percebi onde estava minha deficiência, grato por tudo senhores.

1 curtida