Here's a simple Java program that implements an ATM machine using object-oriented programming principles:

```java
import java.util.Scanner;

class Account {
    private double balance;
    
    public Account(double initialBalance) {
        if (initialBalance > 0.0)
            balance = initialBalance;
    }
    
    public void credit(double amount) {
        balance += amount;
    }
    
    public boolean debit(double amount) {
        if (amount <= balance) {
            balance -= amount;
            return true;
        } else {
            System.out.println("Insufficient funds.");
            return false;
        }
    }
    
    public double getBalance() {
        return balance;
    }
}

public class ATMMachine {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        
        Account myAccount = new Account(100.00);
        
        int choice;
        double amount;
        
        do {
            System.out.println("\nATM Menu:");
            System.out.println("1. Check Balance");
            System.out.println("2. Deposit");
            System.out.println("3. Withdraw");
            System.out.println("4. Exit");
            System.out.print("Enter your choice: ");
            
            choice = input.nextInt();
            
            switch (choice) {
                case 1:
                    System.out.printf("Your account balance is: $%.2f\n", myAccount.getBalance());
                    break;
                case 2:
                    System.out.print("Enter the deposit amount: ");
                    amount = input.nextDouble();
                    myAccount.credit(amount);
                    System.out.println("Deposit successful!");
                    break;
                case 3:
                    System.out.print("Enter the withdrawal amount: ");
                    amount = input.nextDouble();
                    if (myAccount.debit(amount)) {
                        System.out.println("Withdrawal successful!");
                    }
                    break;
                case 4:
                    System.out.println("Thank you for using the ATM. Goodbye!");
                    break;
                default:
                    System.out.println("Invalid choice. Please try again.");
            }
        } while (choice != 4);
        
        input.close();
    }
}
```

This program creates an `Account` class that represents a bank account with methods to deposit, withdraw, and check the balance. The main `ATMMachine` class contains a simple menu-driven interface for interacting with the `Account`. Users can choose to check their balance, make deposits, or withdrawals, and exit the program.

To run this program, save it in a file named `ATMMachine.java`, compile it using `javac ATMMachine.java`, and then execute it using `java ATMMachine`.
Create a Java program that implements a simple ATM machine using object-oriented programming principles.