O que significa o 'new'?

Pessoal, sou iniciante, como muitos aqui. Por favor, me ajudem… estou fazendo uns exemplos do livro que comprei e me deparei com esses comandos:

... { System.out.println("Entre com a nota 1"); dado = new DataInputStream(System.in); s = dado.readLine(); ... }para que ser o termo ‘new’ ? Por acaso é criada uma classe chamada dado que herdará os métodos da classe DataInputStream? O que é esse ‘System.in’?

Obrigado!

new é utilizado para criar uma nova instância de uma determinada classe (no seu caso, a DataInputStream).

Imagine que a planta de uma casa é a classe e uma casa construída a partir dessa planta seria a instância dessa classe - um novo objeto. Você pode construir diversas casas a partir dessa mesma planta, ou seja, você pode criar diversos objetos que são instâncias da mesma class.

O new faz com que a máquina virtual aloque memória para armazenar um novo objeto. Você pode acessar métodos definidos na classe DataInputStream a partir dessa nova instância.

System.in é o input stream do sistema. No seu caso, você está utilizando esse input stream para efetuar a leitura de uma linha.

Só acrescentando

O new além de alocar o espaço na memória, retorna o endereço(ponteiro) para acessar a parte da memória onde foi alocado esse espaço…

Bom, os amigos já responderam acima, mas vale uma ressalva. Que livro você está usando para iniciar seus estudos em Java? Ele não explica esses conceitos que você falou? Tvz você esteja começando pelo livro errado…isso pode deixar traumas! :lol:

Estou utilizando o Java6 - Ensino Didático, do Sergio Furgeri. Gostei muito da linguagem dele, apesar de ainda não ter explicado o significado do ‘new’.

Uma dúvida que ficou: o colega afirmou que “System.in é o input stream do sistema”… rs, desculpe a ignorancia, mas fiquei na mesma…

grato!

Opa, segunda tentativa:

InputStream é Fluxo de entrada de dados (o console, no seu caso)… em java, para efetuar a leitura de um dado do console ou de um arquivo, por exemplo, é necessário um fluxo de entrada de dados. Da mesma forma, para efetuar a escrita de um dado em console ou em arquivo, é preciso um fluxo de saída (um OutputStream).

A classe System já tem um fluxo de entrada definido, que é o System.in. Também já tem um fluxo de saída definido, o System.out. Por isso, quando queremos fazer o nosso querido Hello world, utilizamos esse fluxo de saída:

 System.out.println("Hello world!"); 

Para você que está começando em Java, segue uma referência “bala” : a documentação da API da linguagem, disponível em http://java.sun.com/j2se/1.5.0/docs/api/index.html.

Realmente entendo, pegar esses conceitos iniciais cheios de teoria é mto complicado, vou tentar explicar aqui nos mínimos detalhes, pq falando instância a pessoa pensa (O q é instância?). No início é meio complicado mesmo.

Tipo, uma classe em java é basicamente um pacotão de variáveis e métodos. Vc define em uma classe quais variáveis vc vai usar, e quais métodos ele usará.

Uma instância de uma classe é o objeto da classe q pode utilizar os métodos definidos na classe.

Mas vejamos, para criar uma instância de uma classe precisamos de espaço na memória…

Então o comando new faz o seguinte.

Aloca o espaço na memória para criar uma instância(Instância é exatamente isso o espaço da memória alocado q tem todas as características descritas na classe) da classe q vc criou (Pega um espaço vazio na memória e deixa reservado para ser usado pela instância criada). E retorna o endereço para acessar esse espaço q ela reservou.

E quando essa nova instancia perder referencia o gc entra em acao e coleta o seu objeto, ou seja ele vira lixo.

flws

[quote=jcvijr]Opa, segunda tentativa:

InputStream é Fluxo de entrada de dados (o console, no seu caso)… em java, para efetuar a leitura de um dado do console ou de um arquivo, por exemplo, é necessário um fluxo de entrada de dados. Da mesma forma, para efetuar a escrita de um dado em console ou em arquivo, é preciso um fluxo de saída (um OutputStream).

A classe System já tem um fluxo de entrada definido, que é o System.in. Também já tem um fluxo de saída definido, o System.out. Por isso, quando queremos fazer o nosso querido Hello world, utilizamos esse fluxo de saída:

 System.out.println("Hello world!"); 

Para você que está começando em Java, segue uma referência “bala” : a documentação da API da linguagem, disponível em http://java.sun.com/j2se/1.5.0/docs/api/index.html.[/quote]

blz! agora ficou bem mais claro! obrigado pela ajuda!

new = novo…


class Pessoa{

public static void main(String args[]){
Pessoa mario = new Pessoa();

}
}

Voce acabou de criar uma pessoa mario.

E isso é valido para qualquer coisa que fizer, com new com cria um objeto!!! é um nascimento! :smiley:

1 curtida