Download presentation
Presentation is loading. Please wait.
Published byJanel Gaines Modified over 9 years ago
1
O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 1 Java Pros and Cons − Roundtable American Nuclear Society Annual Meeting June 16, 2004 Pittsburgh, PA
2
O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 2 Java – 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
3
O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 3 Abstraction / 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.u*dis; y = y + d.v*dis; z = z + d.w*dis; } 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; }
4
O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 4 Inheritance (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; }
5
O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 5 Inheritance (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 Particle[2]; // photoelectron answer[0] = new ChargedParticle(...); // scattered photon answer[1] = new Photon(...); return answer; }
6
O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 6 Polymorphism 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; }
7
O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 7 Java 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
8
O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 8 Java Cons Interpreted
9
O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 9
10
O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 10
11
O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 11
12
O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 12
13
O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 13
14
O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 14
15
O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 15
16
O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 16
17
O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 17
18
O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 18 Java 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) { Iterator i = c.iterator(); while(i.hasNext()) { String item = i.next(); System.out.println("Item: "+item); } public void newFor(Collection c) { for(String str : c) { System.out.println(str); } System.out.printf("%s %3d", name, age);
19
O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 19 Sun Microsystems, Inc. Binary Code License Agreement for the JAVATM 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....
20
O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 20 Sun Microsystems, Inc. Binary Code License Agreement for the JAVATM 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....
21
O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 21 Any Questions?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.