Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Luiz Gehlen

Tentando aprender o orientado a objetos

Recommended Posts

Bem pessoal, pode parece bastante tosco pra vocês que já tem experiencia, mas eu nos meus 15 anos ainda apanho muito pra essa POO, aprendi C e por lá fiquei bastante tempo, eu acho que foi util, aprendi muitos conceitos de programação, mas hoje quero aprender C# e teria que estudar o orientado a objetos e queria que vocês avaliassem esse algoritmo e me discessem meus acertos/erros, o algoritmo foi de um programa de cadastros de alunos simples que acabei de imaginar, o objetivo seria eu aprender a lidar com classes, mas acho que vai fica parecido com as estruturas do C :S, me corrigam! obri.

Segue meu algoritmo que foi escrito direto aqui. ^^

Classe Alunos{
id aluno;
nome aluno;
idade aluno;
serie aluno;
}
Classe banco de dados{ // primeiro algortmo, malz se isso nao devesse existi :S
nome bd;
host bd;
login e senha bd;
}
main (){ // isso parece C, alquem me corrige se tive muito esquisito
escreva "entre com o nome do aluno:";
leia e armazene em nome aluno;
escreva "entre com a idade do aluno:";
leia e armazene em idade aluno;
escreve "entre com a serie escolar do aluno";
leia e armazene em seria aluno;
arrayAluno (id aluno, nome aluno, idade aluno, serie aluno)
arrayBD (host bd, nome bd, login se senha bd);
conecta no arrayBD;
se não abri
{
  escreva "Oops, houve um erro, o banco de dados não pode ser aberto, isso pode ter varias causas como: 1-Outro programa esta conectado ao mesmo BD 2-O servidor esta indisponivel 3-Você não esta conectado ao servidor, para maiores informações ligue para o programador";
  volte ao incio;
}
senão
{ 
  insira o array aluno no nome bd;
}
escreva "desejar cadastrar outro aluno?";
se for escrito "sim";
{
volte ao inicio;
} senão;
Saia;
}

Bem, se estiver muito errado, teria como me indicarem o metodo de faze-lo certo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

amigo está um pouco confuso..

você declarou alguns tipos de variaveis q n estou vendo como elas são montadas..

q linguagem seria isso?

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Luiz.

 

Você tem algum motivo específico para escolher C#?

Eu te aconselho a mudar de ideia, vá de Java ou C++.

São linguagens infinitamente mais poderosas e multiplataforma.

(Existem alguns frameworks que permitem rodar C# em outras plataformas, mas é trabalho desnecessário)

Compartilhar este post


Link para o post
Compartilhar em outros sites

opa amigo =]

 

hehe tambem ainda to tentando aprende esse treco de orientação objetos .. *php .. vo tenta explica como eu acho, favor se tiver errado me corrijam...

 

sobre o objeto:

seguinte tipo.. pensa num objeto... sim :) qualquer ...

hmm

um CUBO !

um objeto não ? :P

um cubo tem medidas sim .. esse é 10 cm por 10 cm.. entao minha base é de 10 e minha altura é de 10 .. isto.. base e altura vao ser propriedades deste objeto ... meu objeto CUBO...

beleza .. um cubo ta e agora ? ... (ZzzZZz) ... vamos brincar com ele ? como ?

ah ele gira =].. girar é uma ação que ele pode fazer.. então girar vai ser um metodo do meu objeto CUBO...

bah que sem graça neh .. girar um cubo .. entao vamos implementar numeros aos lados do cubo =] HUHUH agora posso sortiar numeros de 1 a 4 com meu cubo :D

opa.. 4 lados... esta é mais uma propriedade do meu cubo ^^

agora que implementei numeros posso sortiar .. isto é uma ação entao a mais que ele pode fazer .. entao é mais um metodo do meu objeto cubo.

 

o cubo

<?php
//Classe
class CUBO
{
 //Propriedades
 public $Base= '10cm';
 public $Altura = '10cm';
 public $Numero_Lados = 4;
 //Metodos
 public function Gira()
  {
   echo 'o cubo giro de lado ! ';
  }
}
?>

Numeros

<?php
//Classe
class Numeros
{
//Propriedades
//Metodos
public function Sorteia()
 {
  echo 'o numero sortiado é'.rand(0, $this->Numero_Lados);
 }
}
?>

Objeto cubo

<?php
//Classe
class CUBO
{
 //Propriedades
 public $Base= '10cm';
 public $Altura = '10cm';
 public $Numero_Lados = 4;
 //Metodos
 public function Gira()
  {
   echo 'o cubo giro de lado ! ';
  }
}
//criando objeto
$meu_cubo = New Cubo;
//acessando as propriedades do meu objeto
echo 'a base do meu cubo é = '.$meu_cubo->Base;
echo 'a altura do meu cubo é = '.$meu_cubo->Altura;
echo 'meu cubo tem = '.$meu_cubo->Numero_Lados.' lados';
//executando metodos
$meu_cubo->Gira();
?>

Objeto cubo com numeros

<?php
//Classe
class Numeros
{
//Propriedades
//Metodos
public function Sorteia()
 {
  echo 'o numero sortiado é'.rand(0, $this->Numero_Lados);
 }
}
//Classe
class CUBO extends Numeros
{
 //Propriedades
 public $Base= '10cm';
 public $Altura = '10cm';
 public $Numero_Lados = 4;
 //Metodos
 public function Gira()
  {
   echo 'o cubo giro de lado ! ';
  }
}
//criando objeto
$meu_cubo = New Cubo;
//acessando as propriedades do meu objeto
echo 'a base do meu cubo é = '.$meu_cubo->Base;
echo 'a altura do meu cubo é = '.$meu_cubo->Altura;
echo 'meu cubo tem = '.$meu_cubo->Numero_Lados.' lados';
//executando metodos
$meu_cubo->Gira();
$meu_cubo->Sorteia();
?>

Sobre a orientação:

beleza .. imaginamos uma situação.. hehe tudo começa com um problema sempre :P .. uma pessoal que sorteia um numero com um cubo...

 

digamos.. de maneira procedural..

 

pessoa sente vontade

pessoa pega madeira

pessoa pega facão

pessoa corta madeira em forma de cubo

pessoa pega lapis

pessoa desenha numeros de 1 a 4

pessoa sorteia

com objetos..

"como criar um cubo"

pessoa pega madeira

pessoa pega facão

pessoa corta madeira em forma de cubo

 

"como colocar numeros"

pessoa pega lapis

pessoa desenha numeros de 1 a numero de lados

 

pessoa sente vontade

pessoa cria cubo e coloca numeros

pessoa sorteia

nussa.. deu mais trabalho com objetos neh :P mass.. sei la... deu vontade da pessoa fazer 3 cubos.. vamos fazer dnovo

 

de maneira procedural..

 

pessoa sente vontade

pessoa pega madeira

pessoa pega facão

pessoa corta madeira em forma de cubo

pessoa pega lapis

pessoa desenha numeros de 1 a 4

pessoa pega madeira

pessoa pega facão

pessoa corta madeira em forma de cubo

pessoa pega lapis

pessoa desenha numeros de 1 a 4

pessoa pega madeira

pessoa pega facão

pessoa corta madeira em forma de cubo

pessoa pega lapis

pessoa desenha numeros de 1 a 4

pessoa sorteia

com objetos..

"como criar um cubo"

pessoa pega madeira

pessoa pega facão

pessoa corta madeira em forma de cubo

 

"como colocar numeros"

pessoa pega lapis

pessoa desenha numeros de 1 a numero de lados

 

pessoa sente vontade

pessoa cria cubo e coloca numeros

pessoa cria cubo e coloca numeros

pessoa cria cubo e coloca numeros

pessoa sorteia

epa.. negocio mudo dai neh :P .. tipo .. é mais organizado, da menos trabalho e é mais facil de fazer =]

você dexa as instrucoes preparadas ae quando precisa usar so cria o objeto .. se precisa adicionar mais a isto.. implementa =]

 

claro isso é so um hiper basicao .. mas acho que ja ajuda .. entendendo um pouco do sentido .. depois você pode pesquisar e estudar mais assim como eu to tentando faze hehe.. tipo tem muitoooo mais =\.. polimorfismo , abstrações, interfaces, padroes GoF, DAO, MVC, ixii... mas um dia nos chegamo la :P

 

prevendo criticas.. volto a repetir ... isso é so para entender tipo "objeto" .. relaxa galerinha ^^

 

Obs: quanto a idade relaxa amigo :P eu tenho 17

 

valww espero ter ajudado

Compartilhar este post


Link para o post
Compartilhar em outros sites

É esse o espírito. Eu cá ainda estou me orientando pelos algoritmos, mais básico que há :), mas vou com calma, devagarinho é que se vai longe :).

Deu para perceber a sua ideia, ficou claro sim ;)

 

Cumprimentos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Luiz.

 

Você tem algum motivo específico para escolher C#?

Eu te aconselho a mudar de ideia, vá de Java ou C++.

São linguagens infinitamente mais poderosas e multiplataforma.

(Existem alguns frameworks que permitem rodar C# em outras plataformas, mas é trabalho desnecessário)

 

 

Abrindo um parêntese na discussão, de forma alguma Java ou C++ podem ser classificadas como "infinitamente" mais poderosas que qq outra linguagem. Principalmente a supracitada C#, que utilizo para aplicações de processamento de imagens e IA, com ótimo desempenho e inúmeros recursos de programação que podem ser executados em diversas plataformas através da Framework Mono.

 

C++, ainda pode ser considerada a linguagem mais rápida e flexível por ser independente de framework e gerar arquivos binários em linguagem de máquina, por isso é a linguagem mais utilizada no desenvolvimento de jogos complexos. Porém, Java é dependente da JVM e portanto apresenta resultados inferiores ao C# em diversos benchmarks científicos.

 

No geral Java e C# são equivalentes, cada uma com seus prós e contras. Felizmente ambas compartilham uma sintaxe similar e portanto o aprendizado simultâneo e bem simples, facilitando a utilização da linguagem mais adequada a cada aplicação.

 

Em relação a OO, o ideal é aprender algum modelo conceitual, como UML. Dessa forma a implementação se torna independente da linguagem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.