COURSE TITLE:         Intermediate Programming (Java)
MODULE:               2
OVERVIEW
                                       Java - Basic Syntax
      Java Prgram                                            Java Enums
      Basic Syntax                                           Java Keywords
      Java Identifiers                                       Comments in Java
      Java Modifiers                                         Using Blank Lines
      Java Variables                                         Inheritance
      Java Arrays                                            Interfaces
MODULE OUTCOMES
At the end of this module, the students must have:
      discussed the three stages in Developing Java Programs;
      distinguished the Basic Syntax about Java Programs;
      defined and differentiated Java Identifiers, Modifiers, Variables, Arrays, Enums, Keywords,
       Comments, Blank Lines, Inheritance and Interfaces.
INTRODUCTION
Well, simply put, syntax is a particular format for writing commands in a programming language. Every
language has its individual syntax.
Without proper knowledge of syntax, it would be difficult to generate desired output from a
programming language. Syntax are also referred to as the language of the computer.
DISCUSSION
There are 3 stages in developing a Java Program:
Coding
Compilation
Execution
What’s coding – Developing a java program (set of instructions) according to Java syntax or
rules is called coding. Java programs should always be saved with a filename.java extension.
What’s compilation – Converting the java program into byte codes or .class file using javac
compiler is called compilation. Whenever we compile a java program , a .class file will be
generated and it will have byte codes in it.
What’s execution- Converting the byte codes present in the .class file into CPU
understandable instructions or binaries using Java Virtual Machine (JVM) which is an
interpreter is called execution.
When we consider a Java program, it can be defined as a collection of objects that
communicate via invoking each other's methods. Let us now briefly look into what do class,
object, methods, and instance variables mean.
      Object − Objects have states and behaviors. Example: A dog has states - color, name,
       breed as well as behavior such as wagging their tail, barking, eating. An object is an
       instance of a class.
      Class − A class can be defined as a template/blueprint that describes the
       behavior/state that the object of its type supports.
      Methods − A method is basically a behavior. A class can contain many methods. It is in
       methods where the logics are written, data is manipulated and all the actions are
       executed.
      Instance Variables − Each object has its unique set of instance variables. An object's
        state is created by the values assigned to these instance variables.
First Java Program
Let us look at a simple code that will print the words Hello World.
Example
public class MyFirstJavaProgram {
    /* This is my first java program.
     * This will print 'Hello World' as the output
     */
    public static void main(String []args) {
       System.out.println("Hello World"); // prints Hello World
    }
}
Let's look at how to save the file, compile, and run the program. Please follow the subsequent
steps −
       Open notepad and add the code as above.
       Save the file as: MyFirstJavaProgram.java.
       Open a command prompt window and go to the directory where you saved the class.
        Assume it's C:\.
       Type 'javac MyFirstJavaProgram.java' and press enter to compile your code. If there
        are no errors in your code, the command prompt will take you to the next line
        (Assumption : The path variable is set).
       Now, type ' java MyFirstJavaProgram ' to run your program.
       You will be able to see ' Hello World ' printed on the window.
Output
C:\> javac MyFirstJavaProgram.java
C:\> java MyFirstJavaProgram
Hello World
Basic Syntax
About Java programs, it is very important to keep in mind the following points.
       Case Sensitivity − Java is case sensitive, which identifier Hello and hello would have
        different meaning in Java.
       Class Names − For all class names the first letter should be in Upper Case. If several
        words are used to form a name of the class, each inner word's first letter should be in
        Upper Case.
        Example: class MyFirstJavaClass
       Method Names − All method names should start with a Lower Case letter. If several
        words are used to form the name of the method, then each inner word's first letter
        should be in Upper Case.
        Example: public void myMethodName()
       Program File Name − Name of the program file should exactly match the class name.
       When saving the file, you should save it using the class name (Remember Java is case
       sensitive) and append '.java' to the end of the name (if the file name and the class
       name do not match, your program will not compile).
       But please make a note that in case you do not have a public class present in the file
       then file name can be different than class name. It is also not mandatory to have a
       public class in the file.
       Example: Assume 'MyFirstJavaProgram' is the class name. Then the file should be
       saved as 'MyFirstJavaProgram.java'
      public static void main(String args[]) − Java program processing starts from the
       main() method which is a mandatory part of every Java program.
Java Identifiers
All Java components require names. Names used for classes, variables, and methods are
called identifiers.
In Java, there are several points to remember about identifiers. They are as follows −
      All identifiers should begin with a letter (A to Z or a to z), currency character ($) or an
       underscore (_).
      After the first character, identifiers can have any combination of characters.
      A key word cannot be used as an identifier.
      Most importantly, identifiers are case sensitive.
      Examples of legal identifiers: age, $salary, _value, __1_value.
      Examples of illegal identifiers: 123abc, -salary.
Java Modifiers
Like other languages, it is possible to modify classes, methods, etc., by using modifiers. There
are two categories of modifiers −
      Access Modifiers − default, public , protected, private
      Non-access Modifiers − final, abstract, strictfp
Java Variables
Following are the types of variables in Java −
      Local Variables
      Class Variables (Static Variables)
      Instance Variables (Non-static Variables)
Java Arrays
Arrays are objects that store multiple variables of the same type. However, an array itself is
an object on the heap. We will look into how to declare, construct, and initialize in the
upcoming chapters.
Java Enums
Enums were introduced in Java 5.0. Enums restrict a variable to have one of only a few
predefined values. The values in this enumerated list are called enums.
With the use of enums it is possible to reduce the number of bugs in your code.
For example, if we consider an application for a fresh juice shop, it would be possible to
restrict the glass size to small, medium, and large. This would make sure that it would not
allow anyone to order any size other than small, medium, or large.
Example
class FreshJuice {
   enum FreshJuiceSize{ SMALL, MEDIUM, LARGE }
   FreshJuiceSize size;
}
public class FreshJuiceTest {
    public static void main(String args[]) {
       FreshJuice juice = new FreshJuice();
       juice.size = FreshJuice.FreshJuiceSize.MEDIUM ;
       System.out.println("Size: " + juice.size);
    }
}
The above example will produce the following result −
Output
Size: MEDIUM
Note − Enums can be declared as their own or inside a class. Methods, variables, constructors can be defined
inside enums as well.
Java Keywords
The following list shows the reserved words in Java. These reserved words may not be used
as constant or variable or any other identifier names.
    abstract              assert              boolean               break
     byte                  case                 catch               char
     class                const               continue             default
      do                 double                 else                enum
    extends                final               finally              float
      for                  goto                   if             implements
     import             instanceof               int              interface
     long                 native                new               package
    private             protected              public               return
     short                static               strictfp             super
     switch           synchronized               this               throw
    throws               transient               try                void
    volatile              while
Comments in Java
Java supports single-line and multi-line comments very similar to C and C++. All characters
available inside any comment are ignored by Java compiler.
Example
public class MyFirstJavaProgram {
    /* This is my first java program.
     * This will print 'Hello World' as the output
     * This is an example of multi-line comments.
     */
    public static void main(String []args) {
       // This is an example of single line comment
       /* This is also an example of single line comment. */
       System.out.println("Hello World");
    }
}
Output
Hello World
Using Blank Lines
A line containing only white space, possibly with a comment, is known as a blank line, and
Java totally ignores it.
Inheritance
In Java, classes can be derived from classes. Basically, if you need to create a new class and
here is already a class that has some of the code you require, then it is possible to derive your
new class from the already existing code.
This concept allows you to reuse the fields and methods of the existing class without having
to rewrite the code in a new class. In this scenario, the existing class is called
the superclass and the derived class is called the subclass.
Interfaces
In Java language, an interface can be defined as a contract between objects on how to
communicate with each other. Interfaces play a vital role when it comes to the concept of
inheritance.
An interface defines the methods, a deriving class (subclass) should use. But the
implementation of the methods is totally up to the subclass.
A closer look at the “MyFirstJavaProgram” program
The " MyFirstJavaProgram " program contains a single file, which consists of a   HelloWorld
class definition, a main method, and a statement inside the main method.
public class MyFirstJavaProgram {
The class keyword begins the class definition for a class named   MyFirstJavaProgram.   Every
Java application contains at least one class definition
public static void main(String[] args) {
This is an entry point method (defined by its name and signature of public static void
main(String[])) from which the JVM can run your program. Every Java program should have
one. It is:
    public: meaning that the method can be called from anywhere mean from outside the
program as well.
    static: meaning it exists and can be run by itself (at the class level without creating an
       object).
    void: meaning it returns no value. Note: This is unlike C and C++ where a return code
       such as int is expected (Java's way is System.exit()).
This main method accepts:
    An array (typically called args) of Strings passed as arguments to main function (e.g.
      from
command line arguments).
Almost all of this is required for a Java entry point method.
Non-required parts:
     The name args is a variable name, so it can be called anything you want, although it is
typically called args.
     Whether its parameter type is an array (String[] args) or Varargs (String... args) does
        not
matter because arrays can be passed into varargs.
Note: A single application may have multiple classes containing an entry point ( main) method.
The entry point of the application is determined by the class name passed as an argument to
the java command.
Inside the main method, we see the following statement:
System.out.println("Hello, World!");
Let's break down this statement element-by-element:
 Element     Purpose
 System      this denotes that the subsequent expression will call upon the   System   class, from
             the java.lang package.
 .           this is a "dot operator". Dot operators provide you access to a classes members
             1; i.e. its fields (variables) and its methods. In this case, this dot operator allows
             you to reference the out static field within the System class.
 out         out
            this is the name of the static field of PrintStream type within the System class
            containing the standard output functionality.
 .          this is another dot operator. This dot operator provides access to the println
            method within the out variable.
 println    this is the name of a method within the PrintStream class. This method in
            particular prints the contents of the parameters into the console and inserts a
            newline after.
 (          this parenthesis indicates that a method is being accessed (and not a field) and
            begins the parameters being passed into the println method.
 "Hello,    this is the String literal that is passed as a parameter, into the println method.
 World!"
            The double quotation marks on each end delimit the text as a String.
 )          this parenthesis signifies the closure of the parameters being passed into the
            println method.
 ;          this semicolon marks the end of the statement.
Note: Each statement in Java must end with a semicolon ( ;).
The method body and class body are then closed.
} // end of main function scope
} // end of class HelloWorld scope
What is Next?
The next module (3) explains about Objects and classes in Java programming. At the end of
the discussion, you will be able to get a clear picture as to what are objects and what are
classes in Java.
                                      Activity No. 1
   Name:                                                          Date:
   Year and Section:                                              Signature:
(20 points) Create a Java Program that display the following output.
Output
Hello World
Hi IT 103 students
                                      Activity No. 2
   Name:                                                          Date:
   Year and Section:                                              Signature:
(20 points)   Write an essay about Java Keywords. Minimum of 150 words maximum of 300 words.
SUMMARY
Syntax are important as they are the language which the compiler understands. If the syntax is
incorrect even the fastest algorithms can come to a standstill. So we must strengthen our concepts of
Java syntax before proceeding further into the concepts of Java.
RUBRICS for Activity No. 2
     Category                4                         3                    2                       1
  Neatness and         The work is                The work is          The work is        The work appears
   organization       presented in a            presented in a       presented in an          sloppy and
                        neat, clear,               neat and         organized fashion      unorganized. It is
                    organized fashion        organized fashion      but may be hard       hard to know what
                      that is easy to           that is usually     to read at times.      information goes
                           read.                 easy to read.                                 together.
  Understanding    I got it!! I did it in          I got it. I      I understood parts          I did not
                      new ways and             understood the        of the problem. I      understand the
                   showed you how it         problem and have        got started, but I        problem.
                    worked. I can tell         an appropriate         couldn’t finish.
                   you what concepts          solution. All parts
                         are used.           of the problem are
                                                  addressed.
    Explanation             Complete              Good solid          Explanation is      Misses key points
                         response with a        response with            unclear
                             detailed         clear explanation
                           explanation
 Demonstration of        Shows complete       Response shows         Response shows       Response shows a
   Knowledge             understanding of       substantial              SOME              complete lack of
                         questions, ideas,     understanding          understanding         understanding
                          and processes
   Requirements          Goes beyond the         Meets the          Hardly meets the      Does not meet the
                          requirements         requirements          requirements           requirements
Put a check on the topic whether you can understand it on your own, need more reference material, or
if you can’t understand.
                                         SELF ASSESSMENT
                                                      I CAN DO IT WITH
                            I CAN DO IT ON MY           THE HELP OF A               I CANNOT
                                   OWN.                   REFERENCE              UNDERSTAND.
                                                          MATERIAL.
   Java - Basic Syntax
Please write your written feedback below:
   Name:                                            Date:
   Year and Section:                                Signature:
REFERENCES
      1. CADENHEAD, R. (2018). SAMS TEACH YOURSELF JAVA IN 21 DAYS. 800 EAST 96TH
         STREET, INDIANAPOLIS, INDIANA 46240. PEARSON EDUCATION.
      2. ECK,D.(2017). INTRODUCTION TO PROGRAMMING USING JAVA. HOBART AND WILLIAM
         SMITH COLLEGES, GENEVA, NY 14456
      3. MEDLEY, R. (2018, JUNE 7). NETBEANS. RETRIEVED FROM NETBEANS.ORG:
         HTTPS://EDU.NETBEANS.ORG/CONTRIB/JEDI/INTRO-TO-PROGRAMMING- 1/COURSE-
         OUTLINE.PDF
      4. SHICHT, H. (2018, JUNE 7). COMPUTER_FUNDAMENTALS. RETRIEVED FROM
         TUTORIALSPOINT.COM:
         HTTPS://WWW.TUTORIALSPOINT.COM/COMPUTER_FUNDAMENTALS/COMPUTER_NUMBER
         _SYSTEM.HTM
SUGGESTED READINGS
1. https://data-flair.training/blogs/basic-java-syntax/
2. https://www.phptpoint.com/java-basic-syntax/
3. https://www.geeksforgeeks.org/java-basic-syntax/