Entendendo o conceito de encapsulamento

Encapsulamento é a técnica de transformar os objetos que compõem uma aplicação em verdadeiras caixas-pretas. De fato, se pensarmos em termos de informática, é possível para um usuário comum usar todas as funcionalidades de uma impressora sem nem mesmo entender seu funcionamento interno. Imagine o desastre que seria se todos os usuários resolvessem abrir suas impressoras para investigar o que há dentro delas.

Da mesma forma, ao contruir uma classe, devemos fazê-lo de forma que o usuário desta classe tenha acesso apenas aos métodos que permitem ler informações da classe ou fornecer os dados necessários para sua correta operação. Dados relativos ao funcionamento interno da classe devem permanecer ocultos e acessíveis somente aos métodos da própria classe.

O encapsulamento deve ser aplicado de forma a permitir que alterações na estrutura interna de uma classe não prejudique o funcionamento do código externo que a usa. Veja um exemplo:

class Pedido{
public List obterProdutos(){
// monta uma lista de produtos
// pertecentes a este pedido
return lista;
}
}

A classe Pedido contém um método chamado obterProdutos() que retorna uma lista de produtos pertencentes a um determinado pedido. É aqui que o encapsulamento se torna importante. O código que usa esta classe desconhece completamente como esta lista de produtos é montada. Tudo que nos interessa é a lista de produtos que o método retorna. O programador da classe pode decidir a qualquer momento, talvez para melhorar o desempenho da classe, alterar a forma de montagem da lista. Uma vez que o nome e retorno do método (incluindo a estrutura da lista retornada) continuem sendo os mesmos, o código que usa a classe continuará funcionando como anteriormente.

fonte.: http://www.arquivodecodigos.net/dicas/java-entendendo-o-conceito-de-encapsulamento-encapsulation-em-java-2424.html

Diário de bordo…

O último FlashCamp ocorreu no Brasil, este sendo marcado como o primeiro em território nacional e contemplou a visita de ilustres palestrantes internacionais e de grande nome no universo Adobe. Alguns pontos importantes e que chamou a atenção na primeira palestra, ministrada por Joshua Hirsch foi a importância dos back loader,
aquelas barras de progressos que até então tínhamos a visão de querer que aquele velho loading saísse logo da tela. A história vem mudando, durante a palestra, Joshua mostrou uma série de back loader a ninguém cansou de ver maravilhados a imensidade de efeitos naquelas apresentações. Após sua apresentação houveram muitas outras, os temas mais diversos abordaram sobre programação para celular, flash player 10.1, as aplicações no novo
flash builder peecurssor do Flex 3. O Evento contou com a participação dos maiores Evagelists Adobe, Lee Brimelow e Daniel Dura.

Como fazer validações em campos no flex?

Bom, como algumas pessoas tinham pedido, estou mostrando aqui como fazer validações de campo no Flex, é bem simples e já existem muita coisa pronta nas próprias bibliotecas do Flex, para começar vamos ter em mente que estamos inserindo os códigos dentro da tag  <Application> nela deverão estar todas as informações que vamos precisar.:

<mx:Application xmlns:mx=”http://www.adobe.com/2006/mxml” layout=”vertical”>
Nela escolhi o layout como vertical, mas não tem problema se você estiver qualquer outro tipo. Vamos criar agora uma panel com três campos e um botão para validar os campos, dessa forma fiz dessa maneira:
<mx:Panel width=”444″ height=”266″ layout=”absolute”>
<mx:Form x=”82″ y=”38″>
<mx:FormItem label=”Nome:” required=”true”>
<mx:TextInput id=”nome”/>
</mx:FormItem>
<mx:FormItem label=”email:”>
<mx:TextInput id=”email”/>
</mx:FormItem>
<mx:FormItem label=”Telefone”>
<mx:TextInput id=”telefone”/>
</mx:FormItem>
<mx:FormItem label=”Idade:”>
<mx:TextInput id=”idade”/>
</mx:FormItem>
<mx:FormItem label=”">
<mx:Button label=”Validar” id=”validarButton” click=”validar()”/>
</mx:FormItem>
</mx:Form>
</mx:Panel>
<mx:Panel width=”444″ height=”266″ layout=”absolute”> <mx:Form x=”82″ y=”38″> <mx:FormItem label=”Nome:” required=”true”> <mx:TextInput id=”nome”/> </mx:FormItem> <mx:FormItem label=”email:”> <mx:TextInput id=”email”/> </mx:FormItem> <mx:FormItem label=”Telefone”> <mx:TextInput id=”telefone”/> </mx:FormItem> <mx:FormItem label=”Idade:”> <mx:TextInput id=”idade”/> </mx:FormItem> <mx:FormItem label=”"> <mx:Button label=”Validar” id=”validarButton” click=”validar()”/> </mx:FormItem> </mx:Form> </mx:Panel>
O panel por fora e dentro dele um form com vários form itens.
Notem que em cada formItem eu coloquei um id correspondente, vamos precisar utilizar ele para validar nossos campos, se você simplemente colar o código no flex builder ele vai dar erro de compilação por que no botão de validação incluímo a propriedade click, que vai chamar o método validar() que vamos criar agora. O método deverá ficar dentro de um bloco de script que irá gerar uma tag [CDATA que indica que dentro dela vamos poder usar qualquer tipo de caracter. O função fica desta maneira:

<mx:Script>
<![CDATA[
import mx.validators.StringValidator;
import mx.controls.Alert;
import mx.events.ValidationResultEvent;
import mx.events.VideoEvent;
private function validar(){
var result:ValidationResultEvent = stringValidator.validate();
var result:ValidationResultEvent = emailValidator.validate();
var result:ValidationResultEvent = telefoneValidator.validate();
if(result.results != null){
Alert.show("Verificar campos em vermelho!");
} else {
Alert.show("Cadastro com Sucesso!");
}
}
]]>
</mx:Script>
Colocando este bloco de script em cima no nosso form vamos finalmente poder fazer as validações, não vou entrar em muitos detalhes pois não tem dificuldade, o próprio flex 3 ou a SDK para o eclipse já possuem o auto-complete do código, o que ajuda bastante a descobrirmos mais funções dessas ferramentas. Para cada campo correspondente vamos utilizar funções que já existem no flex, neste exemplo vamos utilizar três delas:

1 – EmailValidator
2 – PhoneNumberValidator
3 – StringValidator
Para cada um delas vamos ter validações específicas, utilizei algumas nesse tutorial, você poderá utilizar qualquer uma que exista para cada uma delas, vamos ver como ficou a validação do email:
<mx:EmailValidator  id=”emailValidator”
required=”true”
triggerEvent=”click”
source=”{email}”
trigger=”{validarButton}”
requiredFieldError=”Campo obrigatório”
property=”text”/>
Utilizamos o id correspondente ao nome do campo que estamos validando, a propriedade ‘required’ para dizermos que este campo será obrigatório entre os outros. O campo requiredFieldError faz com que possamos personalizar a menssagem que deverá ser exibida, pois se não utilizarmos ele irá colocar a mensagem padrão do flex.
Abaixo segue as outras validações e telefone e email:
Validando email:
<mx:PhoneNumberValidator id=”telefoneValidator”
triggerEvent=”click”
required=”true”
requiredFieldError=”Obrigatório uso do email”
source=”{telefone}”
trigger=”{validarButton}”
property=”text”
/>
Validando Texto:
<mx:StringValidator
id=”stringValidator”
source=”{nome}”
property=”text”
required=”true”
trigger=”{validarButton}”
triggerEvent=”click”
minLength=”5″
tooShortError=”O valor para este campo deve ter mais de 5 caracteres”
maxLength=”10″
tooLongError=”O valor para este campo não pode ser maior que 20″ />
Agora está pronto, com o código feito basta rodar a aplicação e ver os resultados

Engenheiro de software Delphi

A WPD (HTTP://www.wpd.com.br) é um dos principais provedores de soluções de gestão da saúde do mercado brasileiro.

Focada em seu negócio: “Ajudar a Salvar Vidas”, está presente em Angola (Advance) e em mais de 300 instituições de saúde em todo o Brasil tais como: Grupo Amil (SP, RJ, PR e DF), Medial Saúde (SP, RJ e DF), Grupo Fernandes Vieira (Hospital Memorial São José e Hospital Santa Joana), Grupo Hope (PE), Grupo Vita (RJ e PR), Rede Labs D’Or (RJ), Rede Alfa (PE e BA), Fresenius (RJ, MG e DF), Intermédica (em todo o Brasil) e Unimed (Bauru, SP; Caxias do Sul, RS; Recife, PE), a WPD possui um valioso conhecimento adquirido ao longo de 20 anos de experiência com distintas realidades em todo o Brasil. Estamos buscando profissionais para ajudar na concretização de sua missão “Proporcionar excelência em soluções ao segmento de saúde”, com o seguinte perfil:

Engenheiro de Software – Delphi (3 Vagas)

· Graduado em cursos de tecnologia da informação, engenharia ou áreas afins;

· Experiência de 3 anos na tecnologia

· Experiência de 1 ano com uso de processo de desenvolvimento

· Domínio da Delphi 5, PL/SQL, XML e Report Builder.

· Domínio em Banco de Dados ORACLE e INFORMIX

· Conhecimento em orientação a objetos

· Conhecimento em modelagem de processos (BPM)

· Conhecimento em processos hospitalares (Desejável)

Os interessados, podem mandar o Currículo ou estabelecer contato
diretamente através do e-mail jaime.galvao@wpd.com.br

* Oportunidade recebida dia 30/01/2010

Máquina de estados finitos

Uma máquina de estados finitos ou Autômato Finito é uma modelagem de um comportamento, composto por estados, transições e ações. Um estado armazena informações sobre o passado, isto é, ele reflete as mudanças desde a entrada num estado, no início do sistema, até o momento presente. Uma transição indica uma mudança de estado e é descrita por uma condição que precisa ser realizada para que a transição ocorra. Uma ação é a descrição de uma atividade que deve ser realizada num determinado momento.

Existem diversos tipos de ação:

  • Ação de entrada (no estado): executa a ação quando entra no estado.
  • Ação de saída: executa a ação quando sai do estado.
  • Ação da entrada (da input): executa a ação dependendo do estado presente ou das condições da entrada.
  • Ação de transição: executa a ação quando ocorre uma determinada transição.

Máquinas de estados finitos podem ser representadas por meio de um diagrama de estados (ou diagrama de transição de estados). Diversas tabelas de transição de estados são usadas. Através do uso das tabelas podemos representar uma de máquina finita de estados que contenha informações completas sobre as ações.

Estado atual /
Condição
Estado A Estado B Estado C
Condição X
Condição Y Estado C
Condição Z
Tabela de transição de estados

As máquinas de estados finitos foram originalmente definidas na Teoria de Autômatos e depois retomadas na Teoria da Computação. Elas são largamente utilizadas na modelagem de comportamento de aplicativos, projeto de hardware de sistemas digitais, engenharia de software, no estudo da computação e das linguagens.

Fonte.: http://pt.wikipedia.org/wiki/M%C3%A1quina_de_estados_finitos

ENGENHEIRO DE SISTEMAS (04 vagas)

Requisitos: – Superior Completo em Ciência da Computação, Engenharia ou Áreas Afins; – Experiência em educação com vivência de sala de aula; – Conhecimentos em Java Scripts, HTML , CSS e Web Standards. Requisitos Desejáveis: – Conhecimento de arquitetura; – Inglês fluente. Principais responsabilidades: – Responsável pelo desenvolvimento dos bolsistas e dos produtos relacionados, usando os padrões, tecnologias e linguagens de programação adotadas pelo projeto. Responsável também por apoiar tecnicamente os bolsistas e assegurar a qualidade dos produtos desenvolvidos.Enviar Curriculun para curriculo@cesar.org.br até 15/01/2010 (sexta-feira) com o título da vaga

Tecnologia no Xbox


Segundo a Microsoft, o aparelho combina uma câmera colorida, sensor de profundidade, microfone e processador especial. Diferente de câmeras e controles 2D, o Project Natal acompanha o movimento do corpo do jogador tridimensionalmente, enquanto responde a comandos, instruções e até mesmo mudança de tom na voz.
Em simulações, o sistema permitiu que se interagisse com Milo, um menino virtual que entendia expressões faciais, inflexões na voz e interagia com objetos que o jogador exibia. Em um certo momento, um desenho foi feito no papel e, como em um passe de mágica, digitalizado e passado para dentro do ambiente virtual. O menino digital identificou a cor do desenho, a forma (um peixe) e imediatamente fez a associação com um pequeno lago que havia por perto, convidando o jogador a explorá-lo.Interações dessa profundidade só foram possíveis até então em laboratório, utilizando hardware muito caro. E ainda assim , o resultado nem se aproxima da simplicidade e elegância que o Projeto Natal apresentou.
O sistema foi batizado com o nome da capital do Rio Grande do Norte, cidade querida de um dos responsáveis pelo projeto. O brasileiro Alex Kipman, nascido em Curitiba, no Paraná, é uma das mentes por trás do revolucionário controle. Ele, ao lado de Don Mattrick, ex-presidente da Electronic Arts e atual chefe da divisão de videogames da Microsoft, decidiram dar um passo além do que o Wii oferece, tirando os controles físicos da equação e transformando o ato de jogar em uma atividade muito mais orgânica e intuitiva.
Se chegar ao mercado por um preço adequado, algo em torno de US$ 100, é bem possível que a Microsoft cause enormes danos à liderança atual da Nintendo. O fim de ano de 2010, quando o aparelho já estará à venda e diversos jogos já utilizarão suas capacidades, será decisivo.
Fonte.: http://www.estadao.com.br/noticias/tecnologia+link,projeto-natal-o-novo-controle-da microsoft,2585,0.shtm

Vagas Maceió-AL

Cargo 1
Requisitos:
SQL Avançado
Bons conhecimentos na área de Banco de Dados

Cargo 2
Requisitos:
Desenvolvimento Web em PHP, Java ou Python

Enviar currículo para selecaoti2010@hotmail.com  até 17/01/2010
Salário entre R$ 1.700,00 e R$2.700,00 dependendo do perfil.

Flash Camp pela primeira vez no Brasil

    Pela primeira vez no Brasil, o Adobe FlashCamp reunirá alguns dos melhores nomes de Rich Media do Brasil e dos Estados Unidos, apresentando, discutindo e revelando tendências e inovações da tecnologia Adobe Flash Platform (Flash/Flex/AIR). Com este evento pioneiro no território nacional, esperamos reunir as melhores mentes de Rich Media, com público formado por profissionais e estudantes das mais diversas regiões do país. Os FlashCamps acontecem principalmente nos Estados Unidos e Europa, sempre com apoio total e supervisão da Adobe Systems USA. Entre os palestrantes do FlashCampBrasil, estão funcionários da Adobe, diretores de criação, diretores de tecnologia e CEOs de empresas de referência brasileiras e americanas.

C.E.S.A.R lança Programa de Trainee

O C.E.S.A.R acaba de lançar a primeira edição do seu Programa de
Trainee. Ao final da seleção, serão escolhidos quatro profissionais
que vão atuar em Recife, na primeira fase do Programa, e em São Paulo
e Curitiba na segunda etapa. Interessados devem ter concluído o curso
entre dezembro de 2007 e dezembro de 2009, preferencialmente
Administração de Empresas, Ciência da Computação, Economia ou
Engenharia. São exigidos ainda conhecimentos de informática, boa
fluência verbal e escrita, fluência em inglês e disponibilidade total
para viagens. As inscrições são feitas pelo e-mail
currículo@cesar.org.br.

O Programa de Trainee do C.E.S.A.R foi criado com objetivo de preparar
talentos para expansão do quadro de executivos de vendas. Desenvolvido
com base no princípio aprenda com quem faz, o Programa é focado no
crescimento do profissional pela vivência na área de negócios, por
meio de projetos desafiadores e capacitação técnica e comportamental.
O trainee receberá, do grupo de executivos seniores, um projeto
desafiador a cada seis meses, alinhado às prioridades do plano
estratégico de negócios do C.E.S.A.R. Para realizar a tarefa, contará
com apoio e supervisão da Gerência de Negócios e do Capital Humano. O
Programa terá duração de 18 meses.

Os trainees receberão uma bolsa de dois mil reais cada um, mais ajuda
de custo e planos de saúde e odontológico.