330 likes | 778 Views
Java Programming. A Brief Intro. Overview of Java. Java Features How Java Works Program-Driven vs Event Driven Graphical User Interfaces (GUI). Java Features. Simple, Object-Oriented, Familiar Robust and Secure Architecture Neutral and Portable High Performance
E N D
Java Programming A Brief Intro
Overview of Java • Java Features • How Java Works • Program-Driven vs Event Driven • Graphical User Interfaces (GUI)
Java Features • Simple, Object-Oriented, Familiar • Robust and Secure • Architecture Neutral and Portable • High Performance • Interpreted, Threaded, and Dynamic
Simple, OO, Familiar • Its simplicity comes from the fact that there are no explicit pointers in Java. • The programmer does not have to manage pointers and the resultant problems resulting from their use • All programs in Java are based on objects • Java uses the familiar syntax and the same fundamental control structures of C/C++ • Complex, nuts and bolts Unix operations are encapsulated in objects that provide easy to use interfaces • e.g. Sockets
Robust and Secure • Robust programs run without crashing due to programming errors, erroneous input, or failure of external devices. Java has many checks at compile-time and provides run-time exception handling to deal with unexpected events. • Security, especially across the internet, requires careful measures, which are implemented in Java
Architecture Neutral and Portable • Java programs run on a variety of processors using various operating systems • Portability depends not only on architecture but also on implementation. Java specifies the language carefully to reduce implementation dependencies. • Not perfectly independent, but better than most • Java API includes just about everything
High Performance • Java versions continually increase performance capabilities. • In network applications, communication delays usually far exceed performance delays.
Interpreted, Threaded, and Dynamic • Interpreted, not compiled. • Threaded – capable of multi_tasking and concurrent processing, even across the internet • Dynamic linking to library code as it needs it. • Java is ideally suited for general, interactive, and network programming
How Java Works Java Compiler Java Source Code Java Byte Code Java Interpreter For Processor 2 Java Interpreter For Processor 1
Setting up Linux/Unix for Java • Make a directory called java somewhere. • Put this java directory in your CLASSPATH in your environment (.cshrc on Unix) setenv CLASSPATH “.:$home/java:whatever_is_there_already“ • this allows packages starting from your java subdirectory • Put your JDK’s bin directory in your path variable (in the .login file?) • Give commands to make the changes effective. • These changes should be applied automatically on subsequent logins
Testing Changes prompt > java -version java version "1.5.0_01" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_01-b08) Java HotSpot(TM) Client VM (build 1.5.0_01-b08, mixed mode, sharing) prompt >
Building an Application • Edit the source file either in your favorite editor, or IDE, and save it as <file>.java • The file name must be the same as the one and only public class name in the file • Compile by giving the command javac <file>.java at the command line of a DOS or Unix window. • Run the program by giving the command java <file>
hello.java // File: hello.java // Compiler: Sun javac // Compile: javac hello.java // Executable: hello.class // Execute: java hello // // Purpose: Prints usual first // program
hello.java public class hello { public static void main(String[] args) { int x = 3; System.out.println(“Hello, World!” + “\nx = “ + (x) ); } }
Application Programs • The file name must be the same as the one and only public class in the file. • This public class must have a static method called main (Why static??) public static void main( String[] args) { local declarations and statements }
Exercise • Setup your machine to compile and run a Java Application program. Test it with the HelloWorld program hello.java. • The example is in the java/hello subdirectory on the instructor’s website
Basic Java Programming • The C/C++ component • Comments – C/C++ style • Identifiers and keywords • Types, variables, expressions • Control structures • Functions • System output • Console input • Java is not accommodating to non-GUI input • read() method only for characters • Packages
Identifiers and Keywords • A Java identifier must start with a letter, followed by 0 or more letters and/or digits. Java is case-sensitive. • Keywords cannot be used as user-identifiers. See text for a list of keywords. • Style – recommended & preferred; consistency is a must! • Class names begin with a capital letter • Variable names begin with a lower case letter • Function names begin with a verb which is lowercased. • Constants are all upper case. • Multiple word names are lower case except for the beginning of each word component.
Examples • Request would be a class name • myRequest would be a variable name • getRequest() would be a function (method) name • THE_REQUEST would be a constant. • The Java standard style convention should be followed in our programming.
Standard Types • char – ascii or unicode • boolean – true or false • Numerical types – various sizes of numbers
Numerical Types • Standard numerical types in Java are type size least value greatest value ________________________________________ byte 8 -128 127 short 16 -32768 32767 int 32 -2147483648 2147483647 long 64 -263 263-1 float* 32 ~ -3.4 x 1038 ~ 3.4 x 1038 double* 64 ~ -1.7 x 10308 ~ 1.7 x 10308 * 7 and 15 digit accuracy respectively
Variables and Expressions • Java follows the syntax of C/C++ for expressions and assignment. • The operators for the standard types are the same as those for C/C++ • Remember that = is assignment and == is equal relational operator. • You should NOT use = in a cascading manner.
Control Structures The control structures are the same as C/C++ • if • switch • for • while • do – while Note: unlike C/C++, where a test expression can evaluate to int, a test expression MUST be of type boolean
Functions (Methods) • In Java there are no independent functions • A function (method) is always a member function of some class. • The syntax is very similar. modifier(s) resulttype name( <params>) { local declarations and statements } // the modifier is public, private, or protected, and can also be prefaced static
Methods: Parameters • Different rules than C++ • technically, all pass is by value • objects not passed, their address is • passing address means in method, there are two references to same object • effect is same as pass by reference, as change to object inside method changes caller’s (same) object • simple types can’t be passed by reference • must be wrapped in an object • problem of immutability in java.lang objects
System Output • Output is generated by using streams. The stream classes are defined in the standard Java package java.io. • The class System in the package java.lang contains three different streams for use in Java programs: System.in the keyboard System.out the screen System.err the screen • System.out.println( any string)
Examples of Output • To print an object, the object should have overloaded the method toString that is inherited from the Class Object. • Standard types have this method. • System.out.println(“The value of x = “ + x ); • The + is the concatenation operator for strings.
System Input • System input is quite complicated, so many authors provide a package of IO functions for the standard types. • Dependence on anything proprietary defeats the purpose of Java. A class InputReader is in the public java directory for text input. • it uses only pure Java to perform input • More fundamental IO will be discussed later • Java is made for GUIs, particularly components such as TextFields, Menus. etc;
Examples of input • helloYou.java • helloInt.java • java/hello directory on web
Things that are different • String concatenation is the operator + • It takes two operands which are “stringable”, that is any operand that is a string or has the toString method overloaded for that type. • System.out.println(76 + “ trombones”); • Beware: • System.out.println(23+45) • What is output? 2345, or 68?
Packages • Java organizes code into packages which correspond to directories in the file system. • Each Java class is contained in a package. • The default package is . (the current directory) • Is . In your classpath???? • The System class is found in java.lang • The Applet class is found in java.applet
Comments • When calling methods of the same class, we do not need to use the class name as a prefix. • When calling methods of another class, we use the class name or an object of that class as a prefix.
Objects • Still declared as a class • No separate sections • Each declaration specified with access • public, private, protected • static declarations part of class, but not object • non-static declarations part of instantiated objects only