Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Getting Started with Java (TCF 2014)

683 views

Published on

An introduction to the Java programming language that includes a brief history of Java, how Java evolved, and how to get started using Java.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Getting Started with Java (TCF 2014)

  1. 1. 1 Getting Started with Java Trenton Computer Festival March 15, 2014 Michael P. Redlich @mpredli about.me/mpredli/ Sunday, March 16, 14
  2. 2. Who’s Mike? • BS in CS from • “Petrochemical Research Organization” • Ai-Logix, Inc. (now AudioCodes) • Amateur Computer Group of New Jersey • Publications • Presentations 2 Sunday, March 16, 14
  3. 3. Objectives (1) • What is Java?? • Evolution of Java • Features of Java • Review of Object-Oriented Programming (OOP) 3 Sunday, March 16, 14
  4. 4. Objectives (2) • Getting Started with Java • introduction to the Java class mechanism • how to implement Java classes • Live Demos (yea!) • Java Resources 4 Sunday, March 16, 14
  5. 5. What is Java? • “Java is C++ without guns, knives, and clubs.” James Gosling,“father” of Java, Sun Microsystems • “Java is simple, object-oriented, distributed, interpreted, robust, secure, architecture neutral, portable, high performance, multithreaded dynamic language.” Sun Microsystems 5 Sunday, March 16, 14
  6. 6. Evolution of Java (1) • Created by James Gosling (with Patrick Naughton) • Sun Microsystems • 1991 - originally named “Oak” • consumer applications • architecture agnostic • object-oriented 6 Sunday, March 16, 14
  7. 7. Evolution of Java (2) • 1994 - Project “*7” dissolved • but in the meantime... • 1995 - Java introduced at Sun World ’95 • HotJava browser 7 Sunday, March 16, 14
  8. 8. Features of Java • Object-Oriented Programming (OOP) Language • Documentation Generation • Applets and Applications • Comprehensive Exception Handling • Java Database Connectivity (JDBC) • Java Beans • Enterprise Java Beans • No pointers!! 8 Sunday, March 16, 14
  9. 9. OOP Review (1) • Programming Paradigm • Four (4) Main Attributes • data encapsulation • data abstraction • inheritance • polymorphism 9 Sunday, March 16, 14
  10. 10. OOP Review (2) • Abstract Data Type (ADT) • user-defined data type • use of objects through functions (methods) without knowing the internal representation 10 Sunday, March 16, 14
  11. 11. OOP Review (3) • Interface • functions (methods) provided in the ADT that allow access to data • Implementation • underlying data structure(s) and business logic within the ADT 11 Sunday, March 16, 14
  12. 12. OOP Review (4) • Class • Defines a model • Declares attributes • Declares behavior • Is an ADT • Object • Is an instance of a class • Has state • Has behavior • May have many unique objects of the same class 12 Sunday, March 16, 14
  13. 13. Advantages of OOP • Interface can (and should) remain unchanged when improving implementation • Encourages modularity in application development • Better maintainability of code • Code reuse • Emphasis on what, not how 13 Sunday, March 16, 14
  14. 14. Some Java Keywords • class • new • private, protected, public, package • try, throw, catch, finally • final • extends • implements • abstract • interface 14 Sunday, March 16, 14
  15. 15. Classes (1) • A user-defined abstract data type • Extension of C structs • Contain: • constructor • data members and member functions (methods) 15 Sunday, March 16, 14
  16. 16. Classes (2) • Dynamic object instantiation • Multiple Constructors: • Sports(); • Sports(String,int,int); • Sports(float,String,int); 16 Sunday, March 16, 14
  17. 17. Classes (3) • Abstract Classes • contain at least one pure virtual member function (C++) • contain at least one abstract method (Java) 17 Sunday, March 16, 14
  18. 18. Abstract Classes • Pure virtual member function (C++) • virtual void draw() = 0; • Abstract method (Java) • public abstract void draw(); 18 Sunday, March 16, 14
  19. 19. Class Inheritance 19 Sunday, March 16, 14
  20. 20. 20 // Sports class (partial listing) public class Sports { private String team; private int win; public Sports() { // define default constructor here... } public Sports(String team,int win,int loss) { // define primary constructor here... } public int getWin() { return win; } } Sunday, March 16, 14
  21. 21. 21 // Baseball class (partial listing) class Baseball extends Sports { public Baseball() { // define default constructor here... } Baseball(String team,int win,int loss) { // define primary constructor here... } } Sunday, March 16, 14
  22. 22. Dynamic Instantiation • Object creation: • Baseball mets = new Baseball(“Mets”,97,65); • Access to public member functions: • mets.getWin(); // returns 97 22 Sunday, March 16, 14
  23. 23. Deleting Objects Baseball mets = new Baseball(“Mets”,97,65); // automatic garbage collection or: System.gc(); // explicit call 23 Sunday, March 16, 14
  24. 24. Java Development Kit (JDK) • Available from Oracle web site • java.sun.com • Java SE (standard edition) • latest version - Java 7, update 51 • Documentation in full HTML format 24 Sunday, March 16, 14
  25. 25. Working with Java (1) • Source code • .java extension • Intermediate bytecode • .class extension generated after successful compilation • Bytecode interprested by JavaVirtual Machine (JVM) 25 Sunday, March 16, 14
  26. 26. Working with Java (2) • Setup environment and path: • set JAVA_HOME=path • set PATH=%PATH%;%JAVA_HOME%bin • export JAVA_HOME=path • export PATH=$JAVA_HOME/bin 26 Sunday, March 16, 14
  27. 27. Working with Java (3) • Compile Java source code: • javac -Xlint:all -d path filename.java • Run the application: • java -classpath path filename 27 Sunday, March 16, 14
  28. 28. Working with Java (4) • Run the applet: • in browser via HTML file within <applet></ applet> tags • appletviewer path filename.html 28 Sunday, March 16, 14
  29. 29. Directories and Packages (2) • Consistent directory structure • source code (*.java) • byte code (*.class) • Map directories with package name • under the src folder 29 Sunday, March 16, 14
  30. 30. Directories and Packages (2) /usr/local/apps/java-apps ↳java-apps ↳tcf ↳hello ↳src ↳org ↳tcf ↳hello 30 package org.tcf.hello;➜ Sunday, March 16, 14
  31. 31. Live Demo! 31 Sunday, March 16, 14
  32. 32. Java IDEs (1) • IntelliJ • jetbrains.com/idea • Eclipse • eclipse.org 32 Sunday, March 16, 14
  33. 33. Java IDEs (2) • NetBeans • netbeans.org • JBuilder • embarcadero.com/products/ jbuilder 33 Sunday, March 16, 14
  34. 34. Local Java User Groups (1) • ACGNJ Java Users Group • facilitated by Mike Redlich • javasig.org • Princeton Java Users Group • facilitated byYakov Fain • meetup.com/NJFlex 34 Sunday, March 16, 14
  35. 35. Local Java User Groups (2) • NewYork Java SIG • facilitated by Frank Greco • javasig.com • Capital District Java Developers Network • facilitated by Dan Patsey • cdjdn.com 35 Sunday, March 16, 14
  36. 36. Further Reading 36 Sunday, March 16, 14
  37. 37. Upcoming Events (1) • Trenton Computer Festival • March 14-15, 2014 • tcf-nj.org • Emerging Technologies for the Enterprise • April 22-23, 2014 • phillyemergingtech.com 37 Sunday, March 16, 14
  38. 38. 38 Upcoming Events (2) Sunday, March 16, 14
  39. 39. 39 Thanks! mike@redlich.net @mpredli javasig.org Sunday, March 16, 14

×