Larback - Retornando conhecimento

Suco grande

O segredo é nunca perder a classe (Herança)

O conceito de herança é um dos conceitos fundamentais de POO. Herança, na prática, significa a possibilidade de construir objetos especializados que herdam as características de objetos mais generalistas, ou ainda, a herança uma maneira de reutilizar código a medida que podemos aproveitar os atributos e métodos de classes já existentes para gerar novas classes mais específicas que aproveitarão os recursos da classe hierarquicamente superior. O conceito de herança mimetiza as características hierárquicas de vários sistemas reais, como por exemplo, os sistemas de classificação em biologia que, pode determinar como uma hierarquia o seguinte: * animais; * vertebrados e invertebrados; * mamíferos e aves; * entre outras características mais específicas Outras hierarquias são possíveis, por exemplo, na área da saúde a hierarquia dos agentes envolvidos poderia ser esta: pessoas, (empregados, terceirizados e pacientes), (médicos, biomédicos, enfermeiros...), (pacientes particulares, pacientes SUS) e assim, mais uma vez, a caminho de classes mais especializadas. Notem como estas hierarquias podem ser facilmente descritas numa estrutura de árvore. Nesta estrutura a raíz da árvore é o agente da qual originam todos os outros agentes. Podemos dizer que cada agente herda as características dos seus antecessores. Na visão POO podemos afirmar que pessoas é uma classe hierarquicamente superior e que dela são herdadas características para a formação de novas classes, como: empregados, pacientes, entre outras. Para ler mais, acesse: http://dfm.ffclrp.usp.br/~evandro/ibm1030/constru/heranca.html Bom, vamos ao que realmente importa aos programadores - código - Como os códigos abaixo foram explicados em sala de aula, não vou gastar meus bytes explicando novamente. Se houver alguma dúvida, postem como comentário que responderei prontamente.

public class CalculosBasicos {
	protected float num1;
	protected float num2;
	protected float resultado;
//Sobrecarga dos construtores
public CalculosBasicos (float a, float b){
	num1 = a;
	num2 = b;
}
public CalculosBasicos (float a){
	num1 = a;
	num2 = a;
}
public CalculosBasicos() {
	num1=0;
	num2=0;
}
public float soma(){
	resultado = num1+num2;
	return resultado;
}
public float multiplicacao(){
	resultado = num1*num2;
	return resultado;
}
public float subtracao(){
	resultado = num1-num2;
	return resultado;
}
public float divisao(){
	resultado = num1/num2;
	return resultado;
}
}

public class CalculosAvancados extends CalculosBasicos{
	public CalculosAvancados (float x, float x2)
	{
		super(x,x2);
	}
	public CalculosAvancados(float x){
		super(x);
	}
	
	public float quadradoA(){
		resultado = num1*num1;
		return resultado;
	}
	public float quadradoB(){
		resultado = num2*num2;
		return resultado;
	}
	public boolean aIsPar() {
		resultado = num1 % 2;
		if (resultado==0)
			return true;
		else
			return false;
		
	}
	public boolean bIsPar() {
		resultado = num2 % 2;
		if (resultado==0)
			return true;
		else
			return false;
		
	}
	public float getA(){
		return num1;
	}
	public float getB(){
		return num2;
	}
}

import javax.swing.JOptionPane;
public class PCalculos {	
	public static void main(String args[]){
		float a = 0;
		float b = 0;
		
		try {
			a = Float.parseFloat(JOptionPane.showInputDialog("Informe o primeiro número"));
		}
		catch(Exception xBolinha) {
			System.out.println(xBolinha.getMessage());
			JOptionPane.showMessageDialog(null,"Você não informou um número real válido. Foi atribuído zero a variável");
			a = 0;
		}
		try {
			b = Float.parseFloat(JOptionPane.showInputDialog("Informe o segundo número"));
		}catch(Exception e) {
			JOptionPane.showMessageDialog(null,"Você não informou um número real válido. Foi atribuído zero a variável");
			b = 0;
		}
		
		CalculosAvancados vCalculos = new CalculosAvancados(a,b);

		JOptionPane.showMessageDialog(null,"Iniciando os calculos - Primeiro número: " + String.valueOf(vCalculos.getA()).toString() + " - Segundo número: " +String.valueOf(vCalculos.getB()).toString());
		System.out.println("Iniciando Calculos - A = " + vCalculos.getA() + " B = " +vCalculos.getB());
		System.out.println("====================================================");
		System.out.println("Soma: " + vCalculos.soma());
		System.out.println("Subtração: " + vCalculos.subtracao());
		System.out.println("Divisão: " + vCalculos.divisao());
		System.out.println("Multiplicação: " + vCalculos.multiplicacao());
		System.out.println("Quadrado:"  + vCalculos.quadradoA());
		System.out.println(vCalculos.getA() + " é Par? " + vCalculos.aIsPar());
		System.out.println(vCalculos.getB() + " é Par? " + vCalculos.bIsPar());
		
	}
	
}
Bons estudos a todos.