Title: Java Pros and Cons - Roundtable
1Java Pros and Cons - Roundtable
- American Nuclear Society
- Annual Meeting
- June 16, 2004 Pittsburgh, PA
2Java an Object-Oriented Programming
Language
- Based on objects data and methods together
- Four Concepts
- Abstraction describes physical world
- Encapsulation data and methods together
- Inheritance - just like something else but ...
- Polymorphism method overloading
3Abstraction / Encapsulation
public class Particle Position position
Direction direction double energy
public Particle() position new
Position(0, 0, 0) direction new
Position(1, 0, 0) energy 1.0
public void move(double distance)
position.move(direction, distance)
public void scat(double t, double p)
...
public class Position double x, y, z
public Position(double a, double b,
double c) x
a y b z c
public void move(Direction d, double dis)
x x d.udis y y d.vdis
z z d.wdis public double
howFarTo(Position p) double answer
(p.x-x)(p.x-x)
(p.y-y)(p.y-y)
(p.z-z)(p.z-z) answer Math.sqrt(
answer ) return answer
4Inheritance (1/2)
public class ChargedParticle extends Particle
double restMass int charge
// Physical Constants static double
ELEMCHARGE 1.60217733e-19 // Coulombs
static double RESTMASSKG 9.1093897e-31 //
kg static double RESTMASS 0.511
// MeV static double ERADIUS
2.81792e-15 // meter public
ChargedParticle() super()
restMass ChargedParticle.RESTMASS
charge -1 public double
getSpeed() double speed ...
(energy-restMass) ... return speed
5Inheritance (2/2)
public class Photon extends Particle //
Physical Constants static double speedOfLight
299792458.0 // m/s static double
planckConstant 6.6260755e-34 // Joule
seconds public Photon() super()
public Particle comptonScatter()
Particle answer new Particle2
// photoelectron answer0 new
ChargedParticle(...) // scattered
photon answer1 new Photon(...)
return answer
6Polymorphism
public class Particle Position position
Direction direction double energy
public Particle() position new
Position(0, 0, 0) direction new
Position(1, 0, 0) energy 1.0
public Particle(Position p, Direction d,
double e) position p
direction d energy e
public Particle(Particle p) position
p.position direction p.direction
energy p.energy
7Java Pros
- Free, freely distributable
- Portable Write once, run anywhere
- Internet savvy
- Extensive libraries database, GUI, networking,
etc. - Language strongly typed, array indices are
checked, automatic garbage collection, Threads,
Exceptions - .jar files Java archive, runnable
8Java Cons
9(No Transcript)
10(No Transcript)
11(No Transcript)
12(No Transcript)
13(No Transcript)
14(No Transcript)
15(No Transcript)
16(No Transcript)
17(No Transcript)
18Java 1.5 Tiger
- Generics - no casting, errors at compile time,
not runtime - Enhanced for Loop
- Autoboxing/Unboxing - collections of primitive
data types - Formatted Output - more like C or FORTRAN
- New JVM Profiling API
- Improved Diagnostic Ability - getStackTrace,
Thread.getAllStackTraces
private void printCollection(Collection c)
IteratorltStringgt i c.iterator()
while(i.hasNext()) String item
i.next() System.out.println("Item
"item)
public void newFor(CollectionltStringgt c)
for(String str c) System.out.println(s
tr)
System.out.printf("s 3d", name, age)
19Sun Microsystems, Inc.Binary Code License
Agreementfor theJAVATM 2 SOFTWARE DEVELOPMENT
KIT (J2SDK), STANDARD EDITION, VERSION 1.4.2_X
- 3. RESTRICTIONS. ... You acknowledge that
Licensed Software is not designed or intended for
use in the design, construction, operation or
maintenance of any nuclear facility. ...
20Sun Microsystems, Inc.Binary Code License
Agreementfor theJAVATM 2 SOFTWARE DEVELOPMENT
KIT (J2SDK), STANDARD EDITION, VERSION 1.4.2_X
- 3. RESTRICTIONS. ... You acknowledge that
Licensed Software is not designed or intended for
use in the design, construction, operation or
maintenance of any nuclear facility. ...
21Any Questions?