Instanciação e Objeto

16 respostas
denpr2005

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??

16 Respostas

_fs

Aqui um bom começo:

denpr2005

blz…

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

Até…obrigado…

denpr2005

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

ficou a dúvida ainda…

B
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.

emanuelCruz

Exemplo:

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());
	}
	
	
}
_fs

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

ficou a dúvida ainda…

Seção 6.4, página 64.

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…

ramos

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.

denpr2005

é 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???

emanuelCruz

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…

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); }

emanuelCruz

Exemplo de instanciação da 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);
	}
denpr2005

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…

ramos

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

denpr2005

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…

ramos

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.

denpr2005

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…

Criado 30 de abril de 2010
Ultima resposta 30 de abr. de 2010
Respostas 16
Participantes 5