Problema com um codigo

Bem, estou tentando fazer um programa que faça a contagem dos usuarios com o plano 1 e plano 2, porem não está funcionando.

<>
package Heth;

import java.util.ArrayList;
import java.util.Scanner;

public class CadastrarCliente {

public static void main(String[] args){
Scanner a = new Scanner(System.in);
ArrayList<Usuario> listaDeUsuarios = new ArrayList<Usuario>();
Usuario usuario = new Usuario();	
Calcular contador = new Calcular();

int opcao = 0;
System.out.println("Bem vindo a HETH SA");
System.out.println("Digite 1 caso queira cadastrar um novo cliente, e 0 caso queira encerrar.");
opcao = a.nextInt();
while(opcao != 0){
	System.out.println("Digite o nome do cliente:");
	usuario.setNome(a.next());
	System.out.println("Digite a idade do cliente:");
	usuario.setIdade(a.nextInt());
	System.out.println("Digite o número referente ao seu plano");
	System.out.println("HealthCare = 1");
	System.out.println("MasterHealth = 2");
	usuario.setPlano(a.nextInt());
	if(usuario.plano == 1) {
		usuario.HC = usuario.HC + 1;
	}else if(usuario.plano == 2) {
		
		usuario.MH = usuario.MH + 1;
	}
	listaDeUsuarios.add(usuario);
	usuario = new Usuario();
	System.out.println("Digite 1 caso queira cadastrar um novo cliente, e 0 caso queira encerrar.");
	opcao = a.nextInt();
}

System.out.println(usuario.HC);
System.out.println(usuario.MH);

}

}
</>

<>
package Heth;

public class Usuario {
String nome;
int idade;
int plano;
int HC;
int MH;

public String getNome() {
	return nome;
}
public void setNome(String nome) {
	this.nome = nome;
}
public int getIdade() {
	return idade;
}
public void setIdade(int idade) {
	this.idade = idade;
}

public int getPlano() {
	return plano;
}
public void setPlano(int plano) {
	this.plano = plano;
	
	
}

}
<>

O que não está funcionando? Já usou o debug?

usuario.getPlano == 1 { } // talves??

olha o que você está fazendo, aumentando o usuario.hc, ou o usuario.MH em 1, mas toda hora da um new usuario que reseta sua conta, pois a nova referência sempre comeca em 0, então o resultado vai ter mostrar ou 0 e 1 ou 1 e 0.

se você fizer uma pequena modificacao aqui e colocar

em baixo do int MH; o seguinte código deve te ajudar.

public Usuario(int HC,int MH){
this.HC=HC;
this.MH=MH;
}

depois:

mudar para:
Usuario usuario = new Usuario(0,0);

depois:

mudar para:

usuario = new Usuario(usuario.HC,usuario.MH);