Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Exercicio 07 - Aula 02

Dúvida do exercício que diz: Jonas criou um objeto do tipo Pessoa para representar um personagem de um jogo que está criando. Ex do objeto criado de acordo com o exercício:

public class Pessoa {
    String nome;
    int idade;
    int peso;
}

No exemplo acima vejo uma classe, mas no cabeçalho do exercício é objeto. Pergunta: Classe e objeto são sinônimos? Se não, o que de fato é o objeto?

6 respostas

Oie Diego, tudo bem com você?

Para te explicar melhor a diferença entre os dois vou usar um exemplo sobre construção, onde a classe seria a planta, e objeto seria a casa pronta:

A classe é a planta da casa, onde é definido as características da construção, é feito seu planejamento e no final é o modelo a ser seguido para que a casa seja construída dentro das características certas. É definido todos os elementos que a casa terá, determinando todos os estados possíveis e comportamento que os objetos podem ter. Ou seja, assim como a planta define como será a casa, a classe define como será o objeto. Planta de uma casa O objeto é algo físico, concreto, é a casa pronta. Sendo algo palpável e único, é possível de se manipular, é aqui que as características definidas pela planta serão qualificadas. Se a classe definiu que o objeto terá uma cor, é no objeto que você irá definir qual é a cor. Os objetos ocupam espaço na memória durante a execução da aplicação e tem um tempo de vida transitório.

Em poucas palavras e de maneira mais técnica, um objeto é a instancia de uma classe.

Outra coisa a se ressaltar, uma classe pode ser modelo para vários objetos, porém cada objeto terá sua própria característica, sendo algo único. Explicando usando a lógica da casa, uma planta pode ser usada como modelo para ser construído varias casas, entretanto cada uma delas terá um endereço diferente, um dono diferente ou qualquer outra característica diferente.

Espero que eu tenha ajudado, qualquer dúvida ou problema fico a disposição :)

Bons estudos!

Olá Igor, muito obrigado pela explicação. Se eu entendi correto, então o objeto seria, no nosso exemplo:

String carcteristica = new Pessoa();
caracteristica.nome = "Igor";   //Essa linha é o objeto?

Caso não seja, então o que seria o objeto?(citar o código como exemplo) Obrigado pela ajuda! :)

solução!

Quase isso, o único erro desse seu código é que ao instanciar a classe Pessoa você usou uma referencia do tipo String. Segue abaixo meu código:


public class TestePessoa { 

public static void main(String[] args) {

    Pessoa pessoa = new Pessoa(); //Objeto criado
    // Pessoa = refêrencia, pessoa = nome da variável, new Pessoa() = Objeto a ser criado

    pessoa.nome = "Diego"; //Qualificando atributo defino na classe
    pessoa.curso = "Java OO"; //Qualificando atributo defino na classe

}


class Pessoa { //Classe
    String nome;
    String curso;
}

Espero que agora você tenha conseguido entender melhor, qualquer coisa fico a disposição :)

Estava entendendo errado. Antes da sua explicação, eu achei que: Pessoa(P maiúsculo) era o tipo de variável a ser declarada. Mas, ela faz referência a classe criada. Muito obrigado pela explicação. :)

Pessoa pessoa = new Pessoa();

Só para concluir, acredito que seria bom você entender melhor sobre essa parte de dados.

No java temos dois tipos de dados, aqueles por valor (tipos primitivos) e aqueles por referência (tipos por referência).

Os tipos primitivos são boolean, byte, char, short, int, long, float e double. Os por referência são classes que especificam os tipos de objeto como String e Objetos.

No caso desse código, você não pode usar a referência String porque o que você deseja instanciar precisa fazer referência ao objeto da classe Pessoa e não a classe String. Futuramente você irá aprender sobre herança e interface em Java, e você aprenderá algumas coisas novas sobre as referencias ao instanciar um objeto.

Espero que você tenha entendido e qualquer coisa fico a disposição :)

Vlw Igor. Acho que meu exemplo mostra que eu aprendi. :)