Material 2 - Trabalhando com modificadores de acesso

Transcrição

Material 2 - Trabalhando com modificadores de acesso
Estudo sobre Implementação de Classes
Trabalhando com modificadores de acesso; Método Construtor; atributos e métodos.
1. Programa que calcule a área de um Retângulo:
Retangulo
double base
doublé altura
double area()
atributos
método
Classe Retangulo
import javax.swing.JOptionPane;
public class Retangulo {
public class Exemplo1Retangulo {
public static void main (String args[])
{
public double base;
public double altura;
String sB, sA;
Retangulo r;
public double area()
{
double a;
a = base*altura;
return a;
}
sB= JOptionPane.showInputDialog("Base: ");
sA= JOptionPane.showInputDialog("Altura:");
r = new Retangulo();
}
r.base = Double.parseDouble(sB);
r.altura = Double.parseDouble(sA);
}
}
System.out.println("Base: " +r.base);
System.out.println("Altura: " +r.altura);
System.out.println("Área: " +r.area());
Criando instâncias de objetos:
Retangulo r;
r = new Retangulo();
•
•
r -> variável de referência da classe Retangulo( acessar atributos e métodos);
Para criar uma instância do objeto da classe Retangulo, use a palavra reservada
new (aciona o construtor da classe);
Execução do método:
System.out.println("Área: " +r.area());
Modificadores de acesso:
• public = permite o acesso em qualquer classe
• private = permite o acesso somente dentro da classe onde foi declarado.
Acessando o conteúdo de um atributo
Os elementos são “encapsulados” dentro do objeto. O acesso é liberado (fora do
objeto) para os elementos public.
System.out.println("Base: " +r.base);
System.out.println("Altura: " +r.altura);
2. Modifique a classe Retangulo, incluindo os seguintes métodos:
Retangulo
double base
double altura
double area()
void alteraBase(double novaB)
void alteraAltura(double novaA)
void escreve()
atributos
métodos
public class Retangulo {
public class Exemplo2Retangulo{
private double base;
private double altura;
public double area()
{
double a;
a = base * altura;
return a;
}
public void alteraBase(double novaB)
{
base = novaB;
}
public void alteraAltura(double novaA)
{
altura = novaA;
}
public void escreve()
{
System.out.println("Base: "+base);
System.out.println("Altura: "+altura);
}
public static void main(String args[])
{
Retangulo ret = new Retangulo();
ret.alteraBase(2.0);
ret.alteraAltura(3.0);
}
}
ret.escreve();
System.out.println("Área: "+ret.area());
}
Método púbico (pode ser chamado em outras classes):
public void escreve()
{
System.out.println("Base: "+base);
System.out.println("Altura: "+altura);
}
Atributos da classe
void indica que método não retorna valor.
public double area()
{
double a; <- variável local
a = base * altura;
return a;
}
double indica que o método retorna um double.
return envia (retorna) o valor para o local onde o método foi chamado.
variável local
double a;
Existe apenas dentro do método onde foi declarada. É criada quando o método é
chamado e destruída quando a execução do método termina.
public void alteraBase(double novaB)
{
base = novaB;
}
double novaB argumento ou parâmetro do método.
3. Redefina o código da classe Retangulo:
public class Retangulo{
Retangulo
double base
double altura
Retangulo()
Retangulo(double bb, double aa)
double area()
void escreve()
private double base;
private double altura;
atributos
public Retangulo() {
base = 5.0;
altura = 3.0;
}
public Retangulo(double bb, double aa)
{
base = bb;
altura = aa;
}
public double area()
{
double a;
a = base * altura;
return a;
}
public void escreve()
{
System.out.println("Base: "+base);
System.out.println("Altura: "+altura);
}
métodos
}
Método Construtor
•
•
•
Possui o mesmo nome da classe
Não possui especificação do tipo de retorno
É chamado quando o objeto é instanciado.
Ex: Retangulo r = new Retângulo(5.0,2.5);
public Retangulo() {
base = 5.0;
altura = 3.0;
}
•
É possível colocar parâmetros em construtores
public Retangulo(double bb, double aa)
{
base = bb;
altura = aa;
}
Acessando a classe Retângulo:
public class Exemplo3Retangulo {
public class Exemplo4Retangulo{
public static void main(String args[])
{
}
}
public static void main(String args[])
{
Retangulo ret = new Retangulo();
Retangulo ret = new Retangulo(2.0,1.5);
ret.escreve();
System.out.println("Area: "+ret.area());
ret.escreve();
System.out.println("Area: "+ret.area());
}
}