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()); } }