0% acharam este documento útil (0 voto)
45 visualizações5 páginas

Codigos Java

Códigos java

Enviado por

leothrash
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
45 visualizações5 páginas

Codigos Java

Códigos java

Enviado por

leothrash
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 5

class Escola {

//Atributos

private String nome, CNPJ;

private Endereco endereco;

private Departamento departamentos [];

private Aluno discentes [];

private int nr_discentes , nr_departamentos;

//Métodos

public Escola ( String nome , String CNPJ) {

this.nome = nome;

this.CNPJ = CNPJ;

this.departamentos = new Departamento[10];

this.discentes = new Aluno[1000];

this.nr_departamentos = 0;

this.nr_discentes = 0;

public void criarDepartamento(String nomeDepartamento){

if(nr_departamentos <= 10)

departamentos[nr_departamentos] = new Departamento ( nomeDepartamento);

nr_departamentos++;

} else {

System.out.println ( "Nao e possivel criar outro Departamento." );

public void matricularAluno ( Aluno novoAluno ) {

discentes [ nr_discentes ] = novoAluno;

==============================================================
Acabamos de estudar sobre como funcionam as relações entre classes em Java. Então, com
base no código da classe “Escola”, desenvolva a implementação da classe “Endereco” com os
atributos “nome_rua” e “numero”.

========================================================================

Resposta:

public class Endereco {

private String nome_rua;

private int numero;

public Endereco (String nome_rua, int numero){

this.setNomeRua(nome_rua);

this.numero=numero;

private void setNomeRua(String nome_rua) {

this.nome_rua = nome_rua;

public String getNomeRua () {

return this.nome_rua;

private void setNumero(int numero) {

this.numero = numero;

public int getNumero() {

return this.numero;

=====================================================================

Para testarmos se a classe está correta, podemos acrescentar a função “main” dentro da classe
Endereco da seguinte forma:

public static void main(String args[]){

Endereco ender = new Endereco ("rua X", 7);

System.out.println(ender.getNomeRua()+", "+ender.getNumero());

}
Cujo resultado da execução será:

rua X, 7

======================================================================

Roteiro de prática

A passagem de um objeto como parâmetro em um método, ou o retorno dele, é sempre uma


passagem por referência. Isso não ocorre com tipos primitivos, que são sempre passados por
valor.

Passo 1

Implemente os seguintes códigos:

class Aluno {

//Atributos

private String nome;

private int idade;

//Métodos

public Aluno ( String nome , int idade ) {

this.nome = nome;

this.idade = idade;

public void definirNome ( String nome ) {

this.nome = nome;

public void definirIdade ( int idade ) {

this.idade = idade;

public String recuperarNome () {

return this.nome;

====================================================================

Passo 2

Implemente a classe “Referencia”, cujo código é apresentado a seguir:


public class Referencia {

private Aluno a1 , a2;

public Referencia ( ) {

a1 = new Aluno ( "Carlos" , 20);

a2 = new Aluno ( "Ana" , 23 );

System.out.println("O nome do aluno a1 é " + a1.recuperarNome());

System.out.println("O nome do aluno a2 é " + a2.recuperarNome());

a2 = a1;

a2.definirNome("Flávia");

System.out.println("O nome do aluno a1 é " + a1.recuperarNome());

manipulaAluno ( a1 );

System.out.println("O nome do aluno a1 é " + a1.recuperarNome());

public void manipulaAluno ( Aluno aluno ) {

aluno.definirNome("Márcia");

public static void main(String args[]) {

Referencia r = new Referencia ();

System.out.println("Fim da Execução ");

==========================================================

Passo 3

Execute o programa e veja se o resultado da execução desse código é:

nome do aluno a1 é Carlos

nome do aluno a2 é Ana

nome do aluno a1 é Flávia

nome do aluno a1 é Márcia

=================================================================
Vamos entender o que acontece seguindo passo a passo a execução do código visto
anteriormente.

A classe principal desse código é a classe “Referencia”. Logo, já sabemos que o nome do
arquivo deve ser “Referencia.java”. Dentro dela, há o método estático “main”, no qual criamos
um objeto do tipo “Referencia”. Nesse momento, a JVM passa a instanciar dois objetos do tipo
Aluno. Sendo que o objeto “a1” fica com o estado dos atributos “nome” e “idade”,
respectivamente, dados por "Carlos" e "20".

Já o objeto “a2” fica com “nome” recebendo “Ana” e “idade” recebendo “23”. Ou seja, temos
dois objetos distintos (“a1” e “a2”), cujos estados também são distintos.

Mais à frente, executamos a linha:

a2 = a1;

Que significa que “a1” e “a2” são referências para os objetos criados, ou seja, não é um caso de
atribuição. Por isso que, ao modificarmos o estado do objeto “a2”, também afetamos o estado
do objeto “a1”.

Outro ponto interessante ocorre quando chamamos o método “manipulaAluno”, pois, como
dissemos, a passagem de objetos é sempre feita por referência. Logo, a variável “aluno” na
assinatura do método “manipulaAluno” vai receber a referência guardada por “a1”. Desse
momento em diante, todas as operações feitas usando “aluno” ocorrem no mesmo objeto
referenciado por “a1” que tem impacto também no objeto “a2”.

Apesar do Java oferecer esse recurso de referência de objetos, devemos evitá-lo, pois o código
pode ficar confuso e difícil de dar manutenção posteriormente. Bem, agora, chegou a hora de
praticar!

Você também pode gostar

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy