Consigo passar uma função como valor de uma váriável?

Olá, gostaria de saber se é possível passar para uma variável uma função com retorno e esse retorno seja atribuído ao valor desta, por exemplo:
Suponhemos que eu tenha uma varíavel que vou chamar de num e ela recebe na frente uma função desta forma
int num = randomizaNumero()

essa função é declarada da seguinte maneira:

randomizaNumero() {
//parte da função que randomiza um número e armazena o valor em uma variável local chamada randNum
return randNum
}

logo quando eu declaro num da maneira descrita acima, num recebe o valor de randNum ou isso não ocorre?
O código acima é um pseudocódigo feito só pra tirar esta dúvida, fiz só para fins de demonstrar o que quis dizer mesmo

obrigado!

Em Java nós chamamos de método, não função. É só um detalhe, mas pode fazer a diferença na comunicação.

O exemplo que vc deu não é passar uma função para uma variável.

Você está simplesmente invocando o método e o valor retornado por ele está sendo atribuido à variável num e isso é possível sim. Experimente o código abaixo.

import java.util.Random;

public class Main {
  public static void main(String... args) {
    int num = randomizaNumero();
    System.out.println(num);
  }

  static int randomizaNumero() {
    return new Random().nextInt();
  }
}

Em Java há duas formas de você alcançar algo próximo ao que descreveu, atribuir um método à uma variável.

O primeiro é usando Lambda Expression, assim:

import java.util.Random;
import java.util.function.Supplier;

public class Main {
  public static void main(String... args) {
    Supplier<Integer> num = () -> new Random().nextInt();
    System.out.println(num.get());
  }
}

O segundo é usando Method Reference, assim:

import java.util.Random;
import java.util.function.Supplier;

public class Main {
  public static void main(String... args) {
    Supplier<Integer> num = Main::randomizaNumero;
    System.out.println(num.get());
  }

  static int randomizaNumero() {
    return new Random().nextInt();
  }
}