# Java: Example - Simple Calculator

| Here is the source for the simple calculator shown at the left. It's divided into three source files.

- Main (Calc.java) - A simple main program.
- User interface (CalcGUI.java) - This is implemented as a subclass of JFrame. It both builds the interface the user sees (the "view), and handles the events coming from the buttons (the "controller").
- Model (CalcLogic.java) - This is where the actual calculations take place. Altho this simple example doesn't show the full power of separating the business logic (often called the "model") from the user interface, there are many advantages in larger programs.
  - It is simpler for the developer to work with.
  - It can be used with many kinds of interfaces without changes. Eg, a GUI interface, a command-line interface, or a web-based interface.
  - The model can be changed (eg, to work with BigInteger) without changing the user interface. Of course, some changes may require interface changes, but the separation makes this easier.

## The main program

## The user interface

## The logic/model