Definir objeto

9 respostas
K

alguem poderia me explicar o q seria um objeto em java?

obrigado

9 Respostas

domingosbernardo

uma instância de uma classe.

E

suponha que você tem a seguinte classe:

public class Carro {
    
    private String placa;
    private String marca;
    private int ano;
    
    public Carro(String p, String m, int a) {
        placa = p;
        marca = m;
        ano = a;
    }    
}

e no método main você faz a seguinte declaração:

public class UsaCarro {
    
   public static void main (String args[]) {
       
       Carro carro1 = new Carro("IMK5400", "Celta", 2000);
       
   }
    
}

carro1 é um objeto da classe carro, com os atributos passados.

LPJava

é uma instancia pode aparecer varias vezes dentro de uma classe, e possui N metodos, a cada instante de seu programa.

jose_neto

só uma dúvida…
um metódo pode ter o mesmo nome de uma classe?
bom para isso esse método na verdade deve ser um construtor não eh mesmo…
Na verdade eu sou apenas um iniciante e queria esclarecer algumas dúvidas aproveitando esse tópico…
1º) um construtor pode conter parametros?
2º) construtor só existe na classe principal do programa ou pode existir em diversas outras classes?
3º)eu posso passar parametros quando estou instanciando um objeto?

valeu galera abração e agradeço a paciência e acompeensão de todos…e se puder esclarecer as minhas dúvidas fico mto grato…

E

olá josé:

como você mesmo já falou, um método não pode ter o mesmo nome da classe, isso seria um construtor. sobre as tuas dúvidas:

  1. sim, um construtor pode ter parâmetros. veja o exemplo que eu passei acima:
public Carro(String p, String m, int a) {
         placa = p;
         marca = m;
         ano = a;
     }
  1. um programa em java não tem exatamente uma ‘classe principal’, e sim uma classe com o método ‘main’, que irá iniciar a execução do programa. mas todas as classes têm o seu construtor, que caso não seja especificado pelo programador, existirá da mesma forma, implicitamente, sem parâmetros.

  2. sim, repetindo o exemplo que eu passei acima, essa declaração instancia um objeto do tipo Carro, passando os parâmetros ‘placa’, ‘marca’ e ‘ano’:

Carro carro1 = new Carro("IMK5400", "Celta", 2000);

Uma classe pode ter vários construtores: um sem parâmetros, outro com 2 parâmetros, outro com 4 parâmetros, por exemplo.
Quando você cria um objeto passando parâmetros, você deve passá-los na quantidade e ordem correta em que eles aparecem no construtor, e o compilador irá selecionar o construtor correto de acordo com essa assinatura (parâmetros).

Mantu

Só pra complementar o que o ernanik disse, uma classe pode ter vários construtores da forma como ele descreveu, mas também pode ter construtores com o mesmo número de parâmetros, desde que estes sejam de tipos diferentes. Um exemplo é a classe String, que entre a penca de contrutores que ela possui, existem, por exemplo, três com um parâmetro apenas:

public String(byte[] bytes)
public String(char[] chars)
public String(String string)

Isso caracteriza o que chamamos de sobrecarga. Um método e/ou construtor é sobrecarragado quando um único identificador representa mais de uma assinatura de método. É o que ocorre acima, onde o identificador do contrutor é “String”(igual ao identificador da classe) e o que ocorre também com, por exemplo com o método “m” abaixo:

public class Teste(){
...
	public int m(int i) {
		...	
	}
	public int m(String s) {
		...	
	}
	public String m(Class i) {
		...	
	}
	public long m(ArrayList i) {
		...	
	}
...
}

…continua

Mantu

Já quanto à questão sobre instância e classe, podemos ver isso da seguinte forma.
Uma classe especifica uma série de comportamentos(métodos) e estados(atributos) de um conceito de mundo real(i.e.: um carro, uma pessoa, etc) ou um conceito abstrato(uma tabela de dados, um lista ligada, uma tabela hash, etc). Um objeto, ou instância, é uma [b]“materialização”/b da classe em memória, como se fosse um representante da classe “Tal”.
Uma classe nos diz apenas o que os objetos que a representa fazem e que tipo de dados eles carregam. Já estes objetos executam os métodos descritos na sua classe e carregam cada um valores, distintos ou não, para cada um dos atributos também descritos na sua classe.

Espero que não tenha ficado confuso… :lol:

jose_neto

valeu galera agora ficou mais claro…
abração…

Leandro_BSB

ernanik:
olá josé:

como você mesmo já falou, um método não pode ter o mesmo nome da classe, isso seria um construtor. sobre as tuas dúvidas:

  1. sim, um construtor pode ter parâmetros. veja o exemplo que eu passei acima:
public Carro(String p, String m, int a) {
         placa = p;
         marca = m;
         ano = a;
     }
  1. um programa em java não tem exatamente uma ‘classe principal’, e sim uma classe com o método ‘main’, que irá iniciar a execução do programa. mas todas as classes têm o seu construtor, que caso não seja especificado pelo programador, existirá da mesma forma, implicitamente, sem parâmetros.

  2. sim, repetindo o exemplo que eu passei acima, essa declaração instancia um objeto do tipo Carro, passando os parâmetros ‘placa’, ‘marca’ e ‘ano’:

Carro carro1 = new Carro("IMK5400", "Celta", 2000);

Uma classe pode ter vários construtores: um sem parâmetros, outro com 2 parâmetros, outro com 4 parâmetros, por exemplo.
Quando você cria um objeto passando parâmetros, você deve passá-los na quantidade e ordem correta em que eles aparecem no construtor, e o compilador irá selecionar o construtor correto de acordo com essa assinatura (parâmetros).

Atenção, senhores: O fato de um método ter o mesmo nome da classe não implica que ele seja construtor. Segue um exemplo:

public class ClasseA {

	public ClasseA(){//construtor
		
	}
	
	public String ClasseA(){
		return "Este método não é um construtor!";
	}
	
	public static void main(String args[]){
		ClasseA classeA = new ClasseA();
		System.out.println(classeA.ClasseA());
	}
	
}

[]s

Leandro

Criado 26 de maio de 2006
Ultima resposta 1 de jun. de 2006
Respostas 9
Participantes 7