anylogic和java,基于Anylogic的Java代码⼊门教程
由于Anylogic使⽤的是java代码,因此对java没有任何基础的同学可能会在学习时有些吃⼒。所以本⽂的⽬的在于教会⼤家如何在Anylogic中使⽤java代码来编写程序。
在正式开始学习之前先给⼤家介绍⼀个函数:
System.out.print();
这个函数⽤于在控制台输出消息,那么该函数应该在哪⾥输⼊呢?
1、打开Anylogic软件。
2、在任意位置新建⼀个模型。
3、建好后,单击Main智能体的空⽩位置。
4、在右侧Main的属性⾯板中到智能体⾏动的启动时的输⼊栏。
5、在其中输⼊System.out.print(1);。
6、启动模型并运⾏。
7、观察到控制台中输出了1,说明代码输⼊成功。
该函数将在学习的过程中经常使⽤到,并且该函数也经常⽤于在开发中寻错误。下⾯我们将主要使⽤该函数对基于Anylogic的java⼊门予以介绍。
⼀、变量
(⼀)基本的变量类型
在java中变量有很多种类型,也可以⾃⼰进⾏创建。但基础的数据类型就这样⼏个:
数值型:
整型(整数):
byte:范围为(-27,27-1)
short:范围为(-215,215-1)
int:范围为(-231,231-1)
long:范围为(-263,263-1)
浮点型(⼩数):
float:有效位数15位
double:有效位数15位
字符型:
char:Unicide字符集,只能储存单个字符。
String:存储⼀串字符。
布尔型:
boolean:true/false
在Anylogic常⽤的基本变量类型主要是:
boolean
int
double
String
(⼆)Anylogic中常⽤的其他变量类型
除了java常⽤的⼀些变量类型,Anylogic还会经常使⽤到⼀些其他的变量类型,如:
double []:由⼩数构成的数组
double [][]:由⼩数构成的⼆维数组
Agent:通⽤的智能体类型
⾃建的智能体类型
object
(三)变量的声明和使⽤
1、声明变量
基础的声明变量可以在代码中直接声明。
自学java从哪里开始语法:数据类型 变量名
如:
double score; //声明双精度浮点型变量score存储分数
String name; //声明字符串型变量name存储姓名
char sex; //声明字符型变量sex存储性别
在Anylogic中还有另⼀种声明变量的⽅式,就是在⾯板中拖⼊“参数”或“变量”并指定数据类型来声明该变量,这种⽅式声明的变量在该智能体的任何位置均可直接使⽤。
2、变量赋值
变量赋值即将数据存储⾄对应的内存空间中。
语法: 变量名 = 值
如:
score = 98.5; //存储98.5
name = "张三"; //存储“张三”
sex = '男'; //存储‘男’
注意在赋值前需要先声明变量。另外在代码中我们注意到所有String类型的变量赋值需要在值的两侧输⼊"才不会报错。当然也有⼀种更简单的⽅法如下:
3、即声明变量⼜赋值
语法: 数据类型 变量名 = 值
如:
double score = 98.5;
String name= "张三";
char sex = '男';
注意这⾥的代码后都跟了⼀个';',代表⼀句话的结束,也是java的语法规则。
(四)调⽤变量
使⽤System.out.print()函数来调⽤变量,当然在实际使⽤过程中其他函数也都是可以直接调⽤变量的。System.out.println(score); //从控制台输出变量score存储的值
System.out.println(name); //从控制台输出变量name存储的值
System.out.println(sex); //从控制台输出变量sex存储的值
现在我们完整的操作⼀边,在启动时中输⼊:
String name;
name = "张三";
System.out.println(name);
这样我们就能够看到前⾯声明的变量在控制台输出“张三”⼆字了。
(四)变量的命名规范
在Anylogic中⼀般使⽤英⽂单词或字母来命名变量。
多个英⽂单词组成的变量可在每个单词的⾸字母⼤写,中间不留空格
在Anylogic中还有特殊的命名⽅法,可以使⽤中⽂命名变量和类型,在不报错的前提下可以使⽤,⽅便辨识。⼆、数组的使⽤
(⼀)定义数组
直接定义数组中元素的个数,代码如下:
int data[] = new int[3]; /*开辟了⼀个长度为3的数组*/
但有时需要根据实际情况定义数组中元素的个数。可分步开辟空间,代码如下:
int data[] = null;
data = new int[3]; /*开辟了⼀个长度为3的数组*/
(⼆)定义数组中元素的值
data[0] = 10; // 第⼀个元素
data[1] = 20; // 第⼆个元素
data[2] = 30; // 第三个元素
当然也可以采⽤循环语句来定义值。
(三)静态数组的初始化
有时我们⼀开始就知道数组中元素的值,我们可以使⽤如下的代码来定义数组:
int data[] = {1, 2, 4, 545, 11, 32, 13131, 4444};
(四)⼆维数组的初始化
定义⼆维数组我们可以采⽤如下的语法来定义,具体代码如下:
int[][] arr = new int[3][2]; /*动态初始化*/
int data[][] = new int[][] {{1, 2, 3}, {4, 5}, {6, 7, 8, 9}}; /*可以定义不是等列数组的数组*/
⼆维数组的调⽤可以使⽤如下语法来调⽤:
语法: 数组名称[所在⾏][所在列]
三、基础函数
(⼀)常⽤的数学函数
1、数学计算
Math.E:产⽣⾃然常数e=2.7182818284590452354。p(x):计算e的x次⽅。
Math.pow(a,b):计算a的b次⽅。
Math.sqrt(a):计算a的开⽅。
Math.abs(a):计算a的绝对值。
Math.log(e):计算以e为底的对数
Math.log10(100):计算以10为底的对数
Math.max(x, y):返回x、y中较⼤的那个数
Math.min(x, y):返回x、y中较⼩的那个数
Math.floor(12.3):返回最近的且⼩于该值的整数12.0 Math.floor(-12.3):返回-13.0
Math.hypot(x, y):返回√(x²+y²)
2、产⽣随机值
产⽣随机数的函数有如下⼀些:
Math.random():产⽣0-1之间的double类型的⼩数。(int)(Math.random()*10):产⽣0-9之间的整数。
(⼆)常⽤的数组函数
1、数组长度
⼀维数组的长度
arg.length;
⼆维数组的长度
String[][] data = new String[2][5];
System.out.println("第⼀维数组长度: " + data.length); System.out.println("第⼆维数组长度: " + data[0].length);
2、数组排序
Arrays.sort(array);
3、数组反转
使⽤ verse(ArrayList) 可以将数组进⾏反转。
4、数组填充
通过 Java Util 类的 Array.fill(arrayname,value) ⽅法和 Array.fill(arrayname ,starting index ,ending index ,value) ⽅法向数组中填充元素。
5、删除数组元素
使⽤ve()⽅法删除数组元素。
对应的ve()也有两种。
6、判断数组是否相等
Arrays.equals(ary, ary1);
(三)建⽴⾃⼰的函数
Anylogic中可以直接在代码⾥写⾃⼰的函数,具体格式如下:
/*⽆返回值的函数*/
void add(){
}
/*有返回值的函数*/
double getDifference(int a, int b){
double result = a - b;
return result;
}
注意在有返回值的函数中需要定义返回值的数据类型。
当然Anylogic还提供了⼏种可视化的函数编写元素。
1、函数元素
直接将智能体⾯板的函数元素拖到主界⾯。
命名该函数。
选择参数的输⼊。
定义返回值的类型。
在函数体中输⼊代码。
通过这⼏部就能完成⼀个函数的编写,然后即可在该智能体中进⾏引⽤。
2、⾏动图元素
可打开⾏动图⾯板,通过其中的代码块拼凑出函数,优点是可视化程度⾼,缺点是编辑起来较为繁琐。
四、判断及循环语句
(⼀)判断语句
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论