java数组类型返回值的问题!

importjava.util.*;publicclassStudents{Scannerinput=newScanner(System.in);//示例1String[... import java.util.*;
public class Students {
Scanner input = new Scanner(System.in);
//示例1
String[] names = new String[5]; //创建names数组
//示例2
float java = 0; //Java成绩
float database = 0; //database成绩
float html = 0; //html成绩
//示例3
float height; //身高
/**示例1*/
public void inputName(){
System.out.println("请依次录入5个学生的姓名:");
for(int i=0;i<names.length;i++){//依次录入5为学生的成绩
names[i] = input.next();
}//for循环结束括号
}//inputName方法结束括号
public String[] getNames(){
Arrays.sort(names); //把names数组排序
return names; //返回排序后的数组
}
}

public class Test {
public static void main(String[] args){
Students st = new Students(); //创建Students对象
String[] namesStudent = new String[st.names.length]; //创建数组
st.inputName(); //调用inputName方法
System.out.println("排序后:");
namesStudent = st.getNames(); //引用数组
st.getNames(); //调用getNames方法
for(int i=0;i<namesStudent.length;i++){
System.out.print(namesStudent[i]+" "); //循环输出数组中的元素
}//for循环结束
}
}

namesStudent 这个数组的值是引用了names 数组的内存地址吗?还是他们是两个独立的数组?非常感谢,谢谢哦,在线等呢!
//示例2
float java = 0; //Java成绩
float database = 0; //database成绩
float html = 0; //html成绩
//示例3
float height; //身高

这些代码不要,,热心的网友们,这些代码跟我问的那个问题没有联系,请忽略它们.谢谢
展开
 我来答
聼说她来过m
2015-11-15 · TA获得超过142个赞
知道答主
回答量:66
采纳率:0%
帮助的人:7.5万
展开全部
  import java.util.*;
  public class Students
  {
  Scanner input = new Scanner(System.in);
//示例1
  String[] names = new String[5]; //创建names数组
  //示例2
  float java = 0; //Java成绩
  float database = 0; //database成绩
  float html = 0; //html成绩
//
  示例3
float height; //身高
  /**示例1*/
  public void inputName(){
System.out.println("请依次录入5个学生的姓名:");
  for(int i=0;i<names.length;i++){//依次录入5为学生的成绩
  names[i] = input.next();
  }
  //for循环结束括号
  }//inputName方法结束括号
  public String[] getNames()
  {
  Arrays.sort(names); //把names数组排序
  return names; //返回排序后的数组
  }
  }
  public class Test {
public static void main(String[] args){
Students st = new Students(); //创建Students对象
  String[] namesStudent = new String[st.names.length]; //创建数组
  st.inputName(); //调用inputName方法
  System.out.println("排序后:");
  namesStudent = st.getNames(); //引用数组
  st.getNames(); //调用getNames方法
  for(int i=0;i<namesStudent.length;i++)
  {
  System.out.print(namesStudent[i]+" ");
  //循环输出数组中的元素
}//for循环结束
  }
  }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友4ac510c
2011-04-26
知道答主
回答量:19
采纳率:0%
帮助的人:19.7万
展开全部
String[] namesStudent = new String[st.names.length]; //创建数组////这一步创建数组
namesStudent = st.getNames(); //引用数组///////这一步使得namesStudent指向names的内存地址
不明白为什么要调用两遍st.getNames()方法
追问
呵呵,为了熟悉.操作多调了一次.看来数组赋值只能是使用循环进行赋值了对吗?使用数组1=数组2只是将数组1指向数组2的内存地址对吗?谢谢
追答
是的,可以使用 == 方法来判断两个数组的地址是否一样。
用 数组1=数组2 后,数组1 == 数组2 结果是true;
使用循环进行赋值后,数组1 == 数组2 结果是false;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
请叫我召哥
2011-04-26 · TA获得超过792个赞
知道小有建树答主
回答量:572
采纳率:95%
帮助的人:375万
展开全部
没有,
他们是两个独立的数组
String[] namesStudent = new String[st.names.length];
你这个又不是表示引用关系。
追问
数组赋值不是要用循环赋值吗?我又没有用循环进行赋值,他们怎么会是两个不同的数组呢?
追答
namesStudent = st.getNames(); //引用数组
没注意看这一句,哪他们两个就是同一个数组了。他们都指向了推内存中的同一数组对象!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
guibawudi
2011-04-26
知道答主
回答量:13
采纳率:0%
帮助的人:4.5万
展开全部
java是值传递,不过数组的值是一个引用。
追问
你的意思是:namesStudent 这个数组的值是引用了names 数组的内存地址?对吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式