Vous êtes sur la page 1sur 8

Unidade Acadmica: Faculdade de Computao FACOM Disciplina: Programao Orientada a Objetos I Professor: Fabiano A e!

edo "ora

Pr#tica $% Objeti!os: Modelar um sistema orientado a objetos simples a partir de uma situao problema &dom'nio do problema() *+ercitar a e+trao e recon,ecimento de objetos e+istentes no mundo real- seus atributos e seus m.todos- propondo uma soluo para o problema) Iniciar o uso do ambiente /lue0 para implementar a soluo)
%( 1ituao problema: %) "om'nio do problema: 2esto acadmica 3) "escrio do problema: Uma uni!ersidade necessita de um sistema 4ue 5acilite a sua gesto acadmica) "eseja6se um controle de 4uais disciplinas so ministradas por cada pro5essor e em 4ual curso) 7amb.m . necess#rio um controle de 4uais disciplinas so cursadas por um aluno) 1abe6se 4ue um pro5essor . um 5uncion#rio) Al.m de pro5essores- tem6se 5uncion#rios 4ue so t.cnicos administrati!os) Para cada 5uncion#rio- independente de ser pro5essor ou t.cnico- . necess#rio saber seu nome- endereo- tele5onecp5- n8mero da C7P1 e salario) *speci5icamente para pro5essores- . necess#rio saber sua titulao e sua #rea de pes4uisa) Para cada curso . necess#rio registrar seu c9digo- nome e durao) Para cada disciplina . necess#rio registrar seu c9digo- nome e carga ,or#ria)

3( Identi5icao de objetos:
%) "e5inio: Objetos so essencialmente componentes de so5t:are reutili #!eis 4ue modelam itens do mundo real) Ou seja- um objeto . uma entidade representati!a 4ue pode caracteri ar algo concreto ou abstrato do mundo real) Atributos so in5orma;es 4ue caracteri am um objeto) 3) *+traindo objetos a partir da descrio do problema: <amos marcar de !ermel,o os objetos do problema e em a ul os atributos: %) Uma uni!ersidade necessita de um sistema 4ue 5acilite a sua gesto acadmica) "eseja6se um controle de 4uais disciplinas so ministradas por cada professor e em 4ual curso) 7amb.m . necess#rio um controle de 4uais disciplinas so cursadas por um aluno) 1abe6se 4ue um pro5essor . um funcionrio) Al.m de pro5essores- tem6se 5uncion#rios 4ue so tcnicos administrativos) Para cada 5uncion#rio- independente de ser pro5essor ou t.cnico- . necess#rio saber seu nome- endereotelefone- cpf, nmero da CTPS e salario) *speci5icamente para

professores- . necess#rio saber sua titulao e sua rea de pesquisa) *speci5icamente para tcnicos- . necess#rio saber seu cargo e departamento) Para cada curso . necess#rio registrar seu c digonome e durao) Para cada disciplina . necess#rio registrar seu c digonome e carga !orria) Para cada aluno- de!e6se arma enar seu nome, matr"cula, cpf e curso)

=( Criao de classes de objetos no /lue0:


%) "e5inio: Uma classe . uma matri &modelo ou 5orma( a partir da 4ual os objetos so criados &instanciados() Cada objeto tem a mesma estrutura e comportamento da classe a partir da 4ual ele 5oi instanciado) 3) Implementao: %) Abra o /lue0 3) Acesse o menu Project > ?e: Project =) 1elecione o diret9rio onde deseja criar o projeto e nomeie6o como @Pratica$%A B) Cli4ue em @?e: ClassA e nomeie a no!a classe como @"isciplinaA) Faa o mesmo para as demais classes do sistema &marcadas em !ermel,o no item anterior( resultando em:

<amos criar os atributos das classes) Para isto . necess#rio editar o c9digo 5onte das classes) "e um cli4ue duplo na classe @FuncionarioA)

Apague os coment#rios e demais c9digo- dei+ando apenas a declarao da classe- con5orme ilustrado a seguir:

Crie os atributos da classe da seguinte 5orma:

?ote 4ue para declarar um atributo para a classe- especi5icamos o tipo do atributo seguido por seu nome) <amos declarar os atributos para a classe pro5essor:

?ote 4ue 5oi utili ado o tipo 1tring) Al.m do tipo 1tring o 0a!a o5erece !#rios outros tipos de dados: bCte: D bits &6%3D at. %3E( s,ort: %F bits &6=3)EFD at. =3)EFE( int: =3 bits &63)%BE)BD=)FBD at. 3)%BE)BD=)FBE( long e double: FB bits &6G33==E3$=FDHBEEHD$D at. G33==E3$=FDHBEEHD$E( boolean: 5alse- true c,ar: 4ual4uer caracter) "entre outros))) Agora- compile o sistema clicando em @CompileA na barra de 5erramentas lateral) Caso ,aja erros de sinta+e- eles sero apresentados) ?ote 4ue ap9s a compilao- um ar4ui!o )class . gerado para cada ar4ui!o )ja!a no diret9rio do projeto) Os ar4ui!os )class so as classes compiladas- em bCtecodes- pass'!eis de serem e+ecutados pela 0<M)

Uma caracter'stica importante do problema descrito . a necessidade de se registrar 4ual pro5essor . respons#!el por uma disciplina e em 4ual curso ela . ministrada) Para isto- podemos modi5icar a classe @"isciplinaA para conter estes atributos- resultando na seguinte declarao:

Obser!e 4ue 5oram inseridos dois atributos na classe @"isciplinaA al.m dos atributos j# mencionados pela descrio do problema: um atributo curso do tipo Curso e um atributo pro5essor do tipo Pro5essor) ?ote 4ue Curso e Pro5essor so classes 4ue criamos em nosso projeto e 4ue podem ser usados como tipos na declarao de atributos) ?a programao orientada a objetos- toda classe 4ue criamos . um tipo de dado) *m nosso e+emplo- agora estamos aptos a arma enar um curso e um pro5essor em cada disciplina 4ue criarmos)

Al.m disto- . importante 4ue se relacione cada aluno com o curso o 4ual est# matriculado) Para isto- criamos um relacionamento entre as classes Aluno e Curso- da mesma 5orma 4ue 5oi 5eito com "isciplina e Pro5essor &no item anterior(: colocamos um atributo curso do tipo Curso na classe Aluno) Por e+emplo: public class Aluno{ String nome; String matricula; String cpf; Curso curso; } Agora !amos criar um m.todo na classe @FuncionarioA 4ue permita ler a partir do teclado &dispositi!o de entrada padro( os !alores dos atributos do 5uncion#rio) Para isto- implemente o c9digo apresentado a seguir na classe @FuncionarioA- logo ap9s a declarao de seus atributos:
public void lerDados() { Scanner s = new Scanner(System in); System out println(!Digite o nome do funcion"rio#!); t$is nome = s ne%t&ine(); System out println(!Digite o endere'o do funcion"rio#!); t$is endereco = s ne%t&ine(); System out println(!Digite o telefone do funcion"rio#!); t$is telefone = s ne%t&ine(); System out println(!Digite o C() do funcion"rio#!); t$is cpf = s ne%t&ine(); System out println(!Digite a C*(S do funcion"rio#!); t$is ctps = s ne%t&ine(); System out println(!Digite o sal"rio do funcion"rio#!); t$is salario = s ne%tDouble(); }

?ote 4ue este m.todo utili a a classe 1canner para implementar a leitura de dados) Para isto- instanciamos um objeto s do tipo 1canner e utili amos o m.todo ne+tIine&( para ler uma string- ne+t"ouble para ler um double) Ainda- podemos usar o m.todo ne+tInt&( para ler inteiros- ne+tFloat&( para ler 5loats- e assim por diante)

Para utili ar a classe 1canner- . necess#rio importa6la) Para isto- insira a seguinte lin,a A?7*1 da declarao da classe: import #ava$util$Scanner% <eja 4ue para re5erenciar os atributos da pr9pria classe- usamos a pala!ra reser!ada @t,isA para e!itar con5litos com nomes de !ari#!eis e parJmetros do m.todo com o mesmo nome do atributo) O resultado . o seguinte:

Agora implemente o m.todo ler"ados&( para as demais classes do sistema) Ao se instanciar e ler os dados de um objeto 4ue se relaciona com outro objeto- por e+emplo- aluno e curso- uma instJncia de Curso de!e ser atribu'da ao atributo curso da classe Aluno) Uma soluo plaus'!el . 4ue ti!.ssemos uma lista de

objetos do tipo curso onde poder6se6ia buscar um curso atra!.s de seu c9digo e atribuir o objeto encontrado ao atributo curso de Aluno) Mas isto ser# 5eito posteriormente) Implemente tamb.m um m.todo mostrar"ados&( em cada classe) O c9digo a seguir ilustra a implementao do m.todo mostrar"ados&( para a classe 5uncion#rio) 7este os m.todos implementados) public !oid mostrar"ados&( K 1Cstem)out)println&L?ome: LMt,is)nome(N 1Cstem)out)println&L*ndereo: LMt,is)endereco(N 1Cstem)out)println&L7ele5one: LMt,is)tele5one(N 1Cstem)out)println&LCPF: LMt,is)cp5(N 1Cstem)out)println&LCPF: LMt,is)ctps(N 1Cstem)out)println&LCPF: LMt,is)salario(N O

Agora crie uma classe principal com um m.todo main para testar suas classes) *+emplo: class Principal K public static !oid main&1tring argsPQ(K Aluno a R ne: Aluno&(N a)ler"ados&(N a)mostrar"ados&(N S)teste as demais classes)))) O O Copie o diret rio do seu pro#eto para um local seguro e ten!a&o sempre ' mo$ (ste pro#eto ser utili)ado nas pr *imas aulas prticas$

+unca se esquea: , que um paradigmaT uma 5orma de abordar um problema- segundo um conjunto de procedimentos- !alores ou conceitos 4ue direcionam o pensamento)

Vous aimerez peut-être aussi