logo资料库

Java_Basics_For_AnyLogic.pdf

第1页 / 共14页
第2页 / 共14页
第3页 / 共14页
第4页 / 共14页
第5页 / 共14页
第6页 / 共14页
第7页 / 共14页
第8页 / 共14页
资料共14页,剩余部分请下载后查看
Java Basics for AnyLogic
General remarks
Types
Expressions
Some examples
Calling Methods and Accessing Fields
Writing comments in Java code
Replicated Objects
Built-in Functions
Probability Distributions
Main Language Constructs
Main Language Constructs
Collections
Reference Information Sources
This Presentation is a part of AnyLogic Standard Training Program Java Basics for AnyLogic © 2002-2008 XJ Technologies www.xjtek.com
General remarks • You do not have to learn full OO programming • You need to understand Java data types, expression and statement syntax • Please note: – Java is case-sensitive: MyVar is different to myVar! – Spaces are not allowed in names: “My Var” is illegal name! – Each statement has to be finished with “;”: MyVar = 150; – Each function has to have parenthesis: time(), add(a) – Mind integer division: 3/2 = 1, not 1.5 – Boolean values are only true and false, you cannot use 1 and 0 – Dot “.” brings you “inside” the object: agent.event.restart() – Array elements have indexes from 0 to N-1 © 2002-2008 XJ Technologies www.xjtek.com 2
Types • Primitive Types – double – represent real numbers: 1.43, 3.6E18, -14.0 – int – represents integer numbers: 12, 16384, -5000 – boolean – represents Boolean (true/false) values • Compound Types – Classes – String – represents textual strings, e.g. “MSFT”, “Hi there!”, etc – ArrayList, LinkedList – collections of objects – HyperArray – represents multi-dimensional array in System Dynamics models – … many others. See AnyLogic and Java Class References © 2002-2008 XJ Technologies www.xjtek.com 3
Expressions • Arithmetic operations – Notation: +, –, *, /, % (remainder) – In integer divisions, the fraction part is lost, e.g. 3 / 2 equals 1, and 2 / 3 equals 0 – Multiplication operators have priority over addition operators – The ‘+‘ operator allows operands of type String • Comparison operations – Notation: >, >=, <, <=, ==, != • Boolean operations – Notation: && (AND), || (OR), ! (NOT) • Conditional operator – Notation: condition ? value-if-true : value-if-false • Assignments and shortcuts – Notation: =, +=, -=, *=, /=, %=, ++, -- – Example: a+=b is equivalent to a=a+b Within most of operators, left-to-right precedence holds Parentheses may be used to alter the precedence of operations © 2002-2008 XJ Technologies www.xjtek.com 4
Some examples • 5 % 2 ≡ 1 ? • 5 / 2 ≡ 2 ? ? • 5. / 2 ≡ 5 / 2. ≡ 2.5 (double)5 / 2 ≡ 2.5 • ? ? • a += b; ≡ a = a+b; • a++; ≡ a = a+1; ? “Any” + “Logic” ≡ “AnyLogic” ? • • Let x = 14.3, then: “x = ” + x ≡ “x = 14.3” ? “” ≡ empty string “” + x ≡ “14.3” • • • y = x > 0 ? x : 0 ? ? ≡ y = max( 0, x ) ? ? • x == 5 ≡ true if x equals 5, otherwise false, whereas: • x = 5 ≡ assign 5 to x ? © 2002-2008 XJ Technologies www.xjtek.com 5
Calling Methods and Accessing Fields • Method call – To call a method, type its name followed by parenthesis. If necessary, put parameters separated by commas within the parenthesis. Examples: x = time(); moveTo( getX(), getY() + 100 ); traceln( “Population is increasing” ); • Accessing object fields and methods – To access a field or method of a model element (statechart, timer, animation), use the model element name followed by dot ‘.’ followed by the field/method name. Examples: statechart.fireEvent( “go” ); sum = sum + agents.get(i).x; © 2002-2008 XJ Technologies www.xjtek.com 6
Writing comments in Java code • There are two kinds of comments: /* text */ A traditional comment: all the text from the ASCII characters /* to the ASCII characters */ is ignored (as in C and C++) /** * The class represents AnyLogic 3D animation. It contains the canvas object. * * @author Daniil Chunosov * @version 5.0 */ public class Animation3DPanel extends javax.swing.JPanel … // text A end-of-line comment: all the text from the ASCII characters // to the end of the line is ignored (as in C++). // Prepare Engine for simulation: engine.start( root ); engine.runFast(); // fast mode – no animation © 2002-2008 XJ Technologies www.xjtek.com 7
Replicated Objects • Replicated objects are stored in a collection. Items are indexed from 0 to N-1 – Getting the current size of the collection: people.size() – Obtaining i-th item of the collection: people.get( i ) – Adding a new object to the collection: add_people(); – Removing an object from the collection: remove_people( person ); © 2002-2008 XJ Technologies www.xjtek.com 8
分享到:
收藏