[resolvido]POO, é errado usar o main só pra chamar os métodos e criar objetos?

Olá pessoal, fiz um exercício pra faculdade, e funcionou da forma que queria, mas queria saber se é errado, ou se é uma prática ruim usar o Main só pra chamar os métodos ou criar os objetos??

Meu código está abaixo:

TesteProfessor.java método main



public class TesteProfessor {


	public static void main(String[] args) {
		
		Professor Professor1 = new Professor();
				
		Professor1.Imprime();
		
		
		

	}

}
import javax.swing.JOptionPane;

public class Professor{

	
	//Atributos
	String nome, departamento;
	int admissao, registro;
	Data Data1;
	//Data Data1 = new Data();
	
	
	Professor(){
		nome = JOptionPane.showInputDialog (null,"Entre com o nome do professor: ");
		departamento = JOptionPane.showInputDialog (null,"Entre com o departamento do professor: ");
		
		/*
		String texto = JOptionPane.showInputDialog (null,"Entre com a data de admissão do professor: ");
		admissao= Integer.parseInt(texto);
		*/
		
		//Data Data1 = new Data();
		
		Data1 = new Data();
		
		
		String texto = JOptionPane.showInputDialog (null,"Entre com o registro do professor: ");
		registro= Integer.parseInt(texto);		
		
	}
	public void Imprime(){
		
		
		JOptionPane.showMessageDialog(null,"<html><body>Nome: " + nome + "<html><body><br>Departamento: "+ departamento + "<html><body><br>Registro: "+ registro);
		this.Data1.Imprime();  
		
	}

}

[code]]
import javax.swing.JOptionPane;

public class Data {

int dia, mes, ano;


Data(){
	
		
		String texto = JOptionPane.showInputDialog (null,"Entre com o DIA de admissão do professor: ");
		dia= Integer.parseInt(texto);		
	
		texto = JOptionPane.showInputDialog (null,"Entre com o MÊS de admissão do professor: ");
		mes= Integer.parseInt(texto);
	
		texto = JOptionPane.showInputDialog (null,"Entre com o ANO de admissão do professor: ");
		ano= Integer.parseInt(texto);
		

}


public void Imprime(){
	
	JOptionPane.showMessageDialog(null,"<html><body>Data de admissão: " + dia+"/"+ mes + "/"+ano);
	
}

}
[/code]

Obrigado

Nesse caso eu faria diferente.

A responsabilidade do professor é únicamente referente aos dados do professor, pegar os dados do usuário deve ficar em outra classe :stuck_out_tongue:

na minha humide opinião eu implemento o menos possivel dentro do main…

deixo ele em uma classe separada e se for possivel somente chamo um metodo para inicializar a bagacera toda

hahahahha

motivo:

o main obriga vc a deixar os metodos e variaveis que estão dentro deles como static

Na hora de modelar sua classe você precisa ter em mente que:

1 - Cada classe do seu sistema precisa fazer apenas aquilo que é de sua responsabilidade. Um bean representa apenas um modelo de objeto, não é de sua responsabilidade receber valores via métodos de entrada(JOptionPane, Scanner etc). Alguma classe será responsável por isso, mas não o bean. Existem diversos outros fatores que influenciam na hora de determinar as responsabilidades de cada classe. Aconselho você a ler algum livro sobre orientação a objetos. Tem esse link aqui que é bem básico, mas começa a esclarecer algumas coisas: http://download.oracle.com/javase/tutorial/java/concepts/object.html

Acho que entendi. Vou ler o livro, ví que a leitura é bem simples!

Obrigado a todos.

Valew mais uma vez rafaelviny :wink:

Disponha :slight_smile:

Boa tarde galera !

O nome dessa programação é POG, não POO !

hehehehe

(Desculpem, não resisti)

Falando sério agora, concordo com o que foi dito pelos outros colegas.

[]s

[quote=Zeed01]Boa tarde galera !

O nome dessa programação é POG, não POO !

hehehehe

(Desculpem, não resisti)

Falando sério agora, concordo com o que foi dito pelos outros colegas.

[]s[/quote]

bem cruel vc em

hahahahhaa

o foda que eu ri da sua postagem…

mas se vc pensar no passado tenho certeza que vc fez a mesma pergunta que o igor, pelo menos eu fiz e não tenho vergonha de admitir

E o que seria POG?!

:shock:

Esquece, já descobri:

Programação Orientada a Gambiarras

kkkkkkkkkk

é um paradigma de tudo o que nao se deve fazer.

kkkkkkkkkkk

aprende rapido em igor kk

Fala Galera !

Que nada ! Eu já fiz pior !
Já criei algo assim:

minha classe {
String nomeProfessor;
String departamento;
Date dataAdmissao;
etc

public static void main (args[] String) {
nomeProfessor = JOptionPane.showInputDialog (null,"Entre com o nome do professor: ");
departamento = JOptionPane.showInputDialog (null,"Entre com o departamento do professor: ");

JOptionPane.showMessageDialog(null,"<html><body>Nome: " + nome + "<html><body><br>Departamento: "+ departamento + "<html><body><br>Registro: "+ registro);  

}

etc, etc, etc

hahahahaha

Foi só uma brincadeira mesmo… no começo aposto que todo mundo faz algo parecido.

POG = Programação Orientada a Gambiarras.

[]s

Aprender levando tapa na cara é meio sadomasoquista, mas fazer o que né?

Ou Aprendo por amor, ou por terror kkkkk

kkkk

Eu já fiquei em dúvida se deveria fazer desse jeito tbm

(tá, admito, já fiz desse jeito)

Mas então, continuando, cria uma outra classe, sei lá e cria um método rodaAplicacao()… iniciaAplicacao(), algo assim e no main só chama ele, também não gosto muito do main e quando voce começar a criar as telas vai usar o main só pra chamar a primeira tela também…

Igor…

Em algumas consultorias por ai vc vai ouvir algo como “solução técnica alternativa”.
Mas é tudo a mesma coisa.

hehehehe.

[]s

Bom, pelo menos de três programadores, três já disseram que fizeram isso.

Então não estou tão fora assim kkkk

valews

[quote=igor972]Bom, pelo menos de três programadores, três já disseram que fizeram isso.

Então não estou tão fora assim kkkk

valews[/quote]

[color=red]relembrando que a gente está falando de colocar metodos, variaveis dentro do main e nao das POGs.[/color]

vai que o povo le o topico e acha que somos POGamadores

sua duvida é muito natural quando estamos iniciando em Java, mas se daqui para frente vc continuar fazendo ai vai ser POG consentida…

Programar Orientado a Objetos não é algo fácil. Demora um tempo para você absorver os conceitos. Até lá fazemos muita, mas muita merda :slight_smile:

São coisas do aprendizado. no futuro vamos olhar para nosso código de 5 anos atrás e vamos rir pra caramba hehehe

Isso sempre acontece comigo pelo menos :stuck_out_tongue:

[quote=francislon]Programar Orientado a Objetos não é algo fácil. Demora um tempo para você absorver os conceitos. Até lá fazemos muita, mas muita merda :slight_smile:

São coisas do aprendizado. no futuro vamos olhar para nosso código de 5 anos atrás e vamos rir pra caramba hehehe

Isso sempre acontece comigo pelo menos :P[/quote]

eu to rindo dos codigos que eu fiz ontem as 5:50 da tarde

cada dia é um aprendizado novo e o paradigma de OO demora um pouco para ficar madura na nossa cabeça

Aproveitando o assunto, quando acharem códigos monstros (ou se só quiserem rir um pouco… ) lembrem-se deste topico :smiley:

tem coisas la que realmente da medo!!!

[quote=julianostr]Essa é uma lógica sem lógica que encontrei num Forms em produção de uma grande empresa a qual fiz manutenção.

IF A = 1 THEN B:= 2; ELSE B:= 2; END IF;

[/quote]

[/code]

Em Oracle (SQL) eu já vi essa pérola:

 select null from dual; 

[/quote]

isso me lembra da epoca de programação Oracle + Oracle Forms.

mas esses caras deveriam mudar de profissao