SlideShare a Scribd company logo
1 of 17
support@myassignmenthelpers.com
http://www.myassignmenthelpers.com/
The javadoc program generates HTML API
documentation from the “javadoc” style
comments in your code.
2
/* This kind of comment can span multiple lines */
// This kind is to the end of the line
/**
* This kind of comment is a special
* ‘javadoc’ style comment
*/
3
class Person {
String name;
int age;
void birthday ( ) {
age++;
System.out.println (name +
' is now ' + age);
}
}
Variable
Method
 As in C/C++, scope is determined by the placement of curly
braces {}.
 A variable defined within a scope is available only to the end of
that scope.
4
{ int x = 12;
/* only x available */
{ int q = 96;
/* both x and q available */
}
/* only x available */
/* q “out of scope” */
}
{ int x = 12;
{ int x = 96; /* illegal */
}
}
This is ok inC/C++ but not in Java.
 Person mary = new Person ( );
 int myArray[ ] = new int[5];
 int myArray[ ] = {1, 4, 9, 16, 25};
 String languages [ ] = {"Prolog", "Java"};
 Since arrays are objects they are allocated dynamically
 Arrays, like all objects, are subject to garbage collection
when no more references remain
 so fewer memory leaks
 Java doesn’t have pointers!
5
 Java objects don’t have the same lifetimes as
primitives.
 When you create a Java object using new, it
hangs around past the end of the scope.
 Here, the scope of name s is delimited by the
{}s but the String object hangs around until
GC’d
{
String s = new String("a
string");
} /* end of scope */
6
 Java methods are like C/C++ functions. General case:
returnType methodName ( arg1, arg2, … argN) {
methodBody
}
The return keyword exits a method optionally with a value
int storage(String s) {return s.length() * 2;}
boolean flag() { return true; }
float naturalLogBase() { return 2.718f; }
void nothing() { return; }
void nothing2() {}
7
 Java methods and variables can be declared static
 These exist independent of any object
 This means that a Class’s
 static methods can be called even if no objects of that
class have been created and
 static data is “shared” by all instances (i.e., one rvalue
per class instead of one per instance
8
class StaticTest {static int i = 47;}
StaticTest st1 = new StaticTest();
StaticTest st2 = new StaticTest();
// st1.i == st2.I == 47
StaticTest.i++; // or st1.I++ or st2.I++
// st1.i == st2.I == 48
 Subscripts always start at 0 as in C
 Subscript checking is done automatically
 Certain operations are defined on arrays of
objects, as for other classes
 e.g. myArray.length == 5
9
/**
* This program computes the factorial of a number
*/
public class Factorial { // Define a class
public static void main(String[] args) { // The program starts here
int input = Integer.parseInt(args[0]); // Get the user's input
double result = factorial(input); // Compute the factorial
System.out.println(result); // Print out the result
} // The main() method ends here
public static double factorial(int x) { // This method computes x!
if (x < 0) // Check for bad input
return 0.0; // if bad, return 0
double fact = 1.0; // Begin with an initial value
while(x > 1) { // Loop until x equals 1
fact = fact * x; // multiply by x each time
x = x - 1; // and then decrement x
} // Jump back to the star of
loop
return fact; // Return the result
} // factorial() ends here
} // The class ends here
10
From Java in a Nutshell
 The class is the fundamental concept in JAVA (and other
OOPLs)
 A class describes some data object(s), and the operations
(or methods) that can be applied to those objects
 Every object and method in Java belongs to a class
 Classes have data (fields) and code (methods) and
classes (member classes or inner classes)
 Static methods and fields belong to the class itself
 Others belong to instances
11
 Classes should define one or more methods to create or
construct instances of the class
 Their name is the same as the class name
 note deviation from convention that methods begin with lower
case
 Constructors are differentiated by the number and types of
their arguments
 An example of overloading
 If you don’t define a constructor, a default one will be
created.
 Constructors automatically invoke the zero argument
constructor of their superclass when they begin (note that
this yields a recursive process!)
12
 Class hierarchies reflect subclass-superclass relations among
classes.
 One arranges classes in hierarchies:
 A class inherits instance variables and instance methods from all of its
superclasses. Tree -> BinaryTree -> BST
 You can specify only ONE superclass for any class.
 When a subclass-superclass chain contains multiple instance
methods with the same signature (name, arity, and argument
types), the one closest to the target instance in the subclass-
superclass chain is the one executed.
 All others are shadowed/overridden.
 Something like multiple inheritance can be done via interfaces
(more on this later)
 What’s the superclass of a class defined without an extends
clause?
13
 Data-hiding or encapsulation is an important
part of the OO paradigm.
 Classes should carefully control access to
their data and methods in order to
 Hide the irrelevant implementation-level details so
they can be easily changed
 Protect the class against accidental or malicious
damage.
 Keep the externally visible class simple and easy to
document
 Java has a simple access control mechanism
to help with encapsulation
 Modifiers: public, protected, private, and package
(default) 14
 Access to packages
 Java offers no control mechanisms for packages.
 If you can find and read the package you can access it
 Access to classes
 All top level classes in package P are accessible
anywhere in P
 All public top-level classes in P are accessible
anywhere
 Access to class members (in class C in package P)
 Public: accessible anywhere C is accessible
 Protected: accessible in P and to any of C’s subclasses
 Private: only accessible within class C
 Package: only accessible in P (the default)
15
 Abstract vs. concrete classes
 Abstract classes can not be instantiated
public abstract class shape { }
 An abstract method is a method w/o a body
public abstract double area();
 (Only)Abstract classes can have abstract
methods
 In fact, any class with an abstract method is
automatically an abstract class
16
 No global variables
 class variables and methods may be applied to
any instance of an object
 methods may have local (private?) variables
 No pointers
 but complex data objects are “referenced”
 Other parts of Java are borrowed from PL/I,
Modula, and other languages
17

More Related Content

What's hot

Inheritance and Polymorphism Java
Inheritance and Polymorphism JavaInheritance and Polymorphism Java
Inheritance and Polymorphism JavaM. Raihan
 
Object oriented programming in java
Object oriented programming in javaObject oriented programming in java
Object oriented programming in javaElizabeth alexander
 
java-06inheritance
java-06inheritancejava-06inheritance
java-06inheritanceArjun Shanka
 
Corejava Training in Bangalore Tutorial
Corejava Training in Bangalore TutorialCorejava Training in Bangalore Tutorial
Corejava Training in Bangalore Tutorialrajkamaltibacademy
 
Object Oriented Programming with Java
Object Oriented Programming with JavaObject Oriented Programming with Java
Object Oriented Programming with Javabackdoor
 
Classes and Objects in C#
Classes and Objects in C#Classes and Objects in C#
Classes and Objects in C#Adeel Rasheed
 
Polymorphism presentation in java
Polymorphism presentation in javaPolymorphism presentation in java
Polymorphism presentation in javaAhsan Raja
 
Java: Inheritance
Java: InheritanceJava: Inheritance
Java: InheritanceTareq Hasan
 
Java class,object,method introduction
Java class,object,method introductionJava class,object,method introduction
Java class,object,method introductionSohanur63
 

What's hot (20)

Classes&amp;objects
Classes&amp;objectsClasses&amp;objects
Classes&amp;objects
 
Polymorphism in java
Polymorphism in javaPolymorphism in java
Polymorphism in java
 
Inheritance and Polymorphism Java
Inheritance and Polymorphism JavaInheritance and Polymorphism Java
Inheritance and Polymorphism Java
 
Object oriented programming in java
Object oriented programming in javaObject oriented programming in java
Object oriented programming in java
 
java-06inheritance
java-06inheritancejava-06inheritance
java-06inheritance
 
Corejava Training in Bangalore Tutorial
Corejava Training in Bangalore TutorialCorejava Training in Bangalore Tutorial
Corejava Training in Bangalore Tutorial
 
Object Oriented Programming with Java
Object Oriented Programming with JavaObject Oriented Programming with Java
Object Oriented Programming with Java
 
Classes and Objects in C#
Classes and Objects in C#Classes and Objects in C#
Classes and Objects in C#
 
Introduction to OOP(in java) BY Govind Singh
Introduction to OOP(in java)  BY Govind SinghIntroduction to OOP(in java)  BY Govind Singh
Introduction to OOP(in java) BY Govind Singh
 
Classes and objects in java
Classes and objects in javaClasses and objects in java
Classes and objects in java
 
C# Types of classes
C# Types of classesC# Types of classes
C# Types of classes
 
Polymorphism presentation in java
Polymorphism presentation in javaPolymorphism presentation in java
Polymorphism presentation in java
 
CLASS & OBJECT IN JAVA
CLASS & OBJECT  IN JAVACLASS & OBJECT  IN JAVA
CLASS & OBJECT IN JAVA
 
Unit 4 Java
Unit 4 JavaUnit 4 Java
Unit 4 Java
 
Java: Inheritance
Java: InheritanceJava: Inheritance
Java: Inheritance
 
Generics in java
Generics in javaGenerics in java
Generics in java
 
Java Generics
Java GenericsJava Generics
Java Generics
 
C# classes objects
C#  classes objectsC#  classes objects
C# classes objects
 
Java class,object,method introduction
Java class,object,method introductionJava class,object,method introduction
Java class,object,method introduction
 
Inner classes in java
Inner classes in javaInner classes in java
Inner classes in java
 

Viewers also liked

Programming Mobile Applications for Android Handheld Systems: Part 1
Programming Mobile Applications for Android Handheld Systems: Part 1Programming Mobile Applications for Android Handheld Systems: Part 1
Programming Mobile Applications for Android Handheld Systems: Part 1Luca Invernizzi
 
An Introduction to Interactive Programming in Python (Part 2)
An Introduction to Interactive Programming in Python (Part 2)An Introduction to Interactive Programming in Python (Part 2)
An Introduction to Interactive Programming in Python (Part 2)Luca Invernizzi
 
Lo3 summary report
Lo3 summary reportLo3 summary report
Lo3 summary reportjoshuah649
 
Curriculum builder directions
Curriculum builder directionsCurriculum builder directions
Curriculum builder directionsRu Story Huffman
 
#ILIB15 : De BA1 à MA2, que de changements, d'évolutions, de différences !
#ILIB15 : De BA1 à MA2, que de changements, d'évolutions, de différences !#ILIB15 : De BA1 à MA2, que de changements, d'évolutions, de différences !
#ILIB15 : De BA1 à MA2, que de changements, d'évolutions, de différences !Sophie Fally
 
Usable Security
Usable SecurityUsable Security
Usable SecurityRohit Rao
 
Autonomii locale şi instituţii centrale în spaţiul românesc
Autonomii locale şi instituţii centrale în spaţiul românescAutonomii locale şi instituţii centrale în spaţiul românesc
Autonomii locale şi instituţii centrale în spaţiul românescStănescu Cătălin
 

Viewers also liked (14)

Evaluación
EvaluaciónEvaluación
Evaluación
 
Programming Mobile Applications for Android Handheld Systems: Part 1
Programming Mobile Applications for Android Handheld Systems: Part 1Programming Mobile Applications for Android Handheld Systems: Part 1
Programming Mobile Applications for Android Handheld Systems: Part 1
 
An Introduction to Interactive Programming in Python (Part 2)
An Introduction to Interactive Programming in Python (Part 2)An Introduction to Interactive Programming in Python (Part 2)
An Introduction to Interactive Programming in Python (Part 2)
 
Coursera usablesec 2015
Coursera usablesec 2015Coursera usablesec 2015
Coursera usablesec 2015
 
Software Security
Software SecuritySoftware Security
Software Security
 
Lo3 summary report
Lo3 summary reportLo3 summary report
Lo3 summary report
 
Curriculum builder directions
Curriculum builder directionsCurriculum builder directions
Curriculum builder directions
 
HSG_101
HSG_101HSG_101
HSG_101
 
3. siklus sel
3. siklus sel3. siklus sel
3. siklus sel
 
#ILIB15 : De BA1 à MA2, que de changements, d'évolutions, de différences !
#ILIB15 : De BA1 à MA2, que de changements, d'évolutions, de différences !#ILIB15 : De BA1 à MA2, que de changements, d'évolutions, de différences !
#ILIB15 : De BA1 à MA2, que de changements, d'évolutions, de différences !
 
Kroll ontrack
Kroll ontrackKroll ontrack
Kroll ontrack
 
Usable Security
Usable SecurityUsable Security
Usable Security
 
2.0
2.02.0
2.0
 
Autonomii locale şi instituţii centrale în spaţiul românesc
Autonomii locale şi instituţii centrale în spaţiul românescAutonomii locale şi instituţii centrale în spaţiul românesc
Autonomii locale şi instituţii centrale în spaţiul românesc
 

Similar to Java assignment help

Similar to Java assignment help (20)

Java02
Java02Java02
Java02
 
Java
JavaJava
Java
 
Java
JavaJava
Java
 
Core java concepts
Core java concepts Core java concepts
Core java concepts
 
Core Java
Core JavaCore Java
Core Java
 
Java Concepts
Java ConceptsJava Concepts
Java Concepts
 
Java interview questions
Java interview questionsJava interview questions
Java interview questions
 
Java Basics
Java BasicsJava Basics
Java Basics
 
Java basic
Java basicJava basic
Java basic
 
Java basic tutorial
Java basic tutorialJava basic tutorial
Java basic tutorial
 
Best Core Java Training In Bangalore
Best Core Java Training In BangaloreBest Core Java Training In Bangalore
Best Core Java Training In Bangalore
 
Java 06
Java 06Java 06
Java 06
 
Core java concepts
Core java  conceptsCore java  concepts
Core java concepts
 
Java PRESENTATION(PACKAGES,CLASSES,VARIABLES,FLOW CONTROL,EXCEPTION)
Java PRESENTATION(PACKAGES,CLASSES,VARIABLES,FLOW CONTROL,EXCEPTION)Java PRESENTATION(PACKAGES,CLASSES,VARIABLES,FLOW CONTROL,EXCEPTION)
Java PRESENTATION(PACKAGES,CLASSES,VARIABLES,FLOW CONTROL,EXCEPTION)
 
Introduction to java
Introduction to javaIntroduction to java
Introduction to java
 
Java Basics
Java BasicsJava Basics
Java Basics
 
Sonu wiziq
Sonu wiziqSonu wiziq
Sonu wiziq
 
Object oriented concepts
Object oriented conceptsObject oriented concepts
Object oriented concepts
 
9781439035665 ppt ch10
9781439035665 ppt ch109781439035665 ppt ch10
9781439035665 ppt ch10
 
JAVA CONCEPTS AND PRACTICES
JAVA CONCEPTS AND PRACTICESJAVA CONCEPTS AND PRACTICES
JAVA CONCEPTS AND PRACTICES
 

Recently uploaded

ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTiammrhaywood
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxOH TEIK BIN
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Educationpboyjonauth
 
Types of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptxTypes of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptxEyham Joco
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentInMediaRes1
 
Gas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptxGas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptxDr.Ibrahim Hassaan
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPCeline George
 
AmericanHighSchoolsprezentacijaoskolama.
AmericanHighSchoolsprezentacijaoskolama.AmericanHighSchoolsprezentacijaoskolama.
AmericanHighSchoolsprezentacijaoskolama.arsicmarija21
 
Atmosphere science 7 quarter 4 .........
Atmosphere science 7 quarter 4 .........Atmosphere science 7 quarter 4 .........
Atmosphere science 7 quarter 4 .........LeaCamillePacle
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxNirmalaLoungPoorunde1
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon AUnboundStockton
 
Quarter 4 Peace-education.pptx Catch Up Friday
Quarter 4 Peace-education.pptx Catch Up FridayQuarter 4 Peace-education.pptx Catch Up Friday
Quarter 4 Peace-education.pptx Catch Up FridayMakMakNepo
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceSamikshaHamane
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptxSherlyMaeNeri
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Celine George
 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomnelietumpap1
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️9953056974 Low Rate Call Girls In Saket, Delhi NCR
 

Recently uploaded (20)

ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
 
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
 
Rapple "Scholarly Communications and the Sustainable Development Goals"
Rapple "Scholarly Communications and the Sustainable Development Goals"Rapple "Scholarly Communications and the Sustainable Development Goals"
Rapple "Scholarly Communications and the Sustainable Development Goals"
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptx
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Education
 
Types of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptxTypes of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptx
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media Component
 
Gas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptxGas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptx
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERP
 
AmericanHighSchoolsprezentacijaoskolama.
AmericanHighSchoolsprezentacijaoskolama.AmericanHighSchoolsprezentacijaoskolama.
AmericanHighSchoolsprezentacijaoskolama.
 
Raw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptxRaw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptx
 
Atmosphere science 7 quarter 4 .........
Atmosphere science 7 quarter 4 .........Atmosphere science 7 quarter 4 .........
Atmosphere science 7 quarter 4 .........
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptx
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon A
 
Quarter 4 Peace-education.pptx Catch Up Friday
Quarter 4 Peace-education.pptx Catch Up FridayQuarter 4 Peace-education.pptx Catch Up Friday
Quarter 4 Peace-education.pptx Catch Up Friday
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in Pharmacovigilance
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptx
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17
 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choom
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
 

Java assignment help

  • 2. The javadoc program generates HTML API documentation from the “javadoc” style comments in your code. 2 /* This kind of comment can span multiple lines */ // This kind is to the end of the line /** * This kind of comment is a special * ‘javadoc’ style comment */
  • 3. 3 class Person { String name; int age; void birthday ( ) { age++; System.out.println (name + ' is now ' + age); } } Variable Method
  • 4.  As in C/C++, scope is determined by the placement of curly braces {}.  A variable defined within a scope is available only to the end of that scope. 4 { int x = 12; /* only x available */ { int q = 96; /* both x and q available */ } /* only x available */ /* q “out of scope” */ } { int x = 12; { int x = 96; /* illegal */ } } This is ok inC/C++ but not in Java.
  • 5.  Person mary = new Person ( );  int myArray[ ] = new int[5];  int myArray[ ] = {1, 4, 9, 16, 25};  String languages [ ] = {"Prolog", "Java"};  Since arrays are objects they are allocated dynamically  Arrays, like all objects, are subject to garbage collection when no more references remain  so fewer memory leaks  Java doesn’t have pointers! 5
  • 6.  Java objects don’t have the same lifetimes as primitives.  When you create a Java object using new, it hangs around past the end of the scope.  Here, the scope of name s is delimited by the {}s but the String object hangs around until GC’d { String s = new String("a string"); } /* end of scope */ 6
  • 7.  Java methods are like C/C++ functions. General case: returnType methodName ( arg1, arg2, … argN) { methodBody } The return keyword exits a method optionally with a value int storage(String s) {return s.length() * 2;} boolean flag() { return true; } float naturalLogBase() { return 2.718f; } void nothing() { return; } void nothing2() {} 7
  • 8.  Java methods and variables can be declared static  These exist independent of any object  This means that a Class’s  static methods can be called even if no objects of that class have been created and  static data is “shared” by all instances (i.e., one rvalue per class instead of one per instance 8 class StaticTest {static int i = 47;} StaticTest st1 = new StaticTest(); StaticTest st2 = new StaticTest(); // st1.i == st2.I == 47 StaticTest.i++; // or st1.I++ or st2.I++ // st1.i == st2.I == 48
  • 9.  Subscripts always start at 0 as in C  Subscript checking is done automatically  Certain operations are defined on arrays of objects, as for other classes  e.g. myArray.length == 5 9
  • 10. /** * This program computes the factorial of a number */ public class Factorial { // Define a class public static void main(String[] args) { // The program starts here int input = Integer.parseInt(args[0]); // Get the user's input double result = factorial(input); // Compute the factorial System.out.println(result); // Print out the result } // The main() method ends here public static double factorial(int x) { // This method computes x! if (x < 0) // Check for bad input return 0.0; // if bad, return 0 double fact = 1.0; // Begin with an initial value while(x > 1) { // Loop until x equals 1 fact = fact * x; // multiply by x each time x = x - 1; // and then decrement x } // Jump back to the star of loop return fact; // Return the result } // factorial() ends here } // The class ends here 10 From Java in a Nutshell
  • 11.  The class is the fundamental concept in JAVA (and other OOPLs)  A class describes some data object(s), and the operations (or methods) that can be applied to those objects  Every object and method in Java belongs to a class  Classes have data (fields) and code (methods) and classes (member classes or inner classes)  Static methods and fields belong to the class itself  Others belong to instances 11
  • 12.  Classes should define one or more methods to create or construct instances of the class  Their name is the same as the class name  note deviation from convention that methods begin with lower case  Constructors are differentiated by the number and types of their arguments  An example of overloading  If you don’t define a constructor, a default one will be created.  Constructors automatically invoke the zero argument constructor of their superclass when they begin (note that this yields a recursive process!) 12
  • 13.  Class hierarchies reflect subclass-superclass relations among classes.  One arranges classes in hierarchies:  A class inherits instance variables and instance methods from all of its superclasses. Tree -> BinaryTree -> BST  You can specify only ONE superclass for any class.  When a subclass-superclass chain contains multiple instance methods with the same signature (name, arity, and argument types), the one closest to the target instance in the subclass- superclass chain is the one executed.  All others are shadowed/overridden.  Something like multiple inheritance can be done via interfaces (more on this later)  What’s the superclass of a class defined without an extends clause? 13
  • 14.  Data-hiding or encapsulation is an important part of the OO paradigm.  Classes should carefully control access to their data and methods in order to  Hide the irrelevant implementation-level details so they can be easily changed  Protect the class against accidental or malicious damage.  Keep the externally visible class simple and easy to document  Java has a simple access control mechanism to help with encapsulation  Modifiers: public, protected, private, and package (default) 14
  • 15.  Access to packages  Java offers no control mechanisms for packages.  If you can find and read the package you can access it  Access to classes  All top level classes in package P are accessible anywhere in P  All public top-level classes in P are accessible anywhere  Access to class members (in class C in package P)  Public: accessible anywhere C is accessible  Protected: accessible in P and to any of C’s subclasses  Private: only accessible within class C  Package: only accessible in P (the default) 15
  • 16.  Abstract vs. concrete classes  Abstract classes can not be instantiated public abstract class shape { }  An abstract method is a method w/o a body public abstract double area();  (Only)Abstract classes can have abstract methods  In fact, any class with an abstract method is automatically an abstract class 16
  • 17.  No global variables  class variables and methods may be applied to any instance of an object  methods may have local (private?) variables  No pointers  but complex data objects are “referenced”  Other parts of Java are borrowed from PL/I, Modula, and other languages 17