Progamação procedural X OO

Boa noite!

Estou iniciando na programação em java, estou apredendo sozinho e tenho uma dúvida que gostaria de compartilhar com vocês.
Antes do java eu programei em algumas outras linguagens, tais como VB, C, Clipper, Cobol, ASP, etc

Eu peguei um exercício em um site, não lembro qual, que pedia para solicitar ao usuário uma matriz e exibir a matriz transposta na tela.
Fiz o programinha abaixo usando o que sabia sobre lógica e programação, portanto o programa ficou procedural, não utilizei orientação a objetos para resolver o problema.
A minha dúvida tem a ver justamente com esse tema, a orientação a objetos pode ser usada sempre, mesmo nos programas mais simples como esse exemplo?
Em caso afirmativo, como ficaria esse mesmo programa transcrito para orientação a objetos?

Caso vocês conheçam sites que façam tenham artigos com esse tipo de comparação, gostaria que vocês me indicassem, pois é uma mudança grande essa mudança de um paradigma para outro.

Obrigado pela atenção!

import java.io.*;

public class Ex03 {
	private static BufferedReader teclado = new BufferedReader(new InputStreamReader(System.in));
	
	public static void main(String[] args) throws IOException {
		
		//Solicitar ao usuário o tamanho da matriz
		System.out.print("Informe o tamanho da matriz quadrada: ");
		int tamanho = Integer.parseInt(teclado.readLine());		
		
		int numeros[][] = new int[tamanho][tamanho]; //array que vai guardar os números digitados		
		
		//Loop para pedir os números
		for(int i = 0; i < numeros.length; i++) { //Loop para as linhas
			for(int j = 0; j < numeros.length; j++) { //Loop para as colunas
				System.out.print("Informe o valor para a linha " + (i+1) + " coluna " + (j+1) + ": "); //Mensagem para digitar o número
				String digitado = teclado.readLine(); //armazena o conteúdo digitado pelo usuário
				numeros[i][j] = Integer.parseInt(digitado); //inclui o que foi digitado no array
			}
		}

		//Mostra a matriz original
		System.out.println("\nMatriz original: ");
		
		//Percorre todos os elementos do array
		for(int i = 0; i < numeros.length; i++) { //Loop para as linhas
			for(int j = 0; j < numeros.length; j++) { //Loop para as colunas
				System.out.print(numeros[i][j] + " "); //Exibe o conteúdo da array
			}
			System.out.print("\n"); //Pula para a próxima linha da tela
		}

		//Mostra a matriz transposta
		System.out.println("\nMatriz transposta: ");
		
		//Percorre todos os elementos do array
		for(int j = 0; j < numeros.length; j++) { //Loop para as colunas
			for(int i = 0; i < numeros.length; i++) { //Loop para as linhas
				System.out.print(numeros[i][j] + " "); //Exibe o conteúdo da array
			}
			System.out.print("\n"); //Pula para a próxima linha da tela
		}
	}
}

Nem sempre é para se usar OO, mas se vc usar sempre vc acaba pegando a mãnha.

Por exemplo, tente separar as entidades (objetos) do seu sistema. Claramente vc tem uma entidade chamada Matriz, que pode ter um método transpose(), que vai te retornar um novo objeto Matriz, que é a transposta da primeira.

O mais importante é vc entender que uma classe é a forma, que vai gerar vários objetos a partir dela…

Olá!!

Nesse site tem alguns conceitos impostantíssimos sobre OO!

http://java.sun.com/docs/books/tutorial/java/concepts/

Att,
:slight_smile:
Priscila Vriesman