Why program? The goal is to write computer software that will run on a computer.

Do you have a desire to invent new software? Do you have a desire to build software that improves on an existing idea? Do you have a desire to build software to complete a specific problem in your life and there is no such software currently?

There is probably a thousand reasons to program.

Goal? Our goal, in this tutorial, is to write source code. Compile the source code into a language that the computer will understand. Run the compiled code on a Java Virtual Machine.

Let's unpack our goal.

Source code is a human-readable programming language usually in text.

Compile is the act of converting source code into a machine-readable programming language.

Java Virtual Machine is a virtual machine that enables a computer to run converted source code on a computer.


Source Code

A typical source code file ends with the java extension. (.java). Example of a file name for a source code file might be Example.java, Game.java, or Horse.java. Notice that each filename ends with the extension (.java).

Every source code  file contains at least one class definition. An example of a class definition would look like this:


public class Example
{


}

The first word public is a Java keyword which declares an access level for the class definition. In this case, public would mean that it is accessible to everyone. It is public.

The second word class is a Java keyword which declares that it is a blueprint from which individual objects are created.

The third word Example is the name of our object. It also must match the filename of the file upon which the class definition resides. For example, Example class would have a file name of Example.java. Remember (.java) is a human-readable programming language extension.

The class definition must also contain two curly brackets. One is considered to be the opening bracket and the other is considered to be the closing bracket. 

Class is a blueprint from which individual objects are created and the class definition is what we write as source code within the blueprint.

An object is a programming term to mean anything in real life that you want to replicate using source code. Object's can be just about anything. The idea of building objects in programming is a very simple idea but in scope it can be difficult to understand. 

Object oriented programming is the idea that you program based on building objects that interact with each other.