What Is Java? Java Syntax Basics
What Is Java? Java Syntax Basics
1st Generation machine language (raw machine code lots of binary 0100101010001000111) 2nd Generation assembly language (mnemonic representation short series of chars to represent binary) 3rd Generation structured programming (e.g. Pascal, C, C++, Java) 4th Generation application specific (SQL, Mathematica, RPG II, PostScript) 5th Generation combining artificial intelligence (best not mentioned) The aim is to have a programming language that is as close as possible to natural speech a bit like in Star Trek.
2
The software crisis, recognized c.1969. - threatened the progress of the computer industry. People-time was and still is relatively expensive, machine-time is now very, very cheap. Programming was and still is very time intensive. Products need support - this is probably more than ever Software is complex; imagine creating a car with no drawings, specifications or planning. Amazingly, this is how a lot of the software in the past was created (some of it still is)! This situation had to end
3
As computer programs become larger and more complex, more errors are introduced. It has been estimated that there are 15 bugs in every 1000 lines of commercial code. Windows 2000 had 40 million lines of code! Most bugs are caused by poor memory management. Clearly there is a need for a structured programming language that helps in reducing the number of errors and speeds development for programming teams. C C++ Java Functional Programming Object Orientation C makes it easy to shoot yourself in the foot; C++ makes it harder, but when it happens you tend to take off the whole leg!
4
Procedural coding is just a list of instructions. Object-oriented code has a lot of similarity with code from other procedural languages. Basically, a lot of the words are the same but the way the words are put together (the structure) is different. Object-oriented coding does also contain lists of instructions but these lists are bound to specific objects. What an object actually represents is up to the programmer.
Simple Example
A car is an object (in the real world) and in our program we can make a software object to represent it. Fundamentally, an object contains data and methods which can act on that data. The data we might want to have in our software car could be things like: body colour, engine size, current speed, whether it has electric windows etc. Basically its up to you. The methods we might want our car to have could be things like: accelerate, brake, respray body, open passenger window etc. Again, its up to you. Whatever you need your software car to model from the real world object must be present in your code. The OO syntax enables you to do this intuitively.
6
Procedural programming (C, Visual Basic, Fortran etc.) In procedural programming, functions were the most important part of the software. Where and how the data was stored was secondary (at best). Procedural code is process-oriented, OO code is dataoriented. In procedural programming, if your code is in error then it is relatively easy to fix but incorrect data may be impossible to fix!
WORA - Write Once, Run Anywhere (portable). Security (can run untrusted code safely). Robust memory management (opaque references, automatic garbage collection) Network-centric programming. Multi-threaded (multiple simultaneous tasks). Dynamic & extensible.
Classes stored in separate files Loaded only when needed Can dynamically extend itself to expand its functionality (even over a network and the Internet!)
8
Large projects can be broken down into modules more easily. Aids understanding. Groupwork is easier. Less chance of data corruption. Aids reusability/extensibility. Maintaining code is far easier. Hides implementation details (just need to know what methods to call but no need to understand how the methods work to use them).
With any programming language, there are concepts and some terminology to learn. It takes time for these things to sink into your brain. Rule #1 Do not panic! Like driving a car, you cannot learn in a day and it takes practice with a lot of trial and error. This is normal. You can only learn by experience. Programming is very similar to solving puzzles. Solving any complex puzzle (Su Doku, Rubiks Cube, Mah-jong etc.) requires you to think and trying out ideas until you finally (hopefully) solve the puzzle. The only difference is that with programming you have to translate your ideas into code before you can test your solution.
10
Java applications
text input and output to a console can add user interface components
analogous to init() method of applet
11
} } /* end of program */
12
name of class is same as name of file (which has .java extension) body of class surrounded by { } this class has one method called main
all Java applications must have a main method in one of the classes execution starts here body of method within { }
Java keywords
reserved by Java for predefined purpose dont use them for your own variable, attribute or method names!
visibility could be private the main method belongs to the Hello class, and not an instance (object) of the class method does not return a value
14
public
static
void
Comments
important for documentation!!!! ignored by compiler // single line (or part of line) /* multiple line comments go here everything between the marks is ignored */
/** * These are used by the javadoc utility to create HTML * documentation files automatically. */
15
name is a variable of type String we have to declare variables before we use them unlike C, variables can be declared anywhere within block use meaningful names numberOfBricks start with lower case capitalise first letter of subsequent words
16
Data types
int 4 byte integer (whole number) range -2147483648 to +2147483648 float 4 byte floating point number decimal points, numbers outside range of int double 8 byte floating point number 15 decimal digits (float has 7) so bigger precision and range char 2 byte letter String string of letters boolean true or false (not 1 or 0)
17
System output
Java provides print methods in the class System.out (dont need to import) println(name);
prints out what is stored in name, then goes to a new line prints out what is stored in name, but does not start a new line put text in quotes use + to print more than one item
18
print(name);
Methods in Java
methods break down large problems into smaller ones your program may call the same method many times
saves writing and maintaining same code information needed to do their job must specify type of value returned
19
Example method
signature public static int addNums(int num1, int num2) { int answer = num1 + num2; return answer; }
body
20
Method signature
visibility [static] returnType methodName(parameterList)
visibility:
public
accessible to other objects and classes accessible to classes which inherit from this one
protected
static keyword:
Method signature
visibility [static] returnType methodName(parameterList)
return type:
or a class if nothing returned, use keyword void use meaningful name which describes what method does!
22
method name:
Method signature
visibility [static] returnType methodName(parameterList)
parameter list:
23
Method body
signature
public static int addNums(int num1, int num2) { int answer = num1 + num2; return answer; }
body
24
Method body
use curly brackets to enclose method body all your code goes in here
write it so the method does what you intended must match type in method header nothing is executed after return statement if method returns void, can omit return statement
25
Calling a method
methods will not run unless called from elsewhere a statement in main() method could call another method this method could call a third method ..... class methods are called with the form: ClassName.methodName(parameters); omit ClassName if called in same class method name and parameters must match the method signature if the method returns a value, it can be stored in a variable or passed to another method
26
Calling methods
public static void main(String args[]) { int input; input = Console.readInt("Number? "); System.out.print("Your number plus 3 is "); System.out.println(addNums(input, 3)); }
27
Calling methods
from System.out:
public void print(String s) public void println(int x) no returned value (void)
28
Calling methods
from class JavaTest: public static int addNums(int num1, int num2) pass returned integer to println() method gets printed to screen could also store it in another variable int answer = addNums(input, 3);
29