我只想澄清一下.有什么区别 -
private static int STUDENT_AGE = 18;
Run Code Online (Sandbox Code Playgroud)
和
private static final int STUDENT_AGE = 18;
Run Code Online (Sandbox Code Playgroud)
在球场内?
Jon Skeet解释说"根本与某个特定实例无关",好吧我想我明白了.那么最终在这种情况下究竟做了什么呢?
下面的代码不起作用是因为学生年龄被指定为静态最终?这是否意味着默认年龄根本无法覆盖?那么是否可以创建指定非默认年龄的构造函数?
private String myName;
private String myAddress;
private int myYearEnrolled;
private String myGender;
private static final int STUDENT_AGE = 18;
public Student(String name, String address, int year, String gender) {
myName = name;
myAddress = address;
myYearEnrolled = year;
myGender = gender;
}
public Student(int age)
{
STUDENT_AGE = age;
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个方法rollDice(int number,int nSides),它返回使用nSides边滚动数字骰子的总结果.
因此,例如rollDice(3,6)应该返回滚动3个六边形骰子的结果(添加到3到18之间的数字).
当我输入1时,下面的方法返回负数int number,我需要做些什么来解决这个问题?
public static int rollDice(int number, int nSides) {
int num = 0;
if(nSides >=3)
{
for(int i = 0; i < number; i++){
Random r = new Random();
int roll = r.nextInt();
num = num + (roll % nSides)+1;
}
}
else{
System.out.println("Error num needs to be from 3");
}
return num;
}
Run Code Online (Sandbox Code Playgroud) 我对Java很新,所以对大多数人来说这似乎太容易了......这完全错了吗?我的问题是如何编写一个方法selectRandom(String[] names),该方法从给定的数组中返回一个随机选择的名称.
应以相同的概率选择每个名称.
public static String selectRandom(String[] names)
{
String num = names[0];
int[]newArray = new int[names.length];
for(int i =0; i<names.length;i++)
{
Random r = new Random();
int ranNum= r.nextInt(names.length)+1;
num = names[ranNum];
}
return num;
}
Run Code Online (Sandbox Code Playgroud) 我的讲义中有以下示例代码.
int[] a = new int[3];
a[0] = 1;
for (int i = 1; i < a.length; i++) {
a[i] = a[i-1] + i;
}
Run Code Online (Sandbox Code Playgroud)
我假设这会回来
[1,2,3]
Run Code Online (Sandbox Code Playgroud)
运行以下代码后.
因为循环从最开始1计数到最多3.当第一个循环被执行时,我被称为1和[1-1]+1,结果是1,接下来i变为2结果2.....
我没想到a[0]=1; 做了什么.但我不确定这是否正确.
可以和一个人告诉我,我的假设是否正确,拜托?