java中怎么创建对象数组?比如我创建了一个学生类Student,怎么用这个类创建一个对象数组,麻烦给个例子

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中怎么创建对象数组?比如我创建了一个学生类Student,怎么用这个类创建一个对象数组,麻烦给个例子相关的知识,希望对你有一定的参考价值。

class Student


类中怎么创建学生类兑现数组?

学生类:
class A
private String name;
private int age;
public String getName()
return name;

public void setName(String name)
this.name = name;

public int getAge()
return age;

public void setAge(int age)
this.age = age;



//学生类使用方法:
public class test()
public static void main(String[] args)
A[] students = new A[2]; //创建2个学生的学生数组
A as= new A();
as.setAge(15);
as.setName("tom");
A as1= new A();
as1.setAge(16);
as1.setName("cat");
A[] a=as,as1; //动态创建学生数组
for (A st : a) //遍历数组
System.out.println(st.getName()+";");






运行结果:
tom;
cat;
参考技术A package com.tt.text;
public class student
private int num;
public int getNum()
return num;

public void setNum(int num)
this.num = num;




package com.tt.text;
import java.util.Scanner;
import com.tt.text.student;
public class test
public static void main(String[] args)
student[] stu=new student[5];

Scanner scanner=new Scanner(System.in);
System.out.println(stu.length);
for (int i = 0; i < stu.length; i++)
System.out.println("输入学生学号");
System.out.println("============");
System.out.println(stu[i]);



参考技术B Student[] student = new Student[5];就像String是一个字符串,String[] 就是一个字符串数组,一样的意思 参考技术C 格式和普通定义的数组差不多了,但是类型不是一般的基本数据类型,楼上说的了,我就不说多了, 参考技术D Student[ ] students = new Student[10]; //创建10个学生的学生数组

java 对象数组排序的问题,急急急急

以下是我编写的程序,写了一个Score类,里面包含学生的相关信息,在主程序中用ArrayList进行排序,是按照学生成绩排序的,怎么排序打印学生完整信息哦,方法我在Score类里面写了,在用Collections。binarySearch查找哦。对ArrayList、Collections 的使用不熟练,望牛人在我的程序上小小的改动,错误基本上也没有什么。
package method2;

import java.util.ArrayList;
import java.util.Collections;

public class Test
public static void main(String args[])
ArrayList list= new ArrayList();
list.add(new Score(1, "Liming",472));
list.add(new Score(2, "Fangfang",445));
list.add(new Score(3, "Lily",323));
list.add(new Score(4, "Green",540));
list.add(new Score(5, "Mike",332));

Collections.sort(list,new StuScoreComparator());

for(int i=0;i<list.size();i++)
System.out.println(list.get(i).toString());


Collections.binarySearch(list, new Score(1, "Liming",472));



class StuScoreComparator extends Score implements java.util.Comparator
public int compare(Object o1,Object o2)
Score score1=(Score) o1;
Score score2=(Score) o2;
return score1.getStuScore()-score2.getStuScore();



package method2;

/**
*
* @author Liuzhichao
*/
public class Score

private int stuNumber;
private String stuName;
private int stuScore;

Score()



public Score(int stuNumber,String stuName,int stuScore)
if (stuNumber > 0)
this.stuNumber = stuNumber;

else
System.out.println("输入的学生学号不正确");
System.exit(1);

if (stuScore > 0)
this.stuScore = stuScore;

else
System.out.println("输入的学生学号不正确");
System.exit(1);

this.stuName=stuName;
//设置学生信息

public void setStuNumber(int stuNumber)
this.stuNumber=stuNumber;
//设置学生学号

public void setStuScore(int stuScore)
this.stuScore=stuScore;
//设置学生分数

public void setStuName(String stuName)
this.stuName=stuName;
//设置学生名字

public int getStuNumber()
return this.stuNumber ;
//设置学生学号

public int getStuScore()
return this.stuScore ;
//设置学生分数

public String getStuName()
return this.stuName;
//获取学生名字

public String getStuInfomation()
return "名字:"+this.stuName+" 学号:"+this.stuNumber+" 成绩:"+this.stuScore;
//获取学生信息

大家说的都没有错 但是怎么打印输出哦,这几个不太熟悉的类把我搞晕了,把所有学生的信息打印出来,再实现查询学生的信息的功能
o(∩_∩)o...,老师要求用对象数组的。所以才这样写
就在我的主程序test里面改吧

修改Score类声明,实现java.lang.Comparable接口;
public class Score implements java.lang.Comparable

在方法getStuInfomation() 后追加两个方法(compareTo为Comparable接口要求实现此方法,toString为重写基类的打印输出方法):
    public int compareTo(Object otherScore) 
        return this.stuScore - ((Score) otherScore).stuScore;
    

    public String toString() 
        return "[学号:" + stuNumber + "分数:" + stuScore + "姓名:" + stuName + "]";
    
重新编译Score.java,再运行Test,输出结果为:
----------
[学号:3分数:323姓名:Lily]
[学号:5分数:332姓名:Mike]
[学号:2分数:445姓名:Fangfang]
[学号:1分数:472姓名:Liming]
[学号:4分数:540姓名:Green]

-->2008/04/05
哎......
package method2;

import java.util.ArrayList;
import java.util.Collections;

public class Test 

    public static void main(String args[]) 
        ArrayList list = new ArrayList();
        list.add(new Score(1, "Liming", 472));
        list.add(new Score(2, "Fangfang", 445));
        list.add(new Score(3, "Lily", 323));
        list.add(new Score(4, "Green", 540));
        list.add(new Score(5, "Mike", 332));

        Collections.sort(list, new StuScoreComparator());

        for (int i = 0; i < list.size(); i++) 
            System.out.println(list.get(i).toString());
        

        Collections.binarySearch(list, new Score(1, "Liming", 472));
    


class StuScoreComparator extends Score implements java.util.Comparator 

    public int compare(Object o1, Object o2) 
        Score score1 = (Score) o1;
        Score score2 = (Score) o2;
        return score1.getStuScore() - score2.getStuScore();
    


package method2;

/**
 *
 * @author Liuzhichao
 */
public class Score implements java.lang.Comparable 

    private int stuNumber;
    private String stuName;
    private int stuScore;

    Score() 

    

    public Score(int stuNumber, String stuName, int stuScore) 
        if (stuNumber > 0) 
            this.stuNumber = stuNumber;
         else 
            System.out.println("输入的学生学号不正确");
            System.exit(1);
        
        if (stuScore > 0) 
            this.stuScore = stuScore;
         else 
            System.out.println("输入的学生学号不正确");
            System.exit(1);
        
        this.stuName = stuName;
    //设置学生信息
    public void setStuNumber(int stuNumber) 
        this.stuNumber = stuNumber;
    //设置学生学号
    public void setStuScore(int stuScore) 
        this.stuScore = stuScore;
    //设置学生分数
    public void setStuName(String stuName) 
        this.stuName = stuName;
    //设置学生名字
    public int getStuNumber() 
        return this.stuNumber;
    //设置学生学号
    public int getStuScore() 
        return this.stuScore;
    //设置学生分数
    public String getStuName() 
        return this.stuName;
    //获取学生名字
    public String getStuInfomation() 
        return "名字:" + this.stuName + " 学号:" + this.stuNumber + " 成绩:" + this.stuScore;
    //获取学生信息
    public int compareTo(Object otherScore) 
        return this.stuScore - ((Score) otherScore).stuScore;
    

    public String toString() 
        return "[学号:" + stuNumber + "分数:" + stuScore + "姓名:" + stuName + "]";
    
参考技术A 你对java 思想理解得不错 基本的操作可以吧
不过你把每个学生信息都封装成一个对象,数据量如果大的话就有性能这么一说了。
参考技术B 如果你只想排序,那么你的做法很正确。但是如果你想使用Collections.binarySearch()方法进行搜索的话,那么list中的对象就需要实现Comparable接口。
下面是我修改后的程序,仅供参考:
--------------------------------------------
import java.util.ArrayList;
import java.util.Collections;

public class Test
public static void main(String args[])
ArrayList<Score> list = new ArrayList<Score>();
list.add(new Score(1, "Liming", 472));
list.add(new Score(2, "Fangfang", 445));
list.add(new Score(3, "Lily", 323));
list.add(new Score(4, "Green", 540));
list.add(new Score(5, "Mike", 332));

Collections.sort(list);

for (int i = 0; i < list.size(); i++)
System.out.println(list.get(i).toString());


int n = Collections.binarySearch(list, new Score(1, "Liming", 472));
System.out.println("You found: " + list.get(n));



/**
*
* @author Liuzhichao
*/
class Score implements Comparable<Score>

private int stuNumber;
private String stuName;
private int stuScore;

Score()


public Score(int stuNumber, String stuName, int stuScore)
if (stuNumber > 0)
this.stuNumber = stuNumber;
else
System.out.println("输入的学生学号不正确");
System.exit(1);

if (stuScore > 0)
this.stuScore = stuScore;
else
System.out.println("输入的学生学号不正确");
System.exit(1);

this.stuName = stuName;
// 设置学生信息

public void setStuNumber(int stuNumber)
this.stuNumber = stuNumber;
// 设置学生学号

public void setStuScore(int stuScore)
this.stuScore = stuScore;
// 设置学生分数

public void setStuName(String stuName)
this.stuName = stuName;
// 设置学生名字

public int getStuNumber()
return this.stuNumber;
// 设置学生学号

public int getStuScore()
return this.stuScore;
// 设置学生分数

public String getStuName()
return this.stuName;
// 获取学生名字

// 获取学生信息
public String toString()
return "名字:" + this.stuName + " 学号:" + this.stuNumber + " 成绩:"
+ this.stuScore;


public int compareTo(Score otherScore)
return this.stuScore - otherScore.stuScore ;


参考技术C 我看到就晕晕了。。我还是初学者。。

以上是关于java中怎么创建对象数组?比如我创建了一个学生类Student,怎么用这个类创建一个对象数组,麻烦给个例子的主要内容,如果未能解决你的问题,请参考以下文章

数据结构java数组链表

java中创建一个客户类数组customer[] 怎么给数组中的变量赋值?

java 学生缴学费案例:

java 中返回对象数组(急!!)

(小白)用java保存(读取)对象到本地 对象中所有的调用的类都要实现Serializable接口吗

请问java不同类的对象怎么放在同一个数组,然后如何对这个数组进行遍历