1 / 59

Java :

Java :. A Gentle Introduction - presented by Fran Trees. Java Programming Language. 1991 A group led by James Gosling and Patrick Naughton at Sun Microsystems designed “Green”, a language for consumer devices (coffee makers, VCRs, etc.). Didn’t overly excite anyone. 1994

dixie
Download Presentation

Java :

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Java : A Gentle Introduction - presented by Fran Trees Columbia University JETT

  2. Java Programming Language • 1991 • A group led by James Gosling and Patrick Naughton at Sun Microsystems designed “Green”, a language for consumer devices (coffee makers, VCRs, etc.). Didn’t overly excite anyone. • 1994 • Gosling – HotJava Browser • could download “applets” from the web and run them • applets were written in Java. • greatly extended capabilities of a web page Columbia University JETT

  3. Java Advantages • Platform independence • Reuse of code • Security • Automatic garbage collection • Stronger typing of objects and variables Columbia University JETT

  4. Java Technology: • Programming language • Syntax and semantics • Development environment • Compiler, interpreter, documentation generator, class packaging tool • Application environment • Standalone programs- run on any machine where Java Runtime Environment is installed (JRE) • Deployment environment • JRE supplied by SDK: contains class files, GUI classes, etc. Columbia University JETT

  5. Portability and Security • Java Virtual Machine • An imaginary machine that is implemented by emulating it in software on a real machine (fake CPU that sits on top of an operating system). Code for the JVM is stored in .class files. • Provides hardware platform specifications • Reads compiled byte codes that are platform independent Columbia University JETT

  6. JVM A JVM has been written for every operating system. A compiler takes Java application source code and generates bytecode (machine code instructions for JVM). Java source code (Car.java) not readable by humans; not really machine code… compiled Still platform dependent bytecode Car.class JVM JVM JVM Unix Windows Mac Columbia University JETT

  7. JRE Runtime class loader bytecode verifier Car.class interpreter runtime hardware Columbia University JETT

  8. JVM • JVM specification provides concrete definitions for implementation of: • Instruction set • Register set • Class file format • Runtime stack • Garbage collecting heap • Memory area Columbia University JETT

  9. SO…. • Java uses a mix of compiler and interpreter • The majority of type checking is done when the code is compiled. Columbia University JETT

  10. Garbage Collection • Allocated memory does not need to be deallocated (delete). • Java provides tracks memory allocation • Garbage Collection • checks and frees memory no longer needed • done automatically Columbia University JETT

  11. Java promotes Object-oriented programming Columbia University JETT

  12. Object-Oriented Programming • Each object has • its own memory • belongs to a class (instance of a class) • Class defines • attributes (defines state) • behavior (methods) Columbia University JETT

  13. BlueJ • tool for teaching object-oriented programming and Java without much overhead (task overloading for student) • development environment designed at Monash University, Australia. Columbia University JETT

  14. Shapes…. • BlueJExamples BlueJ Time Activity_01 (#1,2) BlueJ can be downloaded FREE Some materials and examples are from Objects First with Java by Barnes and Kölling goto BlueJ Columbia University JETT

  15. Shapes…summary after experimentation • What we see in this BlueJ project: • ClassesCircle, Square, Triangle, Canvas • creation of an object : call to Constructor • invoking (calling) methods • passing parameters • method signatures • data types : int, String, and boolean • multiple instances of the same class • changing the state of the object Columbia University JETT

  16. Picture…Summary after Experimentation • How many objects? • How many constructors? • What happened when you commented out the code for the constructor? Columbia University JETT

  17. Picture • "Construct" creates an instance of the Picture class • a Picture • consists of 5 objects • 2 squares, 1 triangle, 1 circle, 1 canvas • Objects can create other objects! Columbia University JETT

  18. Constructors • If no constructor is included in the class, Java provides one. • if values are not set, default values for instance variables of a class are: • 0 for int • 0.0 for double • null for objects • false for boolean • If a constructor is included in the class, all bets are off (no default constructor is provided)! Columbia University JETT

  19. Comments • BlueJ : Interface • JavaDoc creates this document • (more on this later). Columbia University JETT

  20. Comments, White space • Comments • // comment on one line • /*……*/ comment over several lines • /** ……*/ javadoc comment • White space • ignored; use white space for clarity of code Columbia University JETT

  21. Javadoc some keywords : @author* @version* @param* @return* @throws* Columbia University JETT

  22. JAVA Language Basics Columbia University JETT

  23. Some basics: • Primitive types • logical : boolean • no casts between boolean and int • texual: char • integral: byte, short, int, long • floating:double, float Columbia University JETT

  24. (not part of AP Subset) • Integral data types • byte 8 bits -27 to 27 – 1 • short 16 bits -215 to 215 – 1 • int 32 bits -231 to 231 – 1 • long 64 bits -263 to 263 – 1 • default is int Columbia University JETT

  25. (not part of AP Subset) • Floating Point data types • float 32 bits • double 64 bits • default is double Columbia University JETT

  26. Everything else • Everything that is not a primitive type is a reference type • A reference variable contains a reference to an object • Circle sun = new Circle(); • allocates memory for this new object • initializes attributes sun • executes constructor • assigns reference to reference variable Columbia University JETT

  27. Order of Precedence • Separators • . IMPORTANT • [] • () • ; • , Columbia University JETT

  28. Operator Order of Precedence(associativity – operators) Columbia University JETT

  29. Conditionals – branchingif –else if statements if (boolean expression){ statement or block; } if (boolean expression){ statement or block; } else if (boolean expression) { statement or block; } else{ statement or block; } Columbia University JETT

  30. Conditionals – branchingswitch statements (not part of AP subset) switch (expression){ case constant2: statements; break case constant3: statements; break; default: statements; break; } note: expression must be assignment compatible with int. (byte, char, short are OK; double, long, Strings not OK) Columbia University JETT

  31. Looping for(startExp; booleanExp; endExp) { statement or block; } while(boolean expression){ statement or block; } Columbia University JETT

  32. Teaching Tip: • Company Rules: • Have a permanent place in your classroom with your Company Rules listed. • That way everyone knows what is expected and no one will be needlessly fired! Columbia University JETT

  33. Java supportsshort circuit evaluation if ((n != 0) && (x < 1/n)) • evaluates first expression • if OK then evaluates second expression Columbia University JETT

  34. Looping do{ statement or block; } while(boolean expression) (not part of AP subset) Columbia University JETT

  35. Looping • When do you use each loop? • for • while • do Columbia University JETT

  36. Special Loop Flow Control-- • return is part of AP subset Columbia University JETT

  37. More with BlueJ • More with BlueJ – TicketMachines • NaiveTicketMachine • attributes (fields) • private int price; //price of ticket • private int balance; //how much $ put in for ticket • private int total; //total $ in machine • Constructor • Methods • insertMoney • printTicket • getBalance • getPrice Columbia University JETT

  38. Naïve TicketMachine • Is there a default constructor? • How many constructors are there? • What do we mean by a "method signature?" • What methods are the accessors? • What methods are the modifiers (mutators)? • What's wrong with this ticket machine? • What enhancements can we make? Columbia University JETT

  39. Scope of variables • Fields (attributes) • private • Formal parameters • initialized by actual parameters • Local variables Columbia University JETT

  40. arraysPart of AP CS A subset • one- and two- dimensional arrays • more on two-dimensional arrays later (AB only) • arrays of primitive types • arrays of objects Columbia University JETT

  41. arrays • Declaring an array variable is similar to declaring other variables. • int[] a; //array of ints; • double[] b; //array of doubles; • String[] c; //array of Strings; • Does not cause Java to allocate memory (space). Columbia University JETT

  42. arrays • To allocate memory (space) for your array. final int MAXNUM = 5; int [] a = new int [10]; double[] b = new double[20]; String[] c = new String[MAXNUM]; Columbia University JETT

  43. array length • If a is an array variable, • a.length represents the length of the array a. Columbia University JETT

  44. array processingassume an array of ints • rate each of the following on a scale of 1 – 5 where 5 is very hard to implement : • fill: value of array element filled with index of array element • find largest value in array • find smallest value in array • find sum of values in array • search for item in array • sort items in an array • count occurrences of a value in an array • insert an item into a sorted array Columbia University JETT

  45. Initializing arrays • Initialization of named arrays: int[] a = {1,2,3}; • Declaration without initialization gets default values. int[] a = new int[10]; filled with 0s. Columbia University JETT

  46. LabArrayClass class • attributes are private • private String instructor; • private String room; • private String timeAndDay; • private Student[] students; • private int currentNumberOfStudents • methods are public (for now) • Constructors • Accessors • Mutators Columbia University JETT

  47. Student[] students; • private field • each LabArrayClass object has this • array of Students • What does this mean? • What is an array? Columbia University JETT

  48. A look at the constructor public LabArrayClass(int maxNumberOfStudents) { instructor = "unknown"; room = "unknown"; timeAndDay = "unknown"; students = new Student[maxNumberOfStudents]; currentNumberOfStudents=0; } An array is a fixed-length collection of values of the same type. Access array elements by indexing : students[3] First element in the array has index 0. Columbia University JETT

  49. Comparing array elements • Comparing elements in arrays of primitives is not a problem. • comparison operators are defined. • What about arrays of Strings? • Strings are Objects Columbia University JETT

  50. Suppose we wanted to "search?" • We need to search for a String, key… • Look at each element in the array of Strings and check to see if it contains the same characters as key. Columbia University JETT

More Related