Como usar subclasses em java

Você pode usar subclasses em Java. Criando subclasses é bom, mas você não ganha nada destas subclasses a menos que você escrever código para usá-los. Então aqui, você explorar o código que utiliza subclasses.

Agora chegou o momento para que você possa classificar-se como quer uma pessoa de tipo F, uma pessoa tipo-P, ou uma pessoa tipo-T.

  • Uma pessoa tipo-M quer ver os fundamentos. (A carta F apoia fundamentos.) “Mostre-me um programa que estabelece os princípios em sua barest, forma mais básica”, diz a pessoa tipo-F. Uma pessoa Tipo-F não está preocupado com sinos e assobios. Os sinos vir mais tarde, e os apitos pode nunca vir. Se você é uma pessoa de tipo F, você quer ver um programa que utiliza o Empregado em tempo integral e PartTimeEmployee subclasses e então se move para fora do seu caminho para que você possa obter algum trabalho feito.
  • Uma pessoa tipo-P quer aplicações práticas. (A carta P apoia prático.) Tipo-P pessoas precisam ver ideias ao contexto de outra forma, as idéias flutuar muito rapidamente. “Mostre-me um programa que demonstra a utilidade do Empregado em tempo integral e PartTimeEmployee subclasses “, diz a pessoa tipo-P. “Eu não tenho nenhum uso para as suas abstrações fedorentos. Quero exemplos da vida real, e eu quero que eles agora!”
  • Uma pessoa Tipo-T quer teste o código no Empregado em tempo integral e PartTimeEmployee subclasses. Testando o código significa colocar o código através de seus ritmos - verificar a precisão do output quando a entrada é comum, quando a entrada é inesperado, e mesmo quando a entrada é completamente irrealista. Além do mais, a pessoa tipo-T quer usar um padrão, esboço facilmente reconhecível para o código de teste para que outros programadores podem entender rapidamente os resultados do teste. A pessoa tipo-T cria testes que utilizam o JUnit Empregado em tempo integral e PartTimeEmployee subclasses.

O código a seguir, que é para a multidão tipo-F, é magra e simples e faz uma boa leitura de deitar.

Se você é uma pessoa do tipo P ou do tipo-T, visite allmycode.com. O local contém exemplos para satisfazer tipo-P e os leitores tipo-T.

Este código mostra um programa de esqueleto que usa as subclasses Empregado em tempo integral e PartTimeEmployee. Aqui está a saída do programa.

subclasses java
A saída do programa.

DoPayrollTypeF classe pública {

void main (args String []) public static {

FullTimeEmployee ftEmployee = new FullTimeEmployee () -

ftEmployee.setName ("Barry Burd") -

ftEmployee.setJobTitle ("CEO") -

ftEmployee.setWeeklySalary (5000.00) -

ftEmployee.setBenefitDeduction (500,00) -

ftEmployee.cutCheck (ftEmployee.findPaymentAmount ()) -

System.out.println () -

PartTimeEmployee ptEmployee = new PartTimeEmployee () -



ptEmployee.setName ("Steve Surace") -

ptEmployee.setJobTitle ("Motorista") -

ptEmployee.setHourlyRate (7,53) -

ptEmployee.cutCheck (ptEmployee.findPaymentAmount (10)) -

}

}

Para entender este código, você precisa manter um olho em três classes: Empregado, Empregado em tempo integral, e PartTimeEmployee.

A primeira metade do código trata de um funcionário em tempo integral. Observe quantos métodos estão disponíveis para uso com o ftEmployee variável? Por exemplo, você pode chamar ftEmployee.setWeeklySalary Porque ftEmployee tem o tipo Empregado em tempo integral. Você também pode ligar ftEmployee.setName porque o Empregado em tempo integral classe estende a Empregado classe.

Porque cutCheck é declarado na Empregado classe, você pode chamar ftEmployee.cutCheck. Mas você também pode ligar para ftEmployee.findPaymentAmount porque um findPaymentAmount método é no Empregado em tempo integral classe.

Fazendo tipos de correspondência

Olhe novamente para a primeira metade do código. Tome nota especial de essa última afirmação - aquele em que o funcionário em tempo integral é realmente cortar um cheque. A declaração constitui uma boa longa cadeia de valores e seus tipos,. Você pode ver isso lendo a declaração de dentro para fora:

  • Método ftEmployee.findPaymentAmount é chamado com uma lista de parâmetros vazia. Isso é bom porque o findPaymentAmount método leva sem parâmetros.
  • o findPaymentAmount método retorna um valor do tipo Duplo.
  • o Duplo valor que ftEmployee.findPaymentAmount retorno é passada para o método ftEmployee.cutCheck. Isso é bom porque o cutCheck método leva um parâmetro do tipo Duplo.

Confira a ilustração gráfica fantasiosa.

parâmetros java
parâmetros de correspondência.

Sempre alimente um método os tipos de valor que ele quer na sua lista de parâmetros.

A segunda metade da história

Na segunda metade do código, o código cria um objecto de tipo PartTimeEmployee. A variável de tipo PartTimeEmployee pode fazer algumas das mesmas coisas que um Empregado em tempo integral variável pode fazer. Mas o PartTimeEmployee classe não tem o setWeeklySalary e setBenefitDeduction métodos. Em vez disso, o PartTimeEmployee classe tem a setHourlyRate método. Assim, a linha próxima ao último é uma chamada para o setHourlyRate método.

A última linha do código é de longe o mais interessante. Nessa linha, o código dá o número 10 (O número de horas trabalhadas) ao findPaymentAmount método. Compare isto com a chamada anterior a findPaymentAmount - a chamada para o funcionário em tempo integral no primeiro semestre do código. Entre as duas subclasses, Empregado em tempo integral e PartTimeEmployee, Há dois diferentes findPaymentAmount métodos. Os dois métodos têm dois tipos diferentes de listas de parâmetros:

  • o Empregado em tempo integral classe de findPaymentAmount método leva sem parâmetros.
  • o PartTimeEmployee classe de findPaymentAmount método leva um int parâmetro.

Este é o par para o curso. Encontrar o valor do pagamento para um trabalhador a tempo parcial não é o mesmo que encontrar o valor do pagamento para um funcionário em tempo integral. o salário de um trabalhador a tempo parcial muda a cada semana, dependendo do número de horas que o empregado trabalha em uma semana. pagar a tempo inteiro do empregado permanece o mesmo a cada semana. Então o Empregado em tempo integral e PartTimeEmployee aulas ambos têm findPaymentAmount métodos, mas o método de cada classe funciona de forma bastante diferente.


Publicações relacionadas