O que, de fato, é um objeto em java? Qual é a diferença de objeto e variável? O que é "static"?

7 respostas Resolvido
java
Gabriel432135
Se eu crio uma classe, do tipo Pessoa, com seus métodos, e faço:

Pessoa p;

p.setNome(João);

Não da erro, nem nada. Mas, em nenhum momento, eu fiz o:

Pessoa p = new Pessoa();

Então, o que de fato é o “new”? O que ele muda?

E para que na prática, serve o termo “static”?

7 Respostas

Lucas_Camara

Com certeza, ao executar isso, vai dar erro.

Gabriel432135

Então, tem situações que implementa um objeto sem o new, certo? Tipo o famoso:
TextView v = findViewById(R.id.texto);

Ele retorna um objeto, certo? Nossa, isso é muito confuso kkkkkk

Lucas_Camara

É que nesse caso, o objeto será retornado por um método. Com isso, o detalhe da criação do objeto TextView está como responsabilidade de outro código.

Veja:

public class TestePessoa {

	public static void main(String args[]) {
		// Criando objeto com o "new"
		Pessoa pessoaNew = new Pessoa();
		
		// Criando objeto a partir de um método
		Pessoa pessoaMetodo = criarPessoa();
	}

	public static Pessoa criarPessoa() {
		return new Pessoa();
	}
}
Gabriel432135

Entendi kkk, mas pra que serve o “static”?
E o System.out.println
O out é um objeto, certo?

Lucas_Camara
Solucao aceita

Serve para imprimir um texto no console com uma quebra de linha (ln)


Quando um código java é executado, tudo que é static será instanciado primeiro. Nesse exemplo, soh usei o static no método criarPessoa, pois eu não consigo chamar um método não static a partir de um método static (que é o método main).

Se não fosse usar o static no método criarPessoa, o código ficaria assim:

public class TestePessoa {

	public static void main(String args[]) {
		// Criando objeto com o "new"
		Pessoa pessoaNew = new Pessoa();
		
		// Criando objeto a partir de um método
		Pessoa pessoaMetodo = new TestePessoa().criarPessoa();
	}

	public Pessoa criarPessoa() {
		return new Pessoa();
	}
}

Para vc entender static melhor, tem que estudar um pouco mais. Recomendo uma leitura mais direcionada. Veja: https://siteantigo.portaleducacao.com.br/conteudo/artigos/informatica/entendendo-static/6279

Gabriel432135

Acabei de ler, muito interessante. Agora eu entendo o motivo de métodos estáticos poderem ser acessados da forma: Classe.metodo(); Que legal

Para vc entender static melhor, tem que estudar um pouco mais. Recomendo uma leitura mais direcionada. Veja: https://siteantigo.portaleducacao.com.br/conteudo/artigos/informatica/entendendo-static/6279

Gabriel432135

Entendi também o motivo de você ter usado static kkk, porque você queria mostrar um método que cria o objeto, mas teria que instanciar um objeto pra poder instanciar outro “automaticamente” kkkkk

Criado 12 de abril de 2020
Ultima resposta 13 de abr. de 2020
Respostas 7
Participantes 2