SlideShare a Scribd company logo
Java$Basics$ 
Dr. Shahid Raza! 1!
Three Java Editions 
• Java Platform, Standard Edition (Java SE) 
• Java Platform, Enterprise Edition (Java EE) 
• Java Platform, Micro Edition (Java ME) 
Lecture 2: Overview: Java Peculiarities 3
The Java Platform, Standard Edition 
(Java SE) 
Lecture 2: Overview: Java Peculiarities 4
Java Platform, Enterprise Edition 
(Java EE) 
• Enterprise Application 
Technologies 
– Enterprise JavaBeans (EJB) 
– J2EE Connector Architecture 
– Java Message Service (JMS) 
• Web Application 
Technologies 
– Java Servlet 
– JavaServer Pages (JSP) 
– JavaServer Faces (JSF) 
– Java Persistence API (JSR) 
• Provides a POJO persistence 
model for object-relational 
mapping. Developed and use 
for EJB, but can be used 
directly 
– Java Transaction API (JTA) 
– JavaMail 
• Management and Security 
Technologies 
– J2EE Application 
Deployment 
– J2EE Management 
– Java Authorization Contract 
for Containers 
Lecture 2: Overview: Java Peculiarities 5
Object.Oriented$Nomenclature$ 
• Class$means$a$category$of$things$ 
– A$class$name$can$be$used$in$Java$as$the$type$of$a$field$or$ 
local$variable$or$as$the$return$type$of$a$func?on$(method)$ 
• Object$means$a$par?cular$item$that$belongs$to$a$ 
class$ 
– Also$called$an$instance$ 
• For$example,$consider$the$following$line:$ 
$ $$ $$$$String s1 = Hello;$ 
– Here,$String$is$the$class,$s1$is$an$instance$variable$of$class$ 
String,$whose$value$is$the$String$object$Hello$$ 
Dr. Shahid Raza! 2!
Example$1:$Instance$Variables$ 
(Fields$or$Data$Members)$ 
class Ship1 { 
public double x, y, speed, direction; 
public String name; 
} 
public class Test1 { 
public static void main(String[] args) { 
Ship1 s1 = new Ship1(); 
s1.x = 0.0; 
s1.y = 0.0; 
s1.speed = 1.0; 
s1.direction = 0.0; // East 
s1.name = Ship1; 
System.out.println(s1.name +  is initially at ( 
+ s1.x + , + s1.y + ).); 
s1.x = s1.x + s1.speed 
* Math.cos(s1.direction * Math.PI / 180.0); 
s1.y = s1.y + s1.speed 
* Math.sin(s1.direction * Math.PI / 180.0); 
System.out.println(s1.name +  has moved to ( 
+ s1.x + , + s1.y + ).); 
} 
} 
Dr. Shahid Raza! 3!
Instance$Variables:$Results$ 
• Compiling$and$Running:$ 
javac Test1.java 
java Test1 
Output:$ 
Ship1 is initially at (1,0). 
Ship2 has moved to (-1.41421,1.41421). 
Dr. Shahid Raza! 4!
Primitive Data Types 
• Much like in C 
– byte 
– short 
– char 
Lecture 2: Overview: Java Peculiarities 21 
– int 
– long 
– float 
– double 
• See Examples in Exercise 0.
Widening Primitive Conversions 
• Do not lose information about the overall 
magnitude of a numeric value. 
From To 
byte short, int, long, float, double 
short int, long, float, double 
char int, long, float, double 
int long, float, double 
long float, double 
float double 
Lecture 2: Overview: Java Peculiarities 22
Narrowing Primitive Conversions 
• May lose information about the overall magnitude of 
a numeric value and may also lose precision. 
From To 
byte char 
short byte, char 
char byte, short 
int byte, short, char 
long byte, short, char, int 
float byte, short, char, int, long 
double byte, short, char, int, long, float 
Lecture 2: Overview: Java Peculiarities 23
Example$1:$Major$Points$ 
• Java$naming$conven?on$ 
• Format$of$class$defini?ons$ 
• Crea?ng$classes$with$new$ 
• Accessing$fields$with$ 
variableName.fieldName$ 
Dr. Shahid Raza! 5!
Java$Naming$Conven?ons$ 
• Leading$uppercase$leTer$in$class$name$ 
public class MyClass { 
... 
} 
• Leading$lowercase$leTer$in$field,$local$ 
variable,$and$method$(func?on)$names$ 
– myField,myVar,myMethod 
Dr. Shahid Raza! 6!
First$Look$at$Java$Classes$ 
• The$general$form$of$a$simple$class$is$ 
modifier class Classname { 
modifier data-type field1; 
modifier data-type field2; 
... 
modifier data-type fieldN; 
modifier Return-Type methodName1(parameters) { 
//statements 
} 
... 
modifier Return-Type methodName2(parameters) { 
//statements 
} 
} 
Dr. Shahid Raza! 7!
Objects$and$References$ 
• Once$a$class$is$defined,$you$can$easily$declare$a$ 
variable$(object$reference)$of$the$class$ 
Ship s1, s2; 
Point start; 
Color blue; 
• Object$references$are$ini?ally$null$$$ 
– The$null$value$is$a$dis?nct$type$in$Java$and$should$ 
not$be$considered$equal$to$zero$$ 
– A$primi?ve$data$type$cannot$be$cast$to$an$object$(use$ 
wrapper$classes)$ 
• The$new$operator$is$required$to$explicitly$create$ 
the$object$that$is$referenced$ 
ClassName variableName = new ClassName();$ 
Dr. Shahid Raza! 8!
Accessing$Instance$Variables$ 
• Use$a$dot$between$the$variable$name$and$the$field$ 
name,$as$follows:$ 
variableName.fieldName$$ 
• For$example,$Java$has$a$built.in$class$called$Point$that$ 
has$x$and$y$fields$ 
Point p = new Point(2, 3); // Build a Point object 
int xSquared = p.x * p.x; // xSquared is 4 
p.x = 7; 
• One$major$excep?on$applies$to$the$access$fields$ 
through$varName.fieldName$rule$ 
– Methods$can$access$fields$of$current$object$without$varName$ 
– This$will$be$explained$when$methods$(func?ons)$are$discussed$ 
Dr. Shahid Raza! 9!
Example$2:$Methods$ 
class Ship2 { 
public double x=0.0, y=0.0, speed=1.0, direction=0.0; 
public String name = UnnamedShip; 
private double degreesToRadians(double degrees) { 
return(degrees * Math.PI / 180.0); 
} 
public void move() { 
double angle = degreesToRadians(direction); 
x = x + speed * Math.cos(angle); 
y = y + speed * Math.sin(angle); 
} 
public void printLocation() { 
System.out.println(name +  is at ( 
+ x + , + y + ).); 
} 
} 
Dr. Shahid Raza! 10!
Methods$(Con?nued)$ 
public class Test2 { 
public static void main(String[] args) { 
Ship2 s1 = new Ship2(); 
s1.name = Ship1; 
Ship2 s2 = new Ship2(); 
s2.direction = 135.0; // Northwest 
s2.speed = 2.0; 
s2.name = Ship2; 
s1.move(); 
s2.move(); 
s1.printLocation(); 
s2.printLocation(); 
} 
} 
• Compiling$and$Running:$ 
javac Test2.java 
java Test2 
• Output:$ 
Ship1 is at (1,0). 
Ship2 is at (-1.41421,1.41421). 
Dr. Shahid Raza! 11!
Example$2:$Major$Points$ 
• Format$of$method$defini?ons$ 
• Methods$that$access$local$fields$ 
• Calling$methods$ 
• Sta?c$methods$ 
• Default$values$for$fields$ 
• public/private$dis?nc?on$ 
Dr. Shahid Raza! 12!
Defining$Methods$ 
(Func?ons$Inside$Classes)$ 
• Basic$method$declara?on:$ 
p u b l i c R e t u r n T y p e m e t h o d N a m e ( ttyyppee12 aarrgg12,, ...) { 
... 
return(something of ReturnType); 
} 
• Excep?on$to$this$format:$if$you$declare$the$return$ 
type$as$void 
– This$special$syntax$that$means$this$method$isnt$ 
going$to$return$a$value$–$it$is$just$going$to$do$some$ 
side$effect$like$prin?ng$on$the$screen$$ 
– In$such$a$case$you$do$not$need$(in$fact,$are$not$ 
permiTed),$a$return$statement$that$includes$a$ 
value$to$be$returned$ 
Dr. Shahid Raza! 13!
Examples$of$Defining$Methods$ 
• Here$are$two$examples:$ 
– The$first$squares$an$integer$$ 
– The$second$returns$the$faster$of$two$Ship$objects,$assuming$that$a$ 
class$called$Ship$has$been$defined$that$has$a$field$named$speed$$ 
// Example function call: 
// int val = square(7); 
public int square(int x) { 
return(x*x); 
} 
// Example function call: 
// Ship faster = fasterShip(someShip, someOtherShip); 
public Ship fasterShip(Ship ship1, Ship ship2) { 
if (ship1.speed  ship2.speed) { 
return(ship1); 
} else { 
return(ship2); 
} 
}$ 
Dr. Shahid Raza! 14!
Excep?on$to$the$Field$Access$with$ 
Dots$Rule$ 
• Normally$access$a$field$via: variableName.fieldName $ 
$ 
but$an$excep?on$is$when$a$method$of$a$class$wants$to$access$ 
fields$of$that$same$class$$ 
– In$that$case,$omit$the$variable$name$and$the$dot$ 
– For$example,$a$move$method$within$the$Ship$class$might$do:$ 
public void move() { 
x = x + speed * Math.cos(direction); 
... 
} 
• Here,$x,$speed,$and$direction$are$all$fields$within$the$class$that$ 
the$move$method$belongs$to,$so$move$can$refer$to$the$fields$directly$ 
$ 
– As$well$see$later,$you$s?ll$can$use$the$variableName.fieldName$ 
approach,$and$Java$invents$a$variable$called$this$that$can$be$used$for$ 
that$purpose$ 
Dr. Shahid Raza! 15!
Sta?c$Methods$ 
• Sta?c$func?ons$are$like$global$func?ons$in$other$ 
languages$ 
$ 
• You$can$call$a$sta?c$method$through$the$class$name$ 
ClassName.functionName(arguments); 
– For$example,$the$Math$class$has$a$sta?c$method$called$cos$ 
that$expects$a$double$precision$number$as$an$argument$ 
• So$you$can$call$Math.cos(3.5)$without$ever$having$any$object$ 
(instance)$of$the$Math$class$ 
Dr. Shahid Raza! 16!
Method$Visibility$ 
• public/private$dis?nc?on$ 
– A$declara?on$of$private$means$that$outside$methods$ 
cant$call$it$..$only$methods$within$the$same$class$can$ 
• Thus,$for$example,$the$main$method$of$the$Test2$class$could$ 
not$have$done$$ 
double x = s1.degreesToRadians(2.2); 
– ATemp?ng$to$do$so$would$have$resulted$in$an$error$at$compile$?me$$ 
– Only$say$public$for$methods$that$you$want%to%guarantee% 
your%class%will%make%available%to%users$$ 
– You$are$free$to$change$or$eliminate$private$methods$ 
without$telling$users$of$your$class$about$ 
$$$ 
Dr. Shahid Raza! 17!
Example$3:$Constructors$ 
class Ship3 { 
public double x, y, speed, direction; 
public String name; 
public Ship3(double x, double y, 
double speed, double direction, 
String name) { 
this.x = x; // this differentiates instance vars 
this.y = y; // from local vars. 
this.speed = speed; 
this.direction = direction; 
this.name = name; 
} 
private double degreesToRadians(double degrees) { 
return(degrees * Math.PI / 180.0); 
} 
... 
Dr. Shahid Raza! 18!
Constructors$(Con?nued)$ 
public void move() { 
double angle = degreesToRadians(direction); 
x = x + speed * Math.cos(angle); 
y = y + speed * Math.sin(angle); 
} 
public void printLocation() { 
System.out.println(name +  is at ( 
+ x + , + y + ).); 
} 
} 
public class Test3 { 
public static void main(String[] args) { 
Ship3 s1 = new Ship3(0.0, 0.0, 1.0, 0.0, Ship1); 
Ship3 s2 = new Ship3(0.0, 0.0, 2.0, 135.0, Ship2); 
s1.move(); 
s2.move(); 
s1.printLocation(); 
s2.printLocation(); 
} 
}$ 
Dr. Shahid Raza! 19!
Constructor$Example:$Results$ 
• Compiling$and$Running: 
javac Test3.java 
java Test3 
• Output:$ 
Ship1 is at (1,0). 
Ship2 is at (-1.41421,1.41421). 
Dr. Shahid Raza! 20!
Example$3:$Major$Points$ 
• Format$of$constructor$defini?ons$ 
• The$this$reference$ 
• Destructors$(not!)$ 
Dr. Shahid Raza! 21!
Constructors$ 
• Constructors$are$special$func?ons$called$when$a$class$is$ 
created$with$new$ 
– Constructors$are$especially$useful$for$supplying$values$of$fields$ 
– Constructors$are$declared$through:$ 
public ClassName(args) { 
... 
} 
– No?ce$that$the$constructor$name$must$exactly$match$the$class$ 
name$ 
– Constructors$have$no$return$type$(not$even$void),$unlike$a$ 
regular$method$ 
– Java$automa?cally$provides$a$zero.argument$only$if$the$class$doesnt$define$its$own$constcrouncstotrru$$ctor$if$and$ 
• Thats$why$you$could$say$ 
Ship1 s1 = new Ship1(); 
$$$in$the$first$example,$even$though$a$constructor$was$never$defined$ 
Dr. Shahid Raza! 22!
The$this$Variable$ 
• The$this$object$reference$can$be$used$inside$any$non.sta?c$ 
method$to$refer$to$the$current$object$ 
• The$common$uses$of$the$this$reference$are:$ 
1. To$pass$a$reference$to$the$current$object$as$a$parameter$to$other$ 
methods$ 
someMethod(this); 
2. To$resolve$name$conflicts$ 
• Using$this$permits$the$use$of$instance$variables$in$methods$that$ 
have$local$variables$with$the$same$name$ 
– Note$that$it$is$only$necessary$to$say$this.fieldName$when$you$ 
have$a$local$variable$and$a$class$field$with$the$same$name;$otherwise$ 
just$use$fieldName$with$no$this 
Dr. Shahid Raza! 23!
Destructors$ 
This Page Intentionally Left Blank 
Dr. Shahid Raza! 24!
Summary$ 
• Class$names$should$start$with$uppercase;$method$names$ 
with$lowercase$ 
• Methods$must$define$a$return$type$or$void$if$no$result$ 
is$returned$ 
• If$a$method$accepts$no$arguments,$the$arg.list$in$the$ 
method$declara?on$is$empty$instead$of$void$as$in$C$ 
• Sta?c$methods$do$not$require$an$instance$of$the$class;$ 
sta?c$methods$can$be$accessed$through$the$class$name$ 
• The$this$reference$in$a$class$refers$to$the$current$ 
object$$ 
• Class$constructors$do$not$declare$a$return$type$ 
• Java$performs$its$own$memory$management$and$ 
requires$no$destructors$ 
$$$ 
Dr. Shahid Raza! 25!

More Related Content

What's hot (20)

PDF
Clojure Deep Dive
Howard Lewis Ship
 
KEY
NOSQL101, Or: How I Learned To Stop Worrying And Love The Mongo!
Daniel Cousineau
 
PDF
What I learned from Seven Languages in Seven Weeks (IPRUG)
Kerry Buckley
 
PPT
Best Guide for Javascript Objects
Muhammad khurram khan
 
PDF
Scala 2013 review
Sagie Davidovich
 
PDF
The Ring programming language version 1.10 book - Part 103 of 212
Mahmoud Samir Fayed
 
PDF
V8 hidden class and inline cache
Fanis Prodromou
 
PDF
Scaladroids: Developing Android Apps with Scala
Ostap Andrusiv
 
PDF
Hello Swift Final 5/5 - Structures and Classes
Cody Yun
 
PDF
Solr & Lucene @ Etsy by Gregg Donovan
Gregg Donovan
 
PDF
Dart
anandvns
 
PDF
SOLID Ruby SOLID Rails
Michael Mahlberg
 
PDF
OSDC.fr 2012 :: Cascalog : progammation logique pour Hadoop
Publicis Sapient Engineering
 
KEY
Scala for scripting
michid
 
PDF
Functional Object-Oriented Imperative Scala / 関数型オブジェクト指向命令型 Scala by Sébasti...
scalaconfjp
 
PDF
Postobjektové programovanie v Ruby
Jano Suchal
 
PDF
Erlang for data ops
mnacos
 
ODP
Scala traits training by Sanjeev Kumar @Kick Start Scala traits & Play, organ...
Sanjeev_Knoldus
 
PDF
Solr @ Etsy - Apache Lucene Eurocon
Giovanni Fernandez-Kincade
 
KEY
循環参照のはなし
Masahiro Honma
 
Clojure Deep Dive
Howard Lewis Ship
 
NOSQL101, Or: How I Learned To Stop Worrying And Love The Mongo!
Daniel Cousineau
 
What I learned from Seven Languages in Seven Weeks (IPRUG)
Kerry Buckley
 
Best Guide for Javascript Objects
Muhammad khurram khan
 
Scala 2013 review
Sagie Davidovich
 
The Ring programming language version 1.10 book - Part 103 of 212
Mahmoud Samir Fayed
 
V8 hidden class and inline cache
Fanis Prodromou
 
Scaladroids: Developing Android Apps with Scala
Ostap Andrusiv
 
Hello Swift Final 5/5 - Structures and Classes
Cody Yun
 
Solr & Lucene @ Etsy by Gregg Donovan
Gregg Donovan
 
Dart
anandvns
 
SOLID Ruby SOLID Rails
Michael Mahlberg
 
OSDC.fr 2012 :: Cascalog : progammation logique pour Hadoop
Publicis Sapient Engineering
 
Scala for scripting
michid
 
Functional Object-Oriented Imperative Scala / 関数型オブジェクト指向命令型 Scala by Sébasti...
scalaconfjp
 
Postobjektové programovanie v Ruby
Jano Suchal
 
Erlang for data ops
mnacos
 
Scala traits training by Sanjeev Kumar @Kick Start Scala traits & Play, organ...
Sanjeev_Knoldus
 
Solr @ Etsy - Apache Lucene Eurocon
Giovanni Fernandez-Kincade
 
循環参照のはなし
Masahiro Honma
 

Viewers also liked (20)

PDF
Noise Models
Sardar Alam
 
PDF
filters for noise in image processing
Sardar Alam
 
PDF
Noise Models
Sardar Alam
 
PPT
Dct,gibbs phen,oversampled adc,polyphase decomposition
Muhammad Younas
 
PDF
Java
Edureka!
 
PDF
Lecture 10
Wael Sharba
 
PPT
Programming with Java: the Basics
Jussi Pohjolainen
 
PPTX
Basics of java 2
Raghu nath
 
PDF
Java basics notes
poonguzhali1826
 
PPT
Java Basics
Rajkattamuri
 
PPT
Java Basics
Brandon Black
 
PDF
Introduction to basics of java
vinay arora
 
PDF
Java Course 2: Basics
Anton Keks
 
PDF
Java Course 3: OOP
Anton Keks
 
PPT
PALASH SL GUPTA
PALASH GUPTA
 
PPT
Java Programming for Designers
R. Sosa
 
PPT
Java basics
Jitender Jain
 
PPTX
Basics of file handling
pinkpreet_kaur
 
PPT
2. Basics of Java
Nilesh Dalvi
 
PPT
Core java Basics
RAMU KOLLI
 
Noise Models
Sardar Alam
 
filters for noise in image processing
Sardar Alam
 
Noise Models
Sardar Alam
 
Dct,gibbs phen,oversampled adc,polyphase decomposition
Muhammad Younas
 
Java
Edureka!
 
Lecture 10
Wael Sharba
 
Programming with Java: the Basics
Jussi Pohjolainen
 
Basics of java 2
Raghu nath
 
Java basics notes
poonguzhali1826
 
Java Basics
Rajkattamuri
 
Java Basics
Brandon Black
 
Introduction to basics of java
vinay arora
 
Java Course 2: Basics
Anton Keks
 
Java Course 3: OOP
Anton Keks
 
PALASH SL GUPTA
PALASH GUPTA
 
Java Programming for Designers
R. Sosa
 
Java basics
Jitender Jain
 
Basics of file handling
pinkpreet_kaur
 
2. Basics of Java
Nilesh Dalvi
 
Core java Basics
RAMU KOLLI
 
Ad

Similar to Java basics (20)

PPT
02 java basics
bsnl007
 
PDF
2java Oop
Adil Jafri
 
PDF
Java OOP Programming language (Part 3) - Class and Object
OUM SAOKOSAL
 
PPT
Java basic understand OOP
Habitamu Asimare
 
PDF
Java oop
bchinnaiyan
 
PPTX
Classes,object and methods java
Padma Kannan
 
PPT
Class & Object - Intro
PRN USM
 
PPTX
Classes, objects in JAVA
Abhilash Nair
 
PDF
Chapter 02: Classes Objects and Methods Java by Tushar B Kute
Tushar B Kute
 
PPT
Oops Concept Java
Kamlesh Singh
 
PPTX
Pi j2.2 classes
mcollison
 
PDF
ádfasdfasdfasdfasdfasdfsadfsadfasdfasfasdfasdfasdfa
Vu Dang
 
PPT
Md03 - part3
Rakesh Madugula
 
PDF
Java Programming - 04 object oriented in java
Danairat Thanabodithammachari
 
PPTX
Classes objects in java
Madishetty Prathibha
 
PDF
Lec 8 03_sept [compatibility mode]
Palak Sanghani
 
PPT
Object and class
mohit tripathi
 
PPTX
UNIT I OOP AND JAVA FUNDAMENTALS CONSTRUCTOR
mohanrajm63
 
PDF
Java for beginners
Saeid Zebardast
 
PDF
JAVA Class Presentation.pdf Vsjsjsnheheh
AnushreeP4
 
02 java basics
bsnl007
 
2java Oop
Adil Jafri
 
Java OOP Programming language (Part 3) - Class and Object
OUM SAOKOSAL
 
Java basic understand OOP
Habitamu Asimare
 
Java oop
bchinnaiyan
 
Classes,object and methods java
Padma Kannan
 
Class & Object - Intro
PRN USM
 
Classes, objects in JAVA
Abhilash Nair
 
Chapter 02: Classes Objects and Methods Java by Tushar B Kute
Tushar B Kute
 
Oops Concept Java
Kamlesh Singh
 
Pi j2.2 classes
mcollison
 
ádfasdfasdfasdfasdfasdfsadfsadfasdfasfasdfasdfasdfa
Vu Dang
 
Md03 - part3
Rakesh Madugula
 
Java Programming - 04 object oriented in java
Danairat Thanabodithammachari
 
Classes objects in java
Madishetty Prathibha
 
Lec 8 03_sept [compatibility mode]
Palak Sanghani
 
Object and class
mohit tripathi
 
UNIT I OOP AND JAVA FUNDAMENTALS CONSTRUCTOR
mohanrajm63
 
Java for beginners
Saeid Zebardast
 
JAVA Class Presentation.pdf Vsjsjsnheheh
AnushreeP4
 
Ad

More from Sardar Alam (14)

PPTX
Undoing of mental illness -- seek help
Sardar Alam
 
PDF
introduction to python
Sardar Alam
 
PPT
Operator Overloading
Sardar Alam
 
PPT
skin disease classification
Sardar Alam
 
PPT
Introduction to machine learningunsupervised learning
Sardar Alam
 
PPTX
Opengl texturing
Sardar Alam
 
PPTX
Mathematics fundamentals
Sardar Alam
 
PPTX
3 d graphics with opengl part 2
Sardar Alam
 
PPTX
3 d graphics with opengl part 1
Sardar Alam
 
PPTX
3 d graphics basics
Sardar Alam
 
PPTX
2 d transformations
Sardar Alam
 
PDF
Gui
Sardar Alam
 
PDF
Inheritance
Sardar Alam
 
PDF
Arrays string handling java packages
Sardar Alam
 
Undoing of mental illness -- seek help
Sardar Alam
 
introduction to python
Sardar Alam
 
Operator Overloading
Sardar Alam
 
skin disease classification
Sardar Alam
 
Introduction to machine learningunsupervised learning
Sardar Alam
 
Opengl texturing
Sardar Alam
 
Mathematics fundamentals
Sardar Alam
 
3 d graphics with opengl part 2
Sardar Alam
 
3 d graphics with opengl part 1
Sardar Alam
 
3 d graphics basics
Sardar Alam
 
2 d transformations
Sardar Alam
 
Inheritance
Sardar Alam
 
Arrays string handling java packages
Sardar Alam
 

Recently uploaded (20)

PDF
GetOnCRM Speeds Up Agentforce 3 Deployment for Enterprise AI Wins.pdf
GetOnCRM Solutions
 
PPTX
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
PDF
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
PPTX
The Role of a PHP Development Company in Modern Web Development
SEO Company for School in Delhi NCR
 
PPTX
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
PDF
Capcut Pro Crack For PC Latest Version {Fully Unlocked} 2025
hashhshs786
 
PDF
Odoo CRM vs Zoho CRM: Honest Comparison 2025
Odiware Technologies Private Limited
 
PPTX
How Apagen Empowered an EPC Company with Engineering ERP Software
SatishKumar2651
 
PDF
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
 
PDF
Digger Solo: Semantic search and maps for your local files
seanpedersen96
 
PPTX
Fundamentals_of_Microservices_Architecture.pptx
MuhammadUzair504018
 
PDF
Beyond Binaries: Understanding Diversity and Allyship in a Global Workplace -...
Imma Valls Bernaus
 
PPTX
Platform for Enterprise Solution - Java EE5
abhishekoza1981
 
PPTX
A Complete Guide to Salesforce SMS Integrations Build Scalable Messaging With...
360 SMS APP
 
PDF
Mobile CMMS Solutions Empowering the Frontline Workforce
CryotosCMMSSoftware
 
PPTX
Comprehensive Guide: Shoviv Exchange to Office 365 Migration Tool 2025
Shoviv Software
 
PDF
Alarm in Android-Scheduling Timed Tasks Using AlarmManager in Android.pdf
Nabin Dhakal
 
PDF
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
PPTX
Feb 2021 Cohesity first pitch presentation.pptx
enginsayin1
 
PDF
HiHelloHR – Simplify HR Operations for Modern Workplaces
HiHelloHR
 
GetOnCRM Speeds Up Agentforce 3 Deployment for Enterprise AI Wins.pdf
GetOnCRM Solutions
 
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
The Role of a PHP Development Company in Modern Web Development
SEO Company for School in Delhi NCR
 
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
Capcut Pro Crack For PC Latest Version {Fully Unlocked} 2025
hashhshs786
 
Odoo CRM vs Zoho CRM: Honest Comparison 2025
Odiware Technologies Private Limited
 
How Apagen Empowered an EPC Company with Engineering ERP Software
SatishKumar2651
 
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
 
Digger Solo: Semantic search and maps for your local files
seanpedersen96
 
Fundamentals_of_Microservices_Architecture.pptx
MuhammadUzair504018
 
Beyond Binaries: Understanding Diversity and Allyship in a Global Workplace -...
Imma Valls Bernaus
 
Platform for Enterprise Solution - Java EE5
abhishekoza1981
 
A Complete Guide to Salesforce SMS Integrations Build Scalable Messaging With...
360 SMS APP
 
Mobile CMMS Solutions Empowering the Frontline Workforce
CryotosCMMSSoftware
 
Comprehensive Guide: Shoviv Exchange to Office 365 Migration Tool 2025
Shoviv Software
 
Alarm in Android-Scheduling Timed Tasks Using AlarmManager in Android.pdf
Nabin Dhakal
 
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
Feb 2021 Cohesity first pitch presentation.pptx
enginsayin1
 
HiHelloHR – Simplify HR Operations for Modern Workplaces
HiHelloHR
 

Java basics

  • 2. Three Java Editions • Java Platform, Standard Edition (Java SE) • Java Platform, Enterprise Edition (Java EE) • Java Platform, Micro Edition (Java ME) Lecture 2: Overview: Java Peculiarities 3
  • 3. The Java Platform, Standard Edition (Java SE) Lecture 2: Overview: Java Peculiarities 4
  • 4. Java Platform, Enterprise Edition (Java EE) • Enterprise Application Technologies – Enterprise JavaBeans (EJB) – J2EE Connector Architecture – Java Message Service (JMS) • Web Application Technologies – Java Servlet – JavaServer Pages (JSP) – JavaServer Faces (JSF) – Java Persistence API (JSR) • Provides a POJO persistence model for object-relational mapping. Developed and use for EJB, but can be used directly – Java Transaction API (JTA) – JavaMail • Management and Security Technologies – J2EE Application Deployment – J2EE Management – Java Authorization Contract for Containers Lecture 2: Overview: Java Peculiarities 5
  • 5. Object.Oriented$Nomenclature$ • Class$means$a$category$of$things$ – A$class$name$can$be$used$in$Java$as$the$type$of$a$field$or$ local$variable$or$as$the$return$type$of$a$func?on$(method)$ • Object$means$a$par?cular$item$that$belongs$to$a$ class$ – Also$called$an$instance$ • For$example,$consider$the$following$line:$ $ $$ $$$$String s1 = Hello;$ – Here,$String$is$the$class,$s1$is$an$instance$variable$of$class$ String,$whose$value$is$the$String$object$Hello$$ Dr. Shahid Raza! 2!
  • 6. Example$1:$Instance$Variables$ (Fields$or$Data$Members)$ class Ship1 { public double x, y, speed, direction; public String name; } public class Test1 { public static void main(String[] args) { Ship1 s1 = new Ship1(); s1.x = 0.0; s1.y = 0.0; s1.speed = 1.0; s1.direction = 0.0; // East s1.name = Ship1; System.out.println(s1.name + is initially at ( + s1.x + , + s1.y + ).); s1.x = s1.x + s1.speed * Math.cos(s1.direction * Math.PI / 180.0); s1.y = s1.y + s1.speed * Math.sin(s1.direction * Math.PI / 180.0); System.out.println(s1.name + has moved to ( + s1.x + , + s1.y + ).); } } Dr. Shahid Raza! 3!
  • 7. Instance$Variables:$Results$ • Compiling$and$Running:$ javac Test1.java java Test1 Output:$ Ship1 is initially at (1,0). Ship2 has moved to (-1.41421,1.41421). Dr. Shahid Raza! 4!
  • 8. Primitive Data Types • Much like in C – byte – short – char Lecture 2: Overview: Java Peculiarities 21 – int – long – float – double • See Examples in Exercise 0.
  • 9. Widening Primitive Conversions • Do not lose information about the overall magnitude of a numeric value. From To byte short, int, long, float, double short int, long, float, double char int, long, float, double int long, float, double long float, double float double Lecture 2: Overview: Java Peculiarities 22
  • 10. Narrowing Primitive Conversions • May lose information about the overall magnitude of a numeric value and may also lose precision. From To byte char short byte, char char byte, short int byte, short, char long byte, short, char, int float byte, short, char, int, long double byte, short, char, int, long, float Lecture 2: Overview: Java Peculiarities 23
  • 11. Example$1:$Major$Points$ • Java$naming$conven?on$ • Format$of$class$defini?ons$ • Crea?ng$classes$with$new$ • Accessing$fields$with$ variableName.fieldName$ Dr. Shahid Raza! 5!
  • 12. Java$Naming$Conven?ons$ • Leading$uppercase$leTer$in$class$name$ public class MyClass { ... } • Leading$lowercase$leTer$in$field,$local$ variable,$and$method$(func?on)$names$ – myField,myVar,myMethod Dr. Shahid Raza! 6!
  • 13. First$Look$at$Java$Classes$ • The$general$form$of$a$simple$class$is$ modifier class Classname { modifier data-type field1; modifier data-type field2; ... modifier data-type fieldN; modifier Return-Type methodName1(parameters) { //statements } ... modifier Return-Type methodName2(parameters) { //statements } } Dr. Shahid Raza! 7!
  • 14. Objects$and$References$ • Once$a$class$is$defined,$you$can$easily$declare$a$ variable$(object$reference)$of$the$class$ Ship s1, s2; Point start; Color blue; • Object$references$are$ini?ally$null$$$ – The$null$value$is$a$dis?nct$type$in$Java$and$should$ not$be$considered$equal$to$zero$$ – A$primi?ve$data$type$cannot$be$cast$to$an$object$(use$ wrapper$classes)$ • The$new$operator$is$required$to$explicitly$create$ the$object$that$is$referenced$ ClassName variableName = new ClassName();$ Dr. Shahid Raza! 8!
  • 15. Accessing$Instance$Variables$ • Use$a$dot$between$the$variable$name$and$the$field$ name,$as$follows:$ variableName.fieldName$$ • For$example,$Java$has$a$built.in$class$called$Point$that$ has$x$and$y$fields$ Point p = new Point(2, 3); // Build a Point object int xSquared = p.x * p.x; // xSquared is 4 p.x = 7; • One$major$excep?on$applies$to$the$access$fields$ through$varName.fieldName$rule$ – Methods$can$access$fields$of$current$object$without$varName$ – This$will$be$explained$when$methods$(func?ons)$are$discussed$ Dr. Shahid Raza! 9!
  • 16. Example$2:$Methods$ class Ship2 { public double x=0.0, y=0.0, speed=1.0, direction=0.0; public String name = UnnamedShip; private double degreesToRadians(double degrees) { return(degrees * Math.PI / 180.0); } public void move() { double angle = degreesToRadians(direction); x = x + speed * Math.cos(angle); y = y + speed * Math.sin(angle); } public void printLocation() { System.out.println(name + is at ( + x + , + y + ).); } } Dr. Shahid Raza! 10!
  • 17. Methods$(Con?nued)$ public class Test2 { public static void main(String[] args) { Ship2 s1 = new Ship2(); s1.name = Ship1; Ship2 s2 = new Ship2(); s2.direction = 135.0; // Northwest s2.speed = 2.0; s2.name = Ship2; s1.move(); s2.move(); s1.printLocation(); s2.printLocation(); } } • Compiling$and$Running:$ javac Test2.java java Test2 • Output:$ Ship1 is at (1,0). Ship2 is at (-1.41421,1.41421). Dr. Shahid Raza! 11!
  • 18. Example$2:$Major$Points$ • Format$of$method$defini?ons$ • Methods$that$access$local$fields$ • Calling$methods$ • Sta?c$methods$ • Default$values$for$fields$ • public/private$dis?nc?on$ Dr. Shahid Raza! 12!
  • 19. Defining$Methods$ (Func?ons$Inside$Classes)$ • Basic$method$declara?on:$ p u b l i c R e t u r n T y p e m e t h o d N a m e ( ttyyppee12 aarrgg12,, ...) { ... return(something of ReturnType); } • Excep?on$to$this$format:$if$you$declare$the$return$ type$as$void – This$special$syntax$that$means$this$method$isnt$ going$to$return$a$value$–$it$is$just$going$to$do$some$ side$effect$like$prin?ng$on$the$screen$$ – In$such$a$case$you$do$not$need$(in$fact,$are$not$ permiTed),$a$return$statement$that$includes$a$ value$to$be$returned$ Dr. Shahid Raza! 13!
  • 20. Examples$of$Defining$Methods$ • Here$are$two$examples:$ – The$first$squares$an$integer$$ – The$second$returns$the$faster$of$two$Ship$objects,$assuming$that$a$ class$called$Ship$has$been$defined$that$has$a$field$named$speed$$ // Example function call: // int val = square(7); public int square(int x) { return(x*x); } // Example function call: // Ship faster = fasterShip(someShip, someOtherShip); public Ship fasterShip(Ship ship1, Ship ship2) { if (ship1.speed ship2.speed) { return(ship1); } else { return(ship2); } }$ Dr. Shahid Raza! 14!
  • 21. Excep?on$to$the$Field$Access$with$ Dots$Rule$ • Normally$access$a$field$via: variableName.fieldName $ $ but$an$excep?on$is$when$a$method$of$a$class$wants$to$access$ fields$of$that$same$class$$ – In$that$case,$omit$the$variable$name$and$the$dot$ – For$example,$a$move$method$within$the$Ship$class$might$do:$ public void move() { x = x + speed * Math.cos(direction); ... } • Here,$x,$speed,$and$direction$are$all$fields$within$the$class$that$ the$move$method$belongs$to,$so$move$can$refer$to$the$fields$directly$ $ – As$well$see$later,$you$s?ll$can$use$the$variableName.fieldName$ approach,$and$Java$invents$a$variable$called$this$that$can$be$used$for$ that$purpose$ Dr. Shahid Raza! 15!
  • 22. Sta?c$Methods$ • Sta?c$func?ons$are$like$global$func?ons$in$other$ languages$ $ • You$can$call$a$sta?c$method$through$the$class$name$ ClassName.functionName(arguments); – For$example,$the$Math$class$has$a$sta?c$method$called$cos$ that$expects$a$double$precision$number$as$an$argument$ • So$you$can$call$Math.cos(3.5)$without$ever$having$any$object$ (instance)$of$the$Math$class$ Dr. Shahid Raza! 16!
  • 23. Method$Visibility$ • public/private$dis?nc?on$ – A$declara?on$of$private$means$that$outside$methods$ cant$call$it$..$only$methods$within$the$same$class$can$ • Thus,$for$example,$the$main$method$of$the$Test2$class$could$ not$have$done$$ double x = s1.degreesToRadians(2.2); – ATemp?ng$to$do$so$would$have$resulted$in$an$error$at$compile$?me$$ – Only$say$public$for$methods$that$you$want%to%guarantee% your%class%will%make%available%to%users$$ – You$are$free$to$change$or$eliminate$private$methods$ without$telling$users$of$your$class$about$ $$$ Dr. Shahid Raza! 17!
  • 24. Example$3:$Constructors$ class Ship3 { public double x, y, speed, direction; public String name; public Ship3(double x, double y, double speed, double direction, String name) { this.x = x; // this differentiates instance vars this.y = y; // from local vars. this.speed = speed; this.direction = direction; this.name = name; } private double degreesToRadians(double degrees) { return(degrees * Math.PI / 180.0); } ... Dr. Shahid Raza! 18!
  • 25. Constructors$(Con?nued)$ public void move() { double angle = degreesToRadians(direction); x = x + speed * Math.cos(angle); y = y + speed * Math.sin(angle); } public void printLocation() { System.out.println(name + is at ( + x + , + y + ).); } } public class Test3 { public static void main(String[] args) { Ship3 s1 = new Ship3(0.0, 0.0, 1.0, 0.0, Ship1); Ship3 s2 = new Ship3(0.0, 0.0, 2.0, 135.0, Ship2); s1.move(); s2.move(); s1.printLocation(); s2.printLocation(); } }$ Dr. Shahid Raza! 19!
  • 26. Constructor$Example:$Results$ • Compiling$and$Running: javac Test3.java java Test3 • Output:$ Ship1 is at (1,0). Ship2 is at (-1.41421,1.41421). Dr. Shahid Raza! 20!
  • 27. Example$3:$Major$Points$ • Format$of$constructor$defini?ons$ • The$this$reference$ • Destructors$(not!)$ Dr. Shahid Raza! 21!
  • 28. Constructors$ • Constructors$are$special$func?ons$called$when$a$class$is$ created$with$new$ – Constructors$are$especially$useful$for$supplying$values$of$fields$ – Constructors$are$declared$through:$ public ClassName(args) { ... } – No?ce$that$the$constructor$name$must$exactly$match$the$class$ name$ – Constructors$have$no$return$type$(not$even$void),$unlike$a$ regular$method$ – Java$automa?cally$provides$a$zero.argument$only$if$the$class$doesnt$define$its$own$constcrouncstotrru$$ctor$if$and$ • Thats$why$you$could$say$ Ship1 s1 = new Ship1(); $$$in$the$first$example,$even$though$a$constructor$was$never$defined$ Dr. Shahid Raza! 22!
  • 29. The$this$Variable$ • The$this$object$reference$can$be$used$inside$any$non.sta?c$ method$to$refer$to$the$current$object$ • The$common$uses$of$the$this$reference$are:$ 1. To$pass$a$reference$to$the$current$object$as$a$parameter$to$other$ methods$ someMethod(this); 2. To$resolve$name$conflicts$ • Using$this$permits$the$use$of$instance$variables$in$methods$that$ have$local$variables$with$the$same$name$ – Note$that$it$is$only$necessary$to$say$this.fieldName$when$you$ have$a$local$variable$and$a$class$field$with$the$same$name;$otherwise$ just$use$fieldName$with$no$this Dr. Shahid Raza! 23!
  • 30. Destructors$ This Page Intentionally Left Blank Dr. Shahid Raza! 24!
  • 31. Summary$ • Class$names$should$start$with$uppercase;$method$names$ with$lowercase$ • Methods$must$define$a$return$type$or$void$if$no$result$ is$returned$ • If$a$method$accepts$no$arguments,$the$arg.list$in$the$ method$declara?on$is$empty$instead$of$void$as$in$C$ • Sta?c$methods$do$not$require$an$instance$of$the$class;$ sta?c$methods$can$be$accessed$through$the$class$name$ • The$this$reference$in$a$class$refers$to$the$current$ object$$ • Class$constructors$do$not$declare$a$return$type$ • Java$performs$its$own$memory$management$and$ requires$no$destructors$ $$$ Dr. Shahid Raza! 25!