Now that you have data types that represent memory in a specific way and variables as a convention to refer to that memory, how would you represent values that do not change, for example pi? You could define a variable named pi as follows: double pi = 3.14285 When you need to use it, you could simply reference it in an equation: double r = 10; double area = pi * r * r; Variables can, as their name implies, contain variable data. But because variables such as pi really cannot change, you must prevent the user from doing the following: pi = pi / 2; This is perfectly legal in Java, but violates the property of pi. The answer is that we can declare a variable to be a constant, or not changing. Java uses the keyword final to denote that a variable is in fact a constant. Now you can preface your declaration of pi with the keyword final and ensure that its value cannot change: final double pi = 3.14285 When you try to compile a statement that modifies a constant value, such as final double pi = 3.14285 pi = pi / 2; The compiler generates an error saying that you cannot assign a value to a final variable. By convention, programmers usually capitalize all the letters in a constant's name so that it can be found with only a casual glance of the source code. Pi, therefore, would be declared as follows: final double PI = 3.14285; |