Na linha abaixo, vc está declarando um array (sabe-se disso pelos [] que usa), do tipo CategoriaEntrega (que é uma outra classe que deve estar implementada no seu projeto para funcionar). O nome do seu array é categorias.
public CategoriaEntrega[] categorias;
Nesta linha vc está montando o método construtor da sua classe (que é o método executado toda vez que vc instancia a sua classe). E está recebendo como parâmetro um array do tipo CategoriaEntrega.
public Entregador(CategoriaEntrega[] categorias) {
Sabe-se que é um método construtor pela sintaxe
public Entregador //public == tipo de acesso e Entregador == nome da classe
Sabe-se que é parâmetros o que fica dentro do parênteses de um método
public Entregador(CategoriaEntrega[] categorias)
Se está aprendendo sugiro que leia um pouco sobre métodos construtores, gets, setters e instancia de objetos…
toda varíavel, ao ser declarada, tem que informar o tipo de dado que ela retorna.
Por exemplo:
int num; // uma variável do tipo int, quer dizer que ela retornará um número inteiro.
String texto; // uma variável do tipo String, retornará uma string
Então, no seu caso o tipo de retorno dela é um objeto CategoriaEntrega
public - publico, todas as classes e pacotes tem acesso a variavel
private - somente a classe atual que tem acesso a variavel, por isso tem se os getters e setters…
protected - acesso para os filhos (na herança) …
o tipo-do-atributo pode ser os básicos que nós conhecemos: int, String, double, float, char etc,
ou objetos de outra classe, como é no caso que você mostrou ai…
é… pesquise sobre conceitos de POO (Programação Orientada a Objetos)
…pelo q eu sei hj em dia naum tem muito fundamento usar array assim ([]) se existem: HASH, HASHMAP, MAP, LIST ok, q sao muita mais uteis e dinamicos…pelo q sei tah!!!