style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

Ayuda no me guarda valor digitado

En la clase Clientes no me quiere asignar el valor a la variable tipocliente, lo deja null.

Principal

import java.util.Scanner;

public class MenuMain {

    public static void main(String[] args) {
       
        Menu menu = new Menu();
        menu.iniciar();
       
       
    }
   
}

Clase Persona

public class Persona {
   
    String nombre;
    String apellido;

    @Override
    public String toString() {
        return "Persona{" + "nombre=" + nombre + ", apellido=" + apellido + '}';
    }

    public Persona() {
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getApellido() {
        return apellido;
    }

    public void setApellido(String apellido) {
        this.apellido = apellido;
    }
   
   

}

Clase Cliente

public class Cliente extends Persona {

    private int idCliente;
    private TipoCliente tipocliente;

   
    Cliente(){
        super();
    }

    public int getIdCliente() {
        return idCliente;
    }

    public void setIdCliente(int idCliente) {
        this.idCliente = idCliente;
    }

    public TipoCliente getTipocliente() {
        return tipocliente;
    }

    public void setTipocliente(TipoCliente tipocliente) {
        this.tipocliente = tipocliente;
    }

    @Override
    public String toString() {
        return "Cliente : " + super.nombre + " "+super.apellido +" tipo de cliente : " + tipocliente;
    }  

    void setTipocliente(String tipoclientes) {
     tipoclientes = tipoclientes;
             }
   

}

Clase Roles

public class Roles {
   
    private int rolid;
    private String rol;
    private String Descripcion;

    Roles(int rolid,String rol){
        this.rolid = rolid;
        this.rol = rol;
   
}

    public Roles() {
    }

    @Override
    public String toString() {
        return "Roles{" + "rolid=" + rolid + ", rol=" + rol + ", Descripcion=" + Descripcion + '}';
    }

    public int getRolid() {
        return rolid;
    }

    public void setRolid(int rolid) {
        this.rolid = rolid;
    }

    public String getRol() {
        return rol;
    }

    public void setRol(String rol) {
        this.rol = rol;
    }

    public String getDescripcion() {
        return Descripcion;
    }

    public void setDescripcion(String Descripcion) {
        this.Descripcion = Descripcion;
    }
}

clase Menu

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

public class Menu {
   
    private Scanner entrada;
    private TipoCliente tipo;
    private List<TipoCliente> listTipo;
    private Cliente cliente;
    private List<Cliente> listCliente;
    private Usuario usuario;
    private List<Usuario> listusuario;
    private Roles roles;
    private List<Roles> listroles;
    private int opcion;
    int codigousuario;
    int codigocliente;
    String tipoclientes;
    int rolid;
    String NombreUsuario;
    String ApellidoUsuario;
    String espacio;
    String role;
    int tip;
    String NombreCliente;
    String ApellidoCliente;
   
    public void iniciar() {
       
        entrada = new Scanner(System.in);
        System.out.println("Menu\n");
        System.out.println("1 - Mantenimiento de Clientes");
        System.out.println("2 - Mantenimiento de Usuarios");
        System.out.println("3 - Salir");
        opcion = entrada.nextInt();
       
        switch(opcion) {
           
            case 1: {
               
                int opcionclientes;
               
                System.out.println("Menu Clientes\n");
                System.out.println("1 - Crear Clientes");
                System.out.println("2 - Buscar Cliente por Codigo");
                System.out.println("3 - Ver todos los Clientes");
                System.out.println("4 - Volver al menu principal");
                opcionclientes = entrada.nextInt();
               
                switch(opcionclientes) {
                    case 1: {
                       
                        cliente = new Cliente();
                        listCliente = new ArrayList<Cliente>();
                        tipo = new TipoCliente();
                        listTipo = new ArrayList<TipoCliente>();
                        listTipo.add(new TipoCliente(1,"General"));
                        listTipo.add(new TipoCliente(2,"Premium"));                        
                        System.out.println("Ingrese el codigo del cliente: ");
                        codigocliente = entrada.nextInt();
                        this.cliente.setIdCliente(codigocliente);
                        System.out.println("Selecciona un Tipo de Cliente: " + listTipo);
                        tip = entrada.nextInt();                      
                        if (tip == 1) {
                            tipoclientes = "General";
                        }
                        else {
                            tipoclientes = "Premium";                            
                        }
                        this.cliente.setTipocliente(tipoclientes);
                        System.out.print("\n");
                        espacio = entrada.nextLine();
                        System.out.println("Ingresa el Nombre del Cliente: ");
                        NombreCliente = entrada.nextLine();
                        this.cliente.setNombre(NombreCliente);
                        System.out.println("Ingrese el Apellido del Cliente: ");
                        ApellidoCliente = entrada.nextLine();
                        this.cliente.setApellido(ApellidoCliente);
                        this.listCliente.add(getCliente());
                        break;
                       
                    }
                    case 2: {
                       
                        break;
                    }
                    case 3: {
                        System.out.println("Listado de Cliente: " + listCliente);
                        break;
                    }
                    case 4: {
                        this.iniciar();
                        break;
                       
                    }
                }
               
            }
            case 2: {
               
               
                int opcionusuarios;                
                System.out.println("Menu Usuarios\n");
                System.out.println("1 - Crear Usuario");
                System.out.println("2 - Buscar Usuario por codigo");
                System.out.println("3 - Ver todos los Clientes");
                System.out.println("4 - Volver al menu principal");
                opcionusuarios = entrada.nextInt();
               
                switch(opcionusuarios) {
                   
                    case 1:
                        usuario = new Usuario();
                        listusuario = new ArrayList<Usuario>();
                        roles = new Roles();
                        listroles = new ArrayList<Roles>();
                        listroles.add(new Roles(1,"Cajero"));
                        listroles.add(new Roles(2,"Gerente"));
                        listroles.add(new Roles(3,"Administrador"));
                        System.out.println("Ingrese el codigo del usuario: ");
                        codigousuario = entrada.nextInt();
                        this.usuario.setCodigo(codigousuario);
                        System.out.println("Selecciona el rol del usuario: " + listroles);
                        rolid = entrada.nextInt();                      
                        if (rolid == 1) {
                            role = "Cajero";
                            this.usuario.setRol(role);
                        }
                        else if (rolid == 2) {
                            role = "Gerente";
                            this.usuario.setRol(roles);
                        }
                        else {
                           
                        }
                        espacio = entrada.next();
                        System.out.println("Ingresa el Nombre del Usuario: ");
                        NombreUsuario = entrada.nextLine();
                        this.usuario.setNombre(NombreUsuario);
                        System.out.println("Ingrese el Apellido del Usuario: ");
                        ApellidoUsuario= entrada.nextLine();
                        this.usuario.setApellido(ApellidoUsuario);
                        break;
                    case 2:
                        break;
                    case 3:
                        break;
                    case 4:{
                        this.iniciar();
                        break;
                    }
                }
               
            }                
            case 3:
                System.exit(0);
            default:
                this.iniciar();
        }
       
    }

    public TipoCliente getTipo() {
        return tipo;
    }

    public void setTipo(TipoCliente tipo) {
        this.tipo = tipo;
    }

    public List<TipoCliente> getListTipo() {
        return listTipo;
    }

    public void setListTipo(List<TipoCliente> listTipo) {
        this.listTipo = listTipo;
    }

    public Cliente getCliente() {
        return cliente;
    }

    public void setCliente(Cliente cliente) {
        this.cliente = cliente;
    }

    public List<Cliente> getListCliente() {
        return listCliente;
    }

    public void setListCliente(List<Cliente> listCliente) {
        this.listCliente = listCliente;
    }

    public Usuario getUsuario() {
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }

    public List<Usuario> getListusuario() {
        return listusuario;
    }

    public void setListusuario(List<Usuario> listusuario) {
        this.listusuario = listusuario;
    }

    public Roles getRoles() {
        return roles;
    }

    public void setRoles(Roles roles) {
        this.roles = roles;
    }

    public List<Roles> getListroles() {
        return listroles;
    }

    public void setListroles(List<Roles> listroles) {
        this.listroles = listroles;
    }

    public String getRole() {
        return role;
    }

    public void setRole(String role) {
        this.role = role;
    }
   
}

Clase Usuario

public class Usuario extends Persona{
   
    private int codigo;
    private Roles rol;
   
    Usuario(){
        super();
    }

    public int getCodigo() {
        return codigo;
    }

    public void setCodigo(int codigo) {
        this.codigo = codigo;
    }

    public Roles getRol() {
        return rol;
    }

    public void setRol(Roles rol) {
        this.rol = rol;
    }

    @Override
    public String toString() {
        return "Usuario{" + "codigo=" + codigo + ", rol=" + rol + '}';
    }

    void setRol(String role) {
        this.rol = rol;
}
   
}

Clase Tipos

public class TipoCliente {
   
    private int idTipoCliente;
    private String Tipo;

    public int getIdTipoCliente() {
        return idTipoCliente;
    }

    public void setIdTipoCliente(int idTipoCliente) {
        this.idTipoCliente = idTipoCliente;
    }

    public String getTipo() {
        return Tipo;
    }

    public void setTipo(int idTipoCliente, String Tipo) {
        this.idTipoCliente = idTipoCliente;
        this.Tipo = Tipo;
    }

    @Override
    public String toString() {
        return idTipoCliente +" - "+ Tipo;
    }

    public TipoCliente() {
    }
   
    TipoCliente (int idTipoCliente, String Tipo) {
        this.idTipoCliente = idTipoCliente;
        this.Tipo = Tipo;
    }
}

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Encontre un pequeño problema

Mira viendo tu código después de unos minutos decidí verlo con Netbeans, encontré en dos problemas que le puede interesar.

La primera esta en la clase cliente, donde capturas el dato y lo muestras

  @Override
     public String toString() {
         return "Cliente : " + super.nombre + " "+super.apellido +" tipo de cliente : " + tipocliente;
     }  

    void setTipocliente(String tipoclientes) {
      tipoclientes = tipoclientes;
              }

He visto que desde la clase Menu, adicionanas el dato a tipocliente con el método que acabo de mostrar de la clase Cliente.

Y como veras el método setTipoCliente(String tipoclientes), no adiciona nada a la variable tipocliente y quieres mostrarlo, por eso te sale null.

No se si me dejo entender, pero es donde encontré el problema.

Te paso un ejemplo de como encontré el problema.

Modifique la clase Cliente:

public class Cliente extends Persona {
    private int idCliente;
     private TipoCliente tipocliente;
private String tipo;
   
     Cliente(){
         super();
     }

    public int getIdCliente() {
         return idCliente;
     }

    public void setIdCliente(int idCliente) {
         this.idCliente = idCliente;
     }

    public TipoCliente getTipocliente() {
         return tipocliente;
     }

    public void setTipocliente(TipoCliente tipocliente) {
         this.tipocliente = tipocliente;
     }

    @Override
     public String toString() {
         return "Cliente : " + super.nombre + " "+super.apellido +" tipo de cliente : " + getTipo();
     }  

    void setTipocliente(String tipoclientes) {
      tipoclientes = tipoclientes;
              }
     
    public String getTipo(){
        return this.tipo;
    }
    public void setTipo(String tipo){
        this.tipo=tipo;
    }

}

Y en la clase Menu, solamente hice una peqeña modificación aquí:

  if (tip == 1) {
                             tipoclientes = "General";
                         }
                         else {
                             tipoclientes = "Premium";                            
                         }
                         //this.cliente.setTipocliente(tipoclientes);
                         this.cliente.setTipo(tipoclientes);

No es que no "quiera" es que

No es que no "quiera" es que como bien indica SISTEMAS estás asignando el valor al mismo parámetro que es una variable local. Y al attributo no le asignas nada por eso sigue null.

Básicamente está pasando esto:

class L {
    Object foo;
    public void setFoo( String bar ) {
        bar = bar;
    }
    public static void main( String ... args ) {
        L ele = new L();
        ele.setFoo("hola mundo");
        System.out.println( ele.foo );
    }
}
Imagen de ezamudio

final

Por eso es recomendable marcar final los parámetros de los métodos. Pero nadie lo hace porque es una hueva. Debería ser el default...

Propongo esto

Si quieres que tipo de clientes se asigne en su clase, necesitas que guarde la variable ahí, para ello debes crear los métodos.
Por ejemplo he usado el constructor de la clase Tipo Cliente para asignar los datos y para leer la información solo hace uso del método, estos son los cambios que hice a la clase Cliente

@Override
     public String toString() {
         return "Cliente : " + super.nombre + " "+super.apellido +" tipo de cliente : " + tipocliente.getTipo();
     }  

    void setTipocliente(int codigo, String tipoclientes) {
     this.tipocliente = new TipoCliente(codigo, tipoclientes);
              }

Y en la clase Menu solamente:

 this.cliente.setTipocliente2(1, tipoclientes);

Por ejemplo ahí se me devuelve un valor:

Menu

1 - Mantenimiento de Clientes
2 - Mantenimiento de Usuarios
3 - Salir
1
Menu Clientes

1 - Crear Clientes
2 - Buscar Cliente por Codigo
3 - Ver todos los Clientes
4 - Volver al menu principal
1
Ingrese el codigo del cliente:
1
Selecciona un Tipo de Cliente: [1 - General, 2 - Premium]
2

Ingresa el Nombre del Cliente:
David
Ingrese el Apellido del Cliente:
Pacheco
Menu Usuarios

1 - Crear Usuario
2 - Buscar Usuario por codigo
3 - Ver todos los Clientes
4 - Volver al menu principal
4
Menu

1 - Mantenimiento de Clientes
2 - Mantenimiento de Usuarios
3 - Salir
1
Menu Clientes

1 - Crear Clientes
2 - Buscar Cliente por Codigo
3 - Ver todos los Clientes
4 - Volver al menu principal
3
Listado de Cliente: [Cliente : David Pacheco tipo de cliente : Premium]

gracias

gracias

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">