Hola Pola, en el código que compartiste, se está trabajando con una clase llamada Cuenta, que no está completamente visible en el fragmento proporcionado. Sin embargo, vamos a analizar el código y entender cómo funciona el modificador "default" en Java, que es esencial para comprender tu pregunta.
Modificadores de Acceso en Java
En Java, hay cuatro tipos principales de modificadores de acceso para los miembros de una clase (atributos y métodos):
public: El miembro es accesible desde cualquier otra clase.
protected: El miembro es accesible dentro del mismo paquete y por las subclases.
private: El miembro es accesible solo dentro de la clase en la que se define.
default (sin especificar ningún modificador): El miembro es accesible solo dentro del mismo paquete.
Análisis del Código
En el fragmento de código que proporcionaste:
Cuenta c1 = new Cuenta();
c1.saldo = 300;
c1.retirar(100);
c1.saldo = 300;: Aquí se está accediendo directamente al atributo saldo de la instancia c1 de la clase Cuenta. Para que esto sea posible, saldo debe tener un modificador de acceso que permita su visibilidad desde la clase Principal. Dado que Principal y Cuenta están en el mismo paquete (com.aluracursos.tests), si el atributo saldo no tiene un modificador explícito, por defecto es "default", lo que significa que es accesible dentro del mismo paquete.
c1.retirar(100);: Similarmente, el método retirar se está invocando en la instancia c1. Para que esto sea posible sin errores de compilación, el método debe ser visible desde la clase Principal, lo cual es posible si tiene un modificador "default" o "public", dado que ambas clases están en el mismo paquete.
Cómo Saber si Tienen el Modificador "Default"
Revisar la Declaración: Si en la declaración del atributo saldo o del método retirar no ves ninguno de los modificadores (public, protected, o private), entonces automáticamente tienen el modificador "default".
Contexto del Paquete: Como ambas clases (Principal y Cuenta) están en el mismo paquete (com.aluracursos.tests), los miembros con modificador "default" son accesibles entre ellas.
En resumen, si no ves ningún modificador explícito en las definiciones de saldo o retirar, y puedes acceder a ellos desde otra clase en el mismo paquete, entonces están utilizando el modificador "default"