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; //身高
这些代码不要,,热心的网友们,这些代码跟我问的那个问题没有联系,请忽略它们.谢谢 展开
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; //身高
这些代码不要,,热心的网友们,这些代码跟我问的那个问题没有联系,请忽略它们.谢谢 展开
展开全部
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循环结束
}
}
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循环结束
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
String[] namesStudent = new String[st.names.length]; //创建数组////这一步创建数组
namesStudent = st.getNames(); //引用数组///////这一步使得namesStudent指向names的内存地址
不明白为什么要调用两遍st.getNames()方法
namesStudent = st.getNames(); //引用数组///////这一步使得namesStudent指向names的内存地址
不明白为什么要调用两遍st.getNames()方法
追问
呵呵,为了熟悉.操作多调了一次.看来数组赋值只能是使用循环进行赋值了对吗?使用数组1=数组2只是将数组1指向数组2的内存地址对吗?谢谢
追答
是的,可以使用 == 方法来判断两个数组的地址是否一样。
用 数组1=数组2 后,数组1 == 数组2 结果是true;
使用循环进行赋值后,数组1 == 数组2 结果是false;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没有,
他们是两个独立的数组
String[] namesStudent = new String[st.names.length];
你这个又不是表示引用关系。
他们是两个独立的数组
String[] namesStudent = new String[st.names.length];
你这个又不是表示引用关系。
追问
数组赋值不是要用循环赋值吗?我又没有用循环进行赋值,他们怎么会是两个不同的数组呢?
追答
namesStudent = st.getNames(); //引用数组
没注意看这一句,哪他们两个就是同一个数组了。他们都指向了推内存中的同一数组对象!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
java是值传递,不过数组的值是一个引用。
追问
你的意思是:namesStudent 这个数组的值是引用了names 数组的内存地址?对吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询