Instanciação e Objeto

Pessoal, paz!!!

Outro pequeno problema de iniciante em java…

Estou trabalhando no eclipse, e queria saber como instanciar o objeto, como passar seus parâmetros…

estou na classe principal, que irá rodar o sistema, e faço uma instanciação assim:

Processador p = new Processador ();

porém, existem atributos… variáveis… como irei fornecer os valores??

Aqui um bom começo:

blz…

é muita coisa para ler, mas tudo bem… vou tentar achar…

Até…obrigado…

li toda a apostila e não achei algo que me ajudasse nos parâmetros…

ficou a dúvida ainda…

Processador p = new Processador("Intel Core 2 Duo", 1666);

//ou

Processador p = new Processador();
p.setModelo("Intel Core 2 Duo")
p.setMhz(1666);

Isto supondo que tem um construtor com esses parâmetros, ou esses métodos setters.

Exemplo:

[code]public class Processador {

//atributos da classe
private int frequencia;
private int cache;
private String nomeFabricante;

//metodos get e set (usados para setar e resgatar os valores dos atributos !!!!)
public int getFrequencia() {
	return frequencia;
}
public void setFrequencia(int frequencia) {
	this.frequencia = frequencia;
}
public int getCache() {
	return cache;
}
public void setCache(int cache) {
	this.cache = cache;
}
public String getNomeFabricante() {
	return nomeFabricante;
}
public void setNomeFabricante(String nomeFabricante) {
	this.nomeFabricante = nomeFabricante;
}

//vamos testar isso aí
public static void main(String[] args) {
	Processador p = new Processador();
	//agora vamos setar os parametros do processador
	p.setCache(2);
	p.setFrequencia(2000);
	p.setNomeFabricante("AMD");
	
	//agora vamos ler os parametros
	System.out.println(p.getNomeFabricante());
}

}
[/code]

[quote=denpr2005]li toda a apostila e não achei algo que me ajudasse nos parâmetros…

ficou a dúvida ainda…[/quote]

Seção 6.4, página 64.

desculpem, mas o construtor está assim:

public Processador (int pc, int[] registrador, String[] leitura, String [][] file){
}

como instanciar com os devidos parâmetros???

Valeu pela página Filipe…

Esse código me lembra um emulador Chip8 que implementei faz tempo.

Mas é o seguinte…

Pra eu tentar te ajudar liste quais os valores que você precisa passar para cada um destes parâmetros. Daí tento ajudar com a sintaxe.

é um simulador de Processador…

os valores serão passados através de um arquivo…

os atributos principais são estes que passei…

Vc tem algum simulador de processador? para ler registradores e instruções???

[quote=denpr2005]desculpem, mas o construtor está assim:

public Processador (int pc, int[] registrador, String[] leitura, String [][] file){
}

como instanciar com os devidos parâmetros???

Valeu pela página Filipe…[/quote]

Exemplo de instanciação desta sua classe:

public static void main(String[] args) { //instancie os valores que você irá utilizar no processador, por exemplo: int pc = 10; int[] registrador = new int[]{0,1,2,3}; String[] leitura = new String[]{"dado1","dado2"}; String[][] file = new String[][]{{"dado1"},{"dado2"}}; //instancie um novo processador Processador p = new Processador(pc, registrador, leitura, file); }

Exemplo de instanciação da sua classe:

[code]public static void main(String[] args) {
//instancie os valores que você irá utilizar no processador, por exemplo:
int pc = 10;
int[] registrador = new int[]{0,1,2,3};
String[] leitura = new String[]{“dado1”,“dado2”};
String[][] file = new String[][]{{“dado1”},{“dado2”}};

       //instancie um novo processador
	Processador p = new Processador(pc, registrador, leitura, file);
}[/code]

esta classe não está na classe principal não…

eu acabei criando os gets e sets para os dois primeiros: “pc” e “registrador” pois estão como private…

os outros dois estão como public então não criei nenhum get ou set…

Na verdade eu fiz uma máquina virtual que emula a arquitetura Chip 8 que rodava jogos no estilo do Atari em calculadoras HP antigas.

Esta emulação incluía processador, memória, input e output.

Acabei de publicar no meu blog o projeto e um tutorial que explica a implementação:
http://alessandroramos.spaces.live.com/blog/cns!195DA15AE8417741!340.entry

obrigado Ramos…

mas, é algo mais simples…

estou tendo dificuldade neste código abaixo…veja:

import java.io.*;

public class Principal {

public static void main(String[] args0) throws IOException {

	Processador p = new Processador();
	int instr = 0;
	
	try{
		
		String entrada = "c:\\Backup\\ArqSimuladorProc.txt";
		FileReader arq = new FileReader(entrada);
		BufferedReader arq2 = new BufferedReader(arq);
		String linha = arq2.readLine();
		while (linha != null){
			p.incrementaPC();
			p.leitura = linha.split("[,]");
			for(int a=0; a<p.leitura.length;a++){
				p.file[instr][a] = p.leitura[a];
			}
			instr++;
			linha = arq2.readLine();
		}
	}catch (FileNotFoundException e){
		
	}
	System.out.print("\nInstruções: " + instr);
	p.imprime();
}

}

não aparece erro, mas na hora de rodar…aparece este erro no eclipse…

Exception in thread “main” java.lang.stack OverflowError
at add. (Add.java:2)
e várias e várias linhas que incluem: Processador; Instrução…

estranho…

O seu programa termina de executar?

Nos primórdios de outras linguagens de programação eu me lembro que o erro stackoverflow aparecia quando o programa entrava em laço infinito!

Confere se as suas condições de parada no while e no for estão sendo satisfeitas pra ele parar ou se está ficando preso em algum ponto.

Se estiver usando um IDE tipo NetBeans ou Eclipse, debug o programa lendo um arquivo pequeno pra testar se ele não está ficando preso em algum dos loops.

valeu…

o arquivo é pequeno, só tem 8 linhas…vou tentar ver realmente o erro…mas, estou achando estranho…

mudei a class executar de classe e começou a dar o problema…

ele está correto, depois que roda que aparece o erro…