Chamar variável de outra classe

Boas,
Gostaria de uma ajudinha, se possível!

Estou com dois arquivos (duas classes), Classe Imovel e Classe CheckBox.
Porém, a Classe Imovel (main) recebe dois valores, M² do imovel e valor do mesmo.
Informado esses valores, o usuário recebe uma tela (JFrame) com alguns adicionais (Checkbox), onde conforme ele marca, adiciona um % ao valor total do Imóvel.
Eu precisaria que os valores digitados na Classe Imovel fossem recebidos na classe CheckBox para poder fazer os cálculos conforme marcadas as opções apresentadas no JFrame, e depois devolver à classe Imovel para exibir os resultados.

Segue o Código da classe Imovel:

package imovel;

    import javax.swing.JOptionPane;
    import java.text.DecimalFormat;

public class Imovel {


    public static void main(String[] args) {
     
        double ValorTotal;
        // DecimalFormat FormataValor = new DecimalFormat("0,00");
        
        double M2Total = Double.parseDouble(JOptionPane.showInputDialog(null, "Quantos M² o Imóvel possui?"));
        double M2Valor = Double.parseDouble(JOptionPane.showInputDialog(null, "Qual o Valor do M² na região do Imóvel? "));
        

        MyCheckBox Lista = new MyCheckBox();
        
       
      
    }
    
}

Código Classe CheckBox:

package imovel;

    import java.awt.Container;
    import java.awt.FlowLayout;
    import java.awt.event.ActionEvent;
    //import java.awt.event.ActionListener;
    import java.awt.event.ItemEvent;
    import java.awt.event.ItemListener;
    //import java.awt.event.MouseEvent;
    import javax.swing.JCheckBox;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JButton;
    import javax.swing.JOptionPane;


public class MyCheckBox extends JFrame {

JButton Ok;
JButton Sair;
JCheckBox Bairro, Centro, Condominio, Comercio, Rua;
JLabel Escrita = new JLabel("Selecione os Adicionais: ");
JLabel Itens = new JLabel(" Lista de Adicionais ");


Container c = getContentPane();

 public MyCheckBox(){
  super("Caixa de Adicionais");

  setSize(300 , 500);
  FlowLayout tela = new FlowLayout(FlowLayout.LEFT, 15, 20); // recebe o alinhamento, hgap e vgap
  setLayout(tela);
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  
  
        

  //Criando os JCheckBox
  Bairro = new JCheckBox("Bairro Nobre (+40%)            ");
  Centro = new JCheckBox("Próximo ao Centro (+10%)           ");
  Condominio = new JCheckBox("Condominio Fechado (+25%)            ");
  Rua = new JCheckBox("Rua Pavimentada  (+10%)        ");
  Comercio = new JCheckBox("Próximo ao Comércio (+30%)             ");
  
  Sair = new JButton(" Sair ");
  Sair.addActionListener((ActionEvent e) -> {
      System.exit(0);
  });
  
  Ok = new JButton(" Ok ");
  Ok.addActionListener((ActionEvent e) -> {
      JOptionPane.showMessageDialog(null, "O Imóvel Custa: ", "Resultado ",JOptionPane.YES_NO_CANCEL_OPTION);
  });
  
  /* Este método funciona, mas o método à cima está com Lambda, por isso ocultou boa parte do code
  Ok.addActionListener(new ActionListener() {
        @Override
  	public void actionPerformed(ActionEvent e) {
  	JOptionPane.showMessageDialog(null, "O Imóvel Custa: " , "Resultado ",JOptionPane.YES_NO_CANCEL_OPTION);
  	}
  }); */
  
  //Criando e adicionando o handler
  CheckBoxHandler tratador = new CheckBoxHandler();
  Bairro.addItemListener(tratador);
  Centro.addItemListener(tratador);
  Condominio.addItemListener(tratador);
  Comercio.addItemListener(tratador);
  Rua.addItemListener(tratador);
  Ok.addItemListener(tratador);
  Sair.addItemListener(tratador);
  
  //Adicionando os JCheckBox no Layout
  add(Escrita);
  add(Bairro);
  add(Centro);
  add(Condominio);
  add(Comercio);
  add(Rua);
  add(Itens);
  add(Ok);
  add(Sair);       
  
  setVisible(true);
 }
 
 private class CheckBoxHandler implements ItemListener{
  private String texto = ""; 
     
  @Override 
  public void itemStateChanged(ItemEvent evento) {
   texto = "";
   Escrita.setText("Informe os Adicionais: ");
   
 
   if(Bairro.isSelected())
    texto += " \n Bairro Nobre";
   
   if(Centro.isSelected())
    texto += " \n Próximo ao Centro da Cidade";
   
   if(Comercio.isSelected())
    texto += " \n Próximo à Comércio";
   
   if(Condominio.isSelected())
    texto += " \n Condomínio Fechado";
   

   if(Rua.isSelected())
    texto += " \n Rua Pavimentada";

   
   Itens.setText("Itens Adicionais: " +texto);

  }
 }
}

Bom, se alguem puder ajudar, agradeço desde já.

Você atribui à uma variável chamada Lista, um objeto do tipo MyCheckBox, que na verdade é um JFrame?
Você não acha isso bem confuso?

Sobre como passar os valores, como é que um objeto conversa com outro?
R: Através da troca de mensagens!

Como se troca mensagens entre objetos?
R: Através de métodos!

Então, no seu MyCheckBox que é um JFrame, crie métodos para receber a área e o valor do imóvel.
Aí você poderá chamar estes métodos a partir do seu objeto Lista que é um MyCheckBox que na verdade é um JFrame.

Exemplo:

double area = Double.parseDouble(JOptionPane.showInputDialog(null, "Quantos M² o Imóvel possui?"));
double valor_m2 = Double.parseDouble(JOptionPane.showInputDialog(null, "Qual o Valor do M² na região do Imóvel?"));
        
MyCheckBox lista = new MyCheckBox();
lista.setArea( area );
lista.setValorM2( valor_m2 );

Obviamente, Staroski. Porém, como o professor pediu para nos basearmos em um PDF que ele mandou (e tinha esta classe como modelo), não sei como poderia fazer “diferente”, pois minha noção com JFrame é bem básica.

Testarei seu exemplo.

Uma pergunta, é possível chamar o JFrame diretamente, sem precisa chamar o objeto MyCheckBox?

Não entendi sua pergunta