Successfully reported this slideshow.
Your SlideShare is downloading. ×

Getting Started with Java

More Related Content

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Getting Started with Java

  1. 1. 1 Getting Started with Java Trenton Computer Festival March 17, 2018 Michael P. Redlich @mpredli about.me/mpredli/
  2. 2. Who’s Mike? • BS in CS from • “Petrochemical Research Organization” • Java Queue News Editor, InfoQ • Ai-Logix, Inc. (now AudioCodes) • Amateur Computer Group of New Jersey 2
  3. 3. Objectives (1) • What is Java?? • Evolution of Java • Features of Java • Review of Object-Oriented Programming (OOP) 3
  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
  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
  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
  7. 7. Evolution of Java (2) • 1994 - Project “*7” dissolved • but in the meantime... • 1995 - Java introduced at Sun World ’95 • HotJava browser 7
  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
  9. 9. OOP Review (1) • Programming Paradigm • Four (4) Main Attributes • data encapsulation • data abstraction • inheritance • polymorphism 9
  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
  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
  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
  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
  14. 14. Some Java Keywords • class • new • private, protected, public, package • try, throw, catch, finally • final • extends • implements • abstract • interface 14
  15. 15. Classes (1) • A user-defined abstract data type • Extension of C structs • Contain: • constructor • data members and member functions (methods) 15
  16. 16. Classes (2) • Dynamic object instantiation • Multiple Constructors: • Sports(); • Sports(String,int,int); • Sports(float,String,int); 16
  17. 17. Classes (3) • Abstract Classes • contain at least one pure virtual member function (C++) • contain at least one abstract method (Java) 17
  18. 18. Abstract Classes • Pure virtual member function (C++) • virtual void draw() = 0; • Abstract method (Java) • public abstract void draw(); 18
  19. 19. Class Inheritance 19
  20. 20. Hello,World! 20 source: http://www.codejava.net/java-core/how-to-write-compile-and-run-a-hello-world-java- program-for-beginners
  21. 21. 21 // 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; } }
  22. 22. 22 // 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... } }
  23. 23. Dynamic Instantiation • Object creation: • Baseball mets = new Baseball(“Mets”,97,65); • Access to public member functions: • mets.getWin(); // returns 97 23
  24. 24. Deleting Objects Baseball mets = new Baseball(“Mets”,97,65); // automatic garbage collection or: System.gc(); // explicit call 24
  25. 25. Java Development Kit (JDK) • Available from Oracle web site • java.sun.com • Java SE (standard edition) • latest version - Java 9.0.4 • Java 10 available on March 20, 2018 • Documentation in full HTML format 25
  26. 26. Working with Java (1) • Setup environment and path: • set JAVA_HOME=path • set PATH=%PATH%;%JAVA_HOME%bin • export JAVA_HOME=path • export PATH=$JAVA_HOME/bin 26
  27. 27. Working with Java (2) • Source code • .java extension • Intermediate bytecode • .class extension generated after successful compilation • Bytecode interprested by JavaVirtual Machine (JVM) 27
  28. 28. Working with Java (3) • Compile Java source code: • javac -Xlint:all -d path filename.java • Run the application: • java -classpath path filename 28
  29. 29. Working with Java (4) • Run the applet: • in browser via HTML file within <applet></ applet> tags • appletviewer path filename.html 29
  30. 30. Directories and Packages (2) • Consistent directory structure • source code (*.java) • byte code (*.class) • Map directories with package name • under the src folder 30
  31. 31. Directories and Packages (2) /usr/local/apps/java-apps ↳java-apps ↳tcf ↳hello ↳src ↳org ↳tcf ↳hello 31 package org.tcf.hello;➜
  32. 32. Demo Time… 32
  33. 33. Java IDEs (1) • IntelliJ IDEA 2017.3 •jetbrains.com/idea • stay tuned for version 2018.1 coming soon • Eclipse IDE •eclipse.org/ide 33
  34. 34. Java IDEs (2) • NetBeans 8.2 •netbeans.org • currently being moved from Oracle to Apache 34
  35. 35. 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 35
  36. 36. Local Java User Groups (2) • NYJavaSIG • facilitated by Frank Greco • javasig.com • PhillyJUG • facilitated by Martin Snyder, et. al. • meetup.com/PhillyJUG 36
  37. 37. Local Java User Groups (3) • Capital District Java Developers Network • facilitated by Dan Patsey • cdjdn.com • currently restructuring 37
  38. 38. Further Reading 38
  39. 39. Upcoming Events • ACGNJ Java Users Group • Dr. Venkat Subramaniam • Monday, March 19, 2018 • DorothyYoung Center for the Arts, Room 106 • Drew University • 7:30-9:00pm • “Twelve Ways to Make Code Suck Less” 39
  40. 40. 40 Thanks! mike@redlich.net @mpredli redlich.net slideshare.net/mpredli01 github.com/mpredli01
  41. 41. Upcoming Events • March 17-18, 2017 •tcf-nj.org • April 18-19, 2017 •phillyemergingtech.com 41

×