<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Juliano Ribeiro &#187; Java</title>
	<atom:link href="http://julianoribeiro.com.br/blog/category/desenvolvimento/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://julianoribeiro.com.br/blog</link>
	<description>Development and Design</description>
	<lastBuildDate>Tue, 31 Jan 2012 11:40:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Delphi orientado à objetos &#8211; parte 1</title>
		<link>http://julianoribeiro.com.br/blog/delphi-orientado-a-objetos-parte-01/</link>
		<comments>http://julianoribeiro.com.br/blog/delphi-orientado-a-objetos-parte-01/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 13:47:20 +0000</pubDate>
		<dc:creator>Juliano Ribeiro</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Artigo]]></category>
		<category><![CDATA[Programação]]></category>

		<guid isPermaLink="false">http://julianoribeiro.com.br/blog/?p=293</guid>
		<description><![CDATA[Já tem um bom tempo que programo com Delphi. E sempre ouvi críticas pesadíssimas sobre o quanto a linguagem é ruim. Eu sempre acreditei que existiram sempre programadores ruins e que os programas saiam ruins, o que gerou essa impressão negativa, bem como os vários problemas que a Borland (fabricante do Delphi, agora CodeGear) impôs [...]]]></description>
			<content:encoded><![CDATA[<p>Já tem um bom tempo que programo com Delphi. E sempre ouvi críticas pesadíssimas sobre o quanto a linguagem é ruim. Eu sempre acreditei que existiram sempre programadores ruins e que os programas saiam ruins, o que gerou essa impressão negativa, bem como os vários problemas que a <strong>Borland </strong>(fabricante do Delphi, agora <strong>CodeGear</strong>) impôs nas mudanças de versão. Assim, resolvi desmistificar essa coisa de que é impossível programar orientado à objetos usando o Delphi.</p>
<p>Segue o material do nosso último treinamento, sobre como usar o Delphi, orientado à objetos.<br />
Embora pareça que estamos trabalhando com OO desde sempre, afinal instanciamos objetos baseados em classes, isso não é inteiramente verdade.<br />
Como me disse um professor certa vez: <em>&#8220;Seu sistema é orientado à objetos? Ótimo. Me mostre a sua classe NotaFiscalSaída.&#8221;</em></p>
<p>Assim achei por bem usar um exemplo bem simples, estados e cidades para mostrar o poder que o Delphi tem e de quebra demonstrar que o que está errada é a maneira como programamos e não a linguagem que usamos, seja ela qual for.<br />
<span id="more-293"></span><br />
Primeiramente, começamos com alguns paralelos. No Delphi, para criarmos uma classe, precisamos cria-la como um componente, para mais tarde, criar instancias dele. Usando o <strong>Delphi 2006</strong>, eu vou em <em><strong>File > New > Package</strong></em>. Então no Project Manager eu clico sobre o pacote com o botão direito e escolho <em><strong>Add New > Other&#8230;</strong></em></p>
<p>A janela que se abrirá me dá várias opções, a que vamos usar está em<em> <strong>Delphi Projects > Delphi Files > Component</strong></em>. No Wizard seguinte escolhemos de qual componente o nosso irá herdar suas características (não vou explicar herança aqui). Nesse momento escolheremos <strong>TComponent</strong>, para pegar somente o mínimo necessário. Na próxima tela, escolha o nome do componente em C<strong>lass Name</strong>, para nós será TCidade (o &#8220;T&#8221; é padrão do Delphi, use sem questionar). Escolha a Pallete Page que deseja ou digite uma nova, lembre que esse campo é Case Sensitive, portanto atenção ao digitar. Preencha os demais campos se precisar.</p>
<p>A classe cidade:</p>
<pre class="brush: delphi;">
unit cidade;

interface

uses
  SysUtils, Classes, Estado;

type
  TCidade = class(TComponent)
  private
    Fcid_nome: string;
    Fcid_codigo: integer;
    Festado: TEstado;
    procedure Setcid_codigo(const Value: integer);
    procedure Setcid_nome(const Value: string);
    procedure Setestado(const Value: TEstado);
    { Private declarations }
  protected
    { Protected declarations }
  public
    { Public declarations }
  published
    { Published declarations }
    property cid_codigo: integer read Fcid_codigo write Setcid_codigo;
    property cid_nome: string read Fcid_nome write Setcid_nome;
    property estado: TEstado read Festado write Setestado;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Objetos Produtec', [TCidade]);
end;

{ TCidade }

procedure TCidade.Setcid_codigo(const Value: integer);
begin
  Fcid_codigo := Value;
end;

procedure TCidade.Setcid_nome(const Value: string);
begin
  Fcid_nome := Value;
end;

procedure TCidade.Setestado(const Value: TEstado);
begin
  Festado := Value;
end;

end.</pre>
<p>Vamos falar um pouco da classe cidade. Nela eu coloquei os principais atributos de uma cidade, somente para exemplo. Percebam que os mesmos foram criados baseado na seguinte estrutura: </p>
<pre class="brush: delphi;">
private
    Fcid_nome: string;
published
    property cid_nome: string read Fcid_nome write Setcid_nome;
</pre>
<p>(&#8230;)</p>
<pre class="brush: delphi;">
procedure TCidade.Setcid_nome(const Value: string);
begin
  Fcid_nome := Value;
end;
</pre>
<p>Traduzindo, teremos uma propriedade com o nome cid_nome, do tipo string (notem que sem tamanho definido) que lê o valor para uma variável Fcid_nome e grava através de uma procedure chamada como Setcid_nome. Ótimo, mas o que ganhamos com isso? Para que esconder o real valor de uma variável ao invés de simplesmente torná-la pública? E para que criar um procedimento para atribuir o valor, se a mudança da visibilidade já resolveria? Parece tudo uma grande perda de tempo, mas é um foco na segurança e no reuso.<br />
Imaginem que em determinado momento, nós precisaremos delimitar o tamanho da cidade para o máximo de caracteres que existem no banco de dados, que para o nosso exemplo é de 60 caracteres. Alterando o procedimento SetCid_Nome todo, eu disse TODO, o sistema passa a respeitar a nova regra, sem precisar avisar a nenhuma outra parte do sistema que isso aconteceu. Vejam como ficaria: </p>
<pre class="brush: delphi;">
procedure TCidade.Setcid_nome(const Value: string);
begin
   if Length(Value) &lt; 60 then
      Fcid_nome := Value;
end;
</pre>
<p>Viram que simples? Poderíamos melhorar ainda, criando uma mensagem de erro (exceção) que poderia ser tratada pela tela que realizou a chamada ou simplesmente exibida diretamente em tela. Algo mais ou menos assim: </p>
<pre class="brush: delphi;">
procedure TCidade.Setcid_nome(const Value: string);
begin
   if Length(Value) &lt; 60 then
      Fcid_nome := Value
   else
      raise Exception.Create('O nome da cidade não pode conter mais do que 60 caracteres.');
end;
</pre>
<p>Várias validações ou procedimentos poderiam ser feitos no momento em que a propriedade é atribuída, como preencher uma outra propriedade, carregar outros componentes em tela, enfim, o limite fica por conta da necessidade do programador.<br />
Se eu não disse antes, o nome desse método chama-se <a href="http://pt.wikipedia.org/wiki/Encapsulamento">encapsulamento</a>, pois os atributos ficam protegidos (encapsulados) em métodos que lêem e escrevem nas variáveis.<br />
Isso é meio caminho para um estereótipo usado em UML chamado JavaBean, que os meninos que mexem com Java devem conhecer bem.</p>
]]></content:encoded>
			<wfw:commentRss>http://julianoribeiro.com.br/blog/delphi-orientado-a-objetos-parte-01/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Proposta de TCC</title>
		<link>http://julianoribeiro.com.br/blog/proposta-de-tcc/</link>
		<comments>http://julianoribeiro.com.br/blog/proposta-de-tcc/#comments</comments>
		<pubDate>Mon, 11 May 2009 11:27:39 +0000</pubDate>
		<dc:creator>Juliano Ribeiro</dc:creator>
				<category><![CDATA[Faculdade]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Diagrama de Caso de Uso]]></category>
		<category><![CDATA[Diagrama de Classes]]></category>
		<category><![CDATA[TCC]]></category>
		<category><![CDATA[UML]]></category>

		<guid isPermaLink="false">http://julianoribeiro.com.br/blog/?p=191</guid>
		<description><![CDATA[Seguindo a série sobre as coisas que ando produzindo na faculdade. Todo mundo sabe que estou longe de ser um designer. Vez por outra eu consigo fazer um layout legal, mas é raro. Com o treino e estudo acho que um dia posso chegar lá, mas deve demorar. Bom, assim sendo, melhor focar na programação. [...]]]></description>
			<content:encoded><![CDATA[<p>Seguindo a série sobre as coisas que ando produzindo na faculdade.</p>
<p>Todo mundo sabe que estou longe de ser um designer. Vez por outra eu consigo fazer um layout legal, mas é raro. Com o treino e estudo acho que um dia posso chegar lá, mas deve demorar.</p>
<p>Bom, assim sendo, melhor focar na programação. Estou colocando aqui para quem quiser baixar a minha proposta de TCC que apresentei e foi aprovada. Para o PDF não ficar muito pesado estou colocando também as imagens referentes ao diagrama de classes e ao diagrama de caso de uso.</p>
<p style="text-align: center;"><a href="http://julianoribeiro.com.br/blog/wp-content/uploads/2009/05/proposta-de-tcc.pdf">Proposta-de-TCC</a></p>
<div id="attachment_174" class="wp-caption aligncenter" style="width: 310px"><a href="http://julianoribeiro.com.br/blog/wp-content/uploads/2009/05/diagrama-de-classe.jpg"><img class="size-medium wp-image-174" title="diagrama-de-classe" src="http://julianoribeiro.com.br/blog/wp-content/uploads/2009/05/diagrama-de-classe-300x169.jpg" alt="Diagrama de Classes" width="300" height="169" /></a><p class="wp-caption-text">Diagrama de Classes</p></div>
<div id="attachment_175" class="wp-caption aligncenter" style="width: 310px"><a href="http://julianoribeiro.com.br/blog/wp-content/uploads/2009/05/caso-de-uso.jpg"><img class="size-medium wp-image-175" title="caso-de-uso" src="http://julianoribeiro.com.br/blog/wp-content/uploads/2009/05/caso-de-uso-300x189.jpg" alt="Diagrama de Caso de Uso" width="300" height="189" /></a><p class="wp-caption-text">Diagrama de Caso de Uso</p></div>
<p>Dentro de alguns dias eu coloco o documento de especificação. Assim que ele ficar pronto.</p>
]]></content:encoded>
			<wfw:commentRss>http://julianoribeiro.com.br/blog/proposta-de-tcc/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>O que a faculdade faz?</title>
		<link>http://julianoribeiro.com.br/blog/o-que-a-faculdade-faz/</link>
		<comments>http://julianoribeiro.com.br/blog/o-que-a-faculdade-faz/#comments</comments>
		<pubDate>Wed, 06 May 2009 13:21:05 +0000</pubDate>
		<dc:creator>Juliano Ribeiro</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Faculdade]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Aprendizado]]></category>
		<category><![CDATA[Ensino]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://julianoribeiro.com.br/blog/?p=149</guid>
		<description><![CDATA[Não sei se eu comentei por aqui, mas eu faço faculdade de Sistemas para a Internet, no CESUMAR, aqui em Maringá. É um curso ótimo que ajuda a desenvolver as habilidades para fazer sistemas online. Reparem na palavra, &#8220;AJUDA&#8221;. Você tem um custo, perde seu tempo e não vai sair da faculdade sabendo fazendo nem [...]]]></description>
			<content:encoded><![CDATA[<p>Não sei se eu comentei por aqui, mas eu faço faculdade de Sistemas para a Internet, no CESUMAR, aqui em Maringá. É um curso ótimo que ajuda a desenvolver as habilidades para fazer sistemas online. Reparem na palavra, <strong>&#8220;AJUDA&#8221;.</strong> Você tem um custo, perde seu tempo e não vai sair da faculdade sabendo fazendo nem um site se não correr atrás.</p>
<p>Ai você me pergunta:</p>
<blockquote><p>Pô Juliano, então você está me dizendo que eu to jogando meu dinheiro fora? Que se eu quiser realmente aprender vou ter de me virar?</p></blockquote>
<p><span id="more-149"></span></p>
<p>Bom, é e não é. Nesse momento em que estou do curso faço a seguinte avaliação: estamos num curso de programação para a web e o que os alunos mais reclamam é que não conseguem aprender programação. Gente, pelo divino, o curso é de programação. Ou aprendem isso ou saiam. Não estou expulsando ninguém, mas poxa, basta um mínimo de dedicação que a coisa flui. Nós estamos atrasados 3 bimestres com a matéria de PHP. Já deveríamos estar estudando Flex e ainda estamos em Javascript. Isso é completamente inaceitável.</p>
<p>Não estou generalizando. Vi excelentes iniciativas de pessoas que foram atrás, pagaram professores particulares, procuram alunos que saibam programar e conseguem melhorar o seu desempenho. Isso é salutar.</p>
<p>Esse post tem o seguinte intuito. Dar uma sacudida em todos vocês que esperam que a faculdade ensine todas as informações que você precisa para vida profissional.</p>
<p><strong>No pain, no gain.</strong></p>
<p>De outro lado, professores, não perguntem se não querem ouvir a resposta. Ontem um professor deixou um espaço aberto para que os alunos questionassem a prova e ficou furioso com o que ouviu. Mil desculpas, mas você perguntou. Citar referências externas para que alunos que querem se dedicar a isso possam ampliar seus conhecimentos é excelente. Falar que só porque essas referências foram citadas elas são matéria de prova, é ridículo.</p>
<p>Caros professores, temos uma vida fora da faculdade. Não somos máquinas de estudar bem como vocês não são máquinas de ensinar. Não cobre conhecimentos profundos de orientação à objetos se para muitos é a primeira vez que veem isso na vida.</p>
<p>Espero não ter sido muito ofensivo ou irritante, o espaço, como sempre, fica aberto para quem quiser se pronunciar. Abraços</p>
]]></content:encoded>
			<wfw:commentRss>http://julianoribeiro.com.br/blog/o-que-a-faculdade-faz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Decoração de Natal &#8211; W3Host</title>
		<link>http://julianoribeiro.com.br/blog/decoracao-de-natal-w3host/</link>
		<comments>http://julianoribeiro.com.br/blog/decoracao-de-natal-w3host/#comments</comments>
		<pubDate>Fri, 05 Dec 2008 14:10:31 +0000</pubDate>
		<dc:creator>Juliano Ribeiro</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Pessoal]]></category>
		<category><![CDATA[Hospedagem]]></category>
		<category><![CDATA[Natal]]></category>
		<category><![CDATA[W3Host]]></category>

		<guid isPermaLink="false">http://julianoribeiro.com.br/blog/?p=82</guid>
		<description><![CDATA[Nessa época de natal, todas as casas se enfeitam pra chegada do velho noel. Bom, esse site, e muitos outros, se hospedam no meu servidor, o W3HOST, o que faz do servidor o mais próximo do que poderíamos chamar de uma casa. Com esse pensamento em mente, encomendei a W3TUTOR uma decoração de natal para [...]]]></description>
			<content:encoded><![CDATA[<div id="texto">
<p>Nessa época de natal, todas as casas se enfeitam pra chegada do velho noel.</p>
<p>Bom, esse site, e muitos outros, se hospedam no meu servidor, o <a href="http://www.w3host.com.br/">W3HOST</a>, o que faz do servidor o mais próximo do que poderíamos chamar de uma casa.</p>
<p>Com esse pensamento em mente, encomendei a <a href="http://www.w3tutor.com.br/">W3TUTOR</a> uma decoração de natal para o nosso novo site.</p>
<p><img src="http://www.julianoribeiro.com.br/images/logo_w3host_sem-fundo.png" alt="" />Em breve mais funcionalidades, como o sistema de notícias serão ativadas.</p>
<p>Como sempre digo, o importante é a qualidade de nossos serviços prestados, o resto a gente vê depois. <strong>Bom natal e final de ano para todos</strong></div>
]]></content:encoded>
			<wfw:commentRss>http://julianoribeiro.com.br/blog/decoracao-de-natal-w3host/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Caravana Java</title>
		<link>http://julianoribeiro.com.br/blog/caravana-java/</link>
		<comments>http://julianoribeiro.com.br/blog/caravana-java/#comments</comments>
		<pubDate>Fri, 26 Sep 2008 01:08:45 +0000</pubDate>
		<dc:creator>Juliano Ribeiro</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://julianoribeiro.com.br/blog/?p=42</guid>
		<description><![CDATA[Nessa última quarta-feira (24), aconteceu a Caranava Java. Um evento que colocou Maringá na rota da tecnologia. A Sun é hoje uma das maiores empresas de tecnologia para desenvolvedores do planeta e cada dia consegue colocar os seus programas em mais dispositivos. Com o mote &#8220;Escreve uma vez, rode em qualquer lugar&#8221;, a Sun tem [...]]]></description>
			<content:encoded><![CDATA[<div id="texto">
<div style="margin: 2px; width: 200px; float: left;"><img src="http://www.julianoribeiro.com.br/fotos/caravanaJava/Foto-0328.jpg" alt="" /> <img src="http://www.julianoribeiro.com.br/fotos/caravanaJava/Foto-0330.jpg" alt="" /> <img src="http://www.julianoribeiro.com.br/fotos/caravanaJava/Foto-0331.jpg" alt="" /></div>
<p>Nessa última quarta-feira (24), aconteceu a Caranava Java. Um evento que colocou Maringá na rota da tecnologia. A Sun é hoje uma das maiores empresas de tecnologia para desenvolvedores do planeta e cada dia consegue colocar os seus programas em mais dispositivos. Com o mote &#8220;Escreve uma vez, rode em qualquer lugar&#8221;, a Sun tem se firmado no gosto dos programadores. O pessoal da Produtec compareceu em peso (trocadilhos a parte).<br />
Tivemos primeiro a palestra de Bruno Souza que é Diretor Mundial de Comunidades Open Source da Sun Microsystems, conhecido como o &#8220;JavaMan&#8221;. Ele falou das tecnologia Java da Sun e de como OpenSource tem mudado a maneira como programar.</p>
<p>A segunda foi com Carol MacDonald é uma das evangelistas da Sun Microsystems e tem falado em inúmeros eventos, incluindo JavaOne, Java University, Sun Tech Days, Sun Network, Sun Code Camps, JDJEdge, e em diversos Grupo de Usuarios, tais como o de Manchester, Boston, Maine, Cologne, FAA, Richmond, Memphis e Washington.</p>
<p><em>PS: A tradução simultânea foi um show a parte. Acredito que todos ficaram babando na <a href="http://www.livescribe.com/">caneta</a>.</em></div>
]]></content:encoded>
			<wfw:commentRss>http://julianoribeiro.com.br/blog/caravana-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rodrigo´s Blog</title>
		<link>http://julianoribeiro.com.br/blog/rodrigo%c2%b4s-blog/</link>
		<comments>http://julianoribeiro.com.br/blog/rodrigo%c2%b4s-blog/#comments</comments>
		<pubDate>Wed, 06 Feb 2008 00:30:41 +0000</pubDate>
		<dc:creator>Juliano Ribeiro</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://julianoribeiro.com.br/blog/?p=30</guid>
		<description><![CDATA[O meu amigo e padrinho de casamento Rodrigo estreou dia desses o seu Blog. O Rodrigo trabalhou aqui comigo, é formado em alguma coisa de informática que eu me esqueci agora, pós graduado em JAVA e já tirou a sua primeira certificação no assunto e tá partindo para a segunda. Com certeza seu blog vai [...]]]></description>
			<content:encoded><![CDATA[<div style="margin: 5px; width: 340px; height: 82px; float: right;"><img src="http://www.julianoribeiro.com.br/images/blog_rodrigo.jpg" border="0" alt="" /></div>
<p>O meu amigo e padrinho de casamento Rodrigo estreou dia desses o seu <a href="http://blog.guedesdesouza.com.br/">Blog</a>.</p>
<p>O Rodrigo trabalhou aqui comigo, é formado em alguma coisa de informática que eu me esqueci agora, pós graduado em JAVA e já tirou a sua primeira certificação no assunto e tá partindo para a segunda.</p>
<p>Com certeza seu blog vai envolver mais esses assuntos, mas fiquem tranquilos que muito uso para Java na web. Podem esperar.</p>
<p><em>PS: Rodrigo, to esperando você fazer um banner pra eu colocar aqui do lado.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://julianoribeiro.com.br/blog/rodrigo%c2%b4s-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

