将主类值存储在子类中作为Array

时间:2016-06-11 05:45:19

标签: java arrays

请帮我在Student课程中添加数组。我将在主类中输入需要存储在学生班级中的值,然后通过调用方法ShowData()来显示。

import java.util.Scanner;

公共类库{

public static void main(String[] args) {
    Student record = new Student();
    int roll;
    String name;
    int mob;
    int i;

    Scanner sc = new Scanner(System.in);

    System.out.println("Enter roll numer of student \n");
    roll = sc.nextInt();
    System.out.println("Enter name of the student \n");
    name = sc.next();
    System.out.println("Enter mobile number of the student \n");
    mob = sc.nextInt();

    record.getData(roll, name, mob);

record.showData();
}
}

这是一个子类Student

公共班学生{

int roll;
String name;
int mob;
int i = 0;

void getData(int roll, String name, int mob) {

    this.roll = roll;
    this.name = name;
    this.mob = mob;

}

void showData() {

    //for(i=0; i < 3; i++)

    System.out.println("roll number " + roll + "\nname " +  name + "\nmobile number " + mob);
}
}

3 个答案:

答案 0 :(得分:0)

你可以像其他变量一样解决这个问题。只需向getData函数添加另一个参数,向学生添加一个实例变量(不要忘记在getData函数中设置变量的值)。然后,您可以将包含所有其他数据的数组传递给getData。因此,您可以像处理所有其他变量一样处理数组(例如roll,name)。

另一种解决方法是获取者和制定者。这些通常用于访问类的实例变量。 getter只是名为getXyz()的函数(如果Xyz是布尔值,则为isXyz),它返回变量的值,Setters是名为setXyz()的函数,它接受一个参数并将Xyz设置为传递的值。一个例子是:

public int getRoll() {
    return roll;
}

public void setRoll(int roll) {
    this.roll = roll;
}

通常,实例变量也被声明为私有。要做到这一点,只需将private关键字添加到每个实例变量。

private int roll;

要详细了解getter和setter,您可以阅读thisthisthis

答案 1 :(得分:0)

所以...我打开了eclipse并使用你的代码获得了你用自己的代码要求的功能。也就是说,当我使用输入时得到的输出:4,这个,3,是:

roll number 4
name this
mobile number 3

但是你要在学生班上要一个数组(我想?)。你现在拥有它的方式效果很好;但是,如果你想使用一个数组你可能想要一个String类型的数组:我使用以下类型的类来获得相同的结果,但我使用了一个String数组(注意:使用我使用的一种类型的一致数组) String.valueOf(int i)):

String[] info;
int i = 0; //whatever this is for

void getData(int roll, String name, int mob) {

    info = new String[3]; 
    info[0] = String.valueOf(roll);
    info[1] = name;
    info[2] = String.valueOf(mob);

}

void showData() {
    System.out.println("roll number " + info[0] + "\nname " +  info[1] + "\nmobile number " + info[2]);
}

你的措辞有点难以理解,但我希望这有助于解决问题。

答案 2 :(得分:0)

您必须继承主类的子类。 继承是使一个类获取另一个类的属性(方法和变量)的过程。 继承另一个属性的类称为Subclass(也称为派生类)。其继承属性的Class是Super类(基类或父类) 例如:

class Ajay extends Jay{
//
}

这里

  • Ajay是主要课程..

  • Jay是Sub class ..

对于您的代码:

import java.util.Scanner;
public class Library extends Student{
public static void main(String[] args) {
    Student record = new Student();
    int roll;
    String name;
    int mob;
    int i;

    Scanner sc = new Scanner(System.in);

    System.out.println("Enter roll numer of student \n");
    roll = sc.nextInt();
    System.out.println("Enter name of the student \n");
    name = sc.next();
    System.out.println("Enter mobile number of the student \n");
    mob = sc.nextInt();

    record.getData(roll, name, mob);

record.showData();
}
}
public class Student
{
 int roll;
String name;
int mob;
int i = 0;

void getData(int roll, String name, int mob) {

    this.roll = roll;
    this.name = name;
    this.mob = mob;

}

void showData() {

    //for(i=0; i < 3; i++)
System.out.println("roll number " + roll + "\nname " +  name + "\nmobile number " + mob);
}
}

请立即检查..然后投给我。