作业链接:sp18 NBody
ac图

1.学到的知识点

I.类里面的常量定义

类比c++的const type关键字,在类内,java则用static final,本次作业中用的是
private static final G =6.67e-11

II.科学计数法的表示

对于科学计数法,比如6.67x10^(-11),后面的x10^(-11)写成e-11,AeN表示Ax10^N
正的指数1x10^7,则写成1e7。

III.标准输入库Std.in

用来读取文件,
1.构造函数初始化 In in = new In(parameter);
2.parameter传入文件路径,比如planets.txt
3.初始化完成后即可调用库函数,包括:
in.readInt() 读入整数
in.readDouble() 读入Double
in.readString() 读入String

4.注意读数据是从上到下一行一行依次读,比如

5
2.50e+11
 1.4960e+11  0.0000e+00  0.0000e+00  2.9800e+04  5.9740e+24    earth.gif
 2.2790e+11  0.0000e+00  0.0000e+00  2.4100e+04  6.4190e+23     mars.gif
 5.7900e+10  0.0000e+00  0.0000e+00  4.7900e+04  3.3020e+23  mercury.gif
 0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  1.9890e+30      sun.gif
 1.0820e+11  0.0000e+00  0.0000e+00  3.5000e+04  4.8690e+24    venus.gif

第一行是整数,第二行是double,不能跳过读整数直接去读Double,也就是你必须首先定义一个变量
int first = in.readInt();
之后才能读Double,都是一一对应的。

IV 标准输出库StdOut

1.println()输出换行
2.print()输出不换行
3.printf()里面可以加格式,类似c语言printf()
4.printf() 最简单的形式有两个参数。第一个参数称为格式字符串。它包含一个转换规范,描述如何将第二个参数转换为字符串以供输出。

格式字符串以%开头, 以一个字母的转换代码结尾。下表总结了最常用的代码:

V StdDraw标准库

1.具体可查看Stanford Std Library
包含一些java的可视化绘图
比如StdDraw.picture(x,y,img);等等

2.开启Animation(动画效果)
StdDraw.enableDoubleBuffering();
之后所有画布上的内容都在offcanvas上进行,直到调用
StdDraw.show()才会显示在oncanvas上
擦除:StdDraw.clear();
暂停:StdDraw.pause(time);time单位为毫秒,填number

3.音频StdAudio

VI 构造函数的两种定义方法

比如有一个Dog类

public class Dog{
  public String name;
  public int age;
}

第一种构造函数

public Dog(String _name,int _age){
  name=_name;
  age=_age;
}

main里面调用是
Dog mydog = new dog("funny",5);
第二种构造函数

public Dog(Dog d){
  this(d.name,d.age);
}

第二种构造函数是直接传入一个类的实例,main里面调用是
Dog d2=new Dog(d1);


Fallenpetals
4 声望9 粉丝