Introduction to Java Java Characteristics Simple (relatively) Object-Oriented Distributed Interpreted Robust and Reliable Secure and safe (relatively) Platform-Independent (Architecture-Neutral) Distributed and Portable Fast (but not the fastest) Multithreaded Object Oriented Programming Encapsulation: keeping data and its related functionality Data hiding: providing an interface to the user, and hiding the Inheritance: ability for one class to inherit properties (data and Polymorphism: ability for the same message to be interpreted together (non-OOP left them independent) implementational details of this interface. This leads to simpler programming tasks. functionality) from other classes. This leads to reusable code. (Classes are arranged in a hierarchy of classes (categories) and subclasses (sbucategories) by objects of different types in different ways. The Java Programming Process No Write Source Code in Java Source Code file (*.java) Compile (using javac.exe) No Logic OK? Yes Turn it in to Mitri!! Syntax OK? Yes Execute the bytecode (using java.exe) java.exe is the VIRTUAL MACHINE Bytecode Class files (*.class) Anatomy of a Java Program Comments – documentation. Compiler ignored these. Reserved Words – keywords of the language. Modifiers – keywords that describe properties of methods, classes, or variables. Statements – action instructions telling the CPU what to do. Blocks – groups of statements enclosed in { and } Classes – object-oriented constructs involving methods and variables; arranged in inheritance hierarchies. Methods – functions, members of classes. The main method – the starting point of a Java application. Package – group of related classes. A Simple Application Example 1.1 //Welcome.java: This application program prints // Welcome to Java! package chapter1; public class Welcome { public static void main (String[] args) { System.out.println("Welcome to Java!"); } } A Simple Application Example 1.1 //Welcome.java: This application program prints // Welcome to Java! package chapter1; Comments…use // for single line or /* */ for multiple lines public class Welcome { public static void main (String[] args) { System.out.println("Welcome to Java!"); } } A Simple Application Example 1.1 //Welcome.java: This application program prints // Welcome to Java! package chapter1; Package – indicates a grouping of classes. public class Welcome { public static void main (String[] args) { System.out.println("Welcome to Java!"); } } A Simple Application Example 1.1 //Welcome.java: This application program prints // Welcome to Java! package chapter1; Reserved words – keywords of the language with specific meaning to the compiler. public class Welcome { public static void main (String[] args) { System.out.println("Welcome to Java!"); } } A Simple Application Example 1.1 //Welcome.java: This application program prints // Welcome to Java! package chapter1; Modifiers – reserved words that specify characteristics or properties of data, methods, and classes. public class Welcome { public static void main (String[] args) { System.out.println("Welcome to Java!"); } } A Simple Application Example 1.1 //Welcome.java: This application program prints // Welcome to Java! package chapter1; public class Welcome { public static void main (String[] args) { System.out.println("Welcome to Java!"); } Statements – action } instructions. Always end with semicolon (;) A Simple Application Example 1.1 //Welcome.java: This application program prints // Welcome to Java! package chapter1; Blocks – groups of statements (sometimes called compound statements). Enclose classes, method statements, or statements inside controls structures. Can be nested. public class Welcome { public static void main (String[] args) { System.out.println("Welcome to Java!"); } } A Simple Application Example 1.1 //Welcome.java: This application program prints // Welcome to Java! package chapter1; Classes – complex data structures encapsulating data and actions. Classes are composed of methods (functions) and variables (attributes) public class Welcome { public static void main (String[] args) { System.out.println("Welcome to Java!"); } } A Simple Application Example 1.1 //Welcome.java: This application program prints // Welcome to Java! Methods – named blocks of statements that package chapter1; can be called, take arguments (parameters), return values. Note: all Java applications must have a main method as an entry point to the program. public class Welcome { public static void main (String[] args) { System.out.println("Welcome to Java!"); } } Options for Building and Running Java Applications Command Line (in DOS mode) Get into command window Call JDK programs for operations Text-mode debugging We’ll discuss this later Using an Integrated Development Environment (e.g. NetBeans) GUI interface Menus/toolbars for operations Graphical debugging Sun’s Java Development Kit (JDK) Includes the following tools found in bin subdirectory of the java directory: Java Compiler (javac.exe) Java Virtual Machine (java.exe) Java AppletViewer (AppletViewer.exe) Java Debugger (jdb.exe) Where to get the JDK from http://java.sun.com/javase/downloads/netbeans.html also includes Netbeans IDE It’s Free and Open Source!!! Using Command-Line Technique for Writing, Compiling and Running Java Applications Use any text editor to create your .java source code file (for example, Notepad). Copy the compile.bat and run.bat files (available for download from my web site) to the same folder as your .java source code file. Make sure the path in the batch files are correct (see next slide). Use the Command Prompt (DOS window) to access the folder and run the batch files. File Paths If you installed the Java SDK and NetBeans from Sun’s Java Site, the path to your file will be: c:\Program Files\Java\jdk1.5.0_12 If you are using java in the lab (installed on the D: drive), the path to the JDK is: D:\Program Files\Java\jdk1.5.0_12 In both cases, the javac.exe and java.exe programs are in the bin subfolder What is NetBeans? Integrated Development Environment (IDE) Analogous to Microsoft Visual Studio Tools include: Project workspace Color-coded, smart editing GUI building tools (e.g. form builders) Compiler Execution Debugging tool What is NetBeans? (continued) Can build entire projects consisting of multiple source files and classes Includes GUI building tools for easy placement of components (controls) Like form builders in VB Menu/toolbar interfaces for compile/execute/debug NetBeans Interface (for edit, compile, execute, and debug) Projects window Editor window Output window Debug windows Using the Examples from Liang’s Textbook All Textbook examples are located downloadable from my web site. Create a Liang7eSamples project using NetBeans. In the Liang7eSamples folder, there is a src subfolder. In that subfolder, you can copy the folders I provide in my examples…each subfolder of src is a package, and contains the java programs of the chapter NOTE: Liang has a web site with more resources: http://prenhall.com/liang.