interação entre classes em arquivos separados... como funciona?

olá pessoal.

o seguinte tenho a classe SerialParameters , que foi salvo com o nome de arquivo SerialParameters.java
ela não foi instanciada em lugar algum.

public class SerialParameters {

    private String portName;
    private int baudRate;
    private int flowControlIn;
    private int flowControlOut;
    private int databits;
    private int stopbits;
    private int parity;
	

tenho a classe SerialConnection que foi salvo no arquivo SerialConnection.java

[code]

public class SerialConnection implements SerialPortEventListener,
CommPortOwnershipListener {


private SerialParameters parameters;

public SerialConnection(// construtor

[/code]

não existe problema as classes estão funcionando.

minha duvida é que não foi instanciado a classe SerialParameters, mas mesmo assim eu consigo acessar qualquer metodo
a apartir da classe SerialConnection.
então esta linha abaixo é equivalente a instaciar com um new ?

[code]

  private SerialParameters parameters;
[/code]


sds

j.silvestre

Mas é lógico que não!
Você simplesmente está atribuindo uma variavél a sua classe. É simplesmente um null.

Faça ela acessar um método sem instancia-la que com certeza dará um NullPointerException (com exceção de métodos estáticos).
Portanto, nesse caso em particular, antes de usar essa variavél, você precisa instanciar, pois ai sim, terás uma referência a um objeto e o poderá manipular.

Abraços.

editado:

achei. estava no arquivo serialDemo.java

parameters = new SerialParameters();

então a pergunta agora é a seguinte:

tendo varios arquivos *.java em um mesmo projeto, só é necessario instanciar uma classe uma vez, e depois simplesmente atribuir uma variavél a classe ?

sds

j.silvestre

Essa linha não significa nada.
Se você não instanciar a classe com um new, receberá um nullPointerException.
A não ser que esteja utilizando um framework para injeção de dependências, aí muda tudo…

editado:

achei. estava no arquivo serialDemo.java


    parameters = new SerialParameters();  

então a pergunta agora é a seguinte:

tendo varios arquivos *.java em um mesmo projeto, só é necessario instanciar uma classe uma vez, e depois simplesmente atribuir uma variavél a classe e usar onde eu achar necessário?

sds

j.silvestre

Não necessariamente.
Vamos pensar assim, cada classe java é um determinado endereço (rua + nº).
Cada package é uma rua que pode estar inserida em um bairro, cidade, estado, país, planeta, sistema planetário, galáxia, universo, etc…
Para podermos usar os recursos (métodos e atributos) de uma classe que se encontra na mesma rua (mesmo package) devemos apenas referenciá-la pelo nome. Não há necessidade de um import.
Se a classe que desejamos se encontra em qualquer outro escopo, diferente da rua (package) em que a nossa está. precisamos do import, dizendo onde ela se encontra.

A partir daí, em cada classe que se deseja utilizar outra, independente do import ou não, você precisa instanciá-la, com a diretiva “new”.
Se você vai utilizar a classe Casa em 10 outras, cada uma delas deverá importá-la (se necessário) e ter um new Casa();

captei…

valews…

Olá!

Numa boa, leia a apostila da Caelum, aqui!.
Vejo que tu tem dúvidas sobre orientação a objetos e bem básicas de Java.

Essa apostila é excelente, bom conteúdo didatico e adivinha, gratuita.
É um conselho e como dizem, “se conselho fosse bom não era dado, era vendido”, mas fica a dica.

Abraços.

Editando: Apostila FJ-11 - Java e Orientação a Objetos.