A linguagem de programação Java usa classes e objetos para permitir que programadores para trabalhar com dados. Como C + + , Java também permite aos usuários definir classes que podem usar vários tipos de dados , de forma a ampliar a flexibilidade e utilidade de seus objetos criados . Ao tomar essa noção de uso flexível tipo de dados, chamados de " genéricos ", e aplicando um elemento recursivo , os programadores podem garantir que os usuários de objetos empregar apenas certos tipos de dados, de modo que o objeto genérico funciona como pretendido e ainda permite que os usuários ampliem o uso desse objeto. Classes e tipos
funções Java predominantemente como uma linguagem de programação orientada a objetos . Isto significa que os programadores usam "classes" para definir "tipos" de dados específicos . Classes também usam outros tipos de dados em sua definição. No código a seguir , por exemplo , caixa classe usa três inteiros , como parte de sua definição : para a classe para funcionar para outros programadores , eles têm que seguir esta definição através do fornecimento de três inteiros . Isso mantém a eficácia da classe Box :
Box classe {
comprimento int; int largura , altura int;
Box pública (int l , int w , int h ) {//Caixa deve usar integersint comprimento = l; int width = w; int height = h ;}}
tipos genéricos
alguns programadores , no entanto, talvez não como esta restrição. Alguns podem desenvolver estruturas de dados , por exemplo, que exigem que o utilizador da estrutura de dados ser permitido o uso de qualquer tipo de dados no interior da estrutura . Neste caso , o programador pode criar uma classe "genérica" que leva um certo tipo de dados. Assim , como no seguinte exemplo de código , caixa classe podem agora tirar qualquer tipo "T" para representar os seus lados . Isto pode ser extremamente útil se o usuário pode querer usar tanto números inteiros ou decimais para representar os lados :
classe Box {
comprimento T , largura T; altura T;
Box pública (T l , T w, T h ) {//Box agora usa tipo Tint comprimento = l; int width = w; int height = h ;}}
< br > Tipos recursivas genéricos
para complicar tipos genéricos , alguns programadores podem jogar com as regras do que é permitido como um tipo genérico para uma classe. Por exemplo, em vez de ter um tipo de dados em geral "T ", o programador pode criar uma classe que leva o mesmo tipo da classe que serve como o tipo genérico de . O exemplo a seguir ilustra isso : em vez de tipo T, a classe usa o tipo genérico T que representa uma versão , ou "herda " de , Caixa classe :
classe Box > {
comprimento Box ; largura ; altura Box ;
Box público (Caixa l , Caixa w , Caixa h ) {//Box agora usa tipo Box int length = l; int width = w; int height = h ;}}
Utilidade Tipos recursivas
Na prática, isto parece confuso e contra-intuitivo. Mas , na verdade, representa uma forma astuta para o criador da classe para impor certo tipo de uso . Neste caso , o utilizador da classe utiliza tipo " caixa " de tipo genérico de "T" , como um tipo genérico para si . Isto significa basicamente que um usuário que cria um objeto do tipo "Caixa " é forçado a usar o mesmo tipo (Caixa ) como o tipo genérico ao invés de um inteiro, decimal , ou qualquer outra coisa. Isso permite que o programador para garantir que determinado comportamento ocorre quando os usuários interagem com as classes que eles criam.