【问题标题】:Passing objects as parameter to method JAVA将对象作为参数传递给方法 JAVA
【发布时间】:2015-11-03 08:02:42
【问题描述】:

我被分配了主要的代码来做子类。 但我被困在这些编码中,如下所示:

z.setName(z.obj1);
z.setID(z.obj2);

********** 应该是插入输入的方式。 **************

========== 下面的子类是我自己写的==========

主要编码如下:

public static void main(String[] args) {
    StudReg z = new StudReg();

    z.setName(z.obj1);
    z.setID(z.obj2);  

    System.out.println(z.getName());
    System.out.println(z.getID());
    System.out.println(z.getJava());
    System.out.println(z.getDatabase());

    StuComputing obj3,obj4;
    obj4 = new StuComputing();
    obj4.setStudReg(z);
    System.out.println(obj4.GPA().getGPA());
}

我完成的子类(StudReg)如下:

public class StudReg {

//Data Member 
String Name;
String ID;
double Java,Database;

//Constructor
public StudReg(){};
public StudReg(String a,String b){
    Name = a;
    ID = b;
};



//Name
public void setName(String n){
    Name = n;
}
public String getName() {
    return Name;
}

//Id
public void setID (String i){
    ID = i;
}
public String getID (){
    return ID;
}

//Java
public void setJava (double j){
    Java = j;
}
public double getJava (){
    return Java;
}

//Database
public void setDatabase (double d){
    Database = d;
}
public double getDatabase (){
    return Database;
}



//FUNCTION
public StudReg (StudReg gg){
    double aa,bb;

    //refer to data from MAIN
    aa = this.getJava();
    bb = this.getDatabase();
}

另一个子类 - StuCompute:

public class StuComputing {

//DATA MEMBER
public StudReg ss;
double GPA;

//CONSTRUCTOR
public StuComputing (){};
public StuComputing (double a1){       
    GPA = a1;              
};



//StudReg
public void setStudReg (StudReg st){
    ss = st;
}
public StudReg getStudReg(){
    return ss;
}


//GPA
public void setGPA(double g){
    GPA = g;
}
public double getGPA(){
    return GPA;
}

除了回答我的问题,你们能举一个简单的例子吗? 所以,我很容易理解它>

谢谢

【问题讨论】:

  • 你的问题很可能,因为你没有真正描述它,你的类StudReg既没有一个名为obj1的变量,也没有一个变量obj2
  • 我被要求做子类编码以支持主类编码。但我做不到。我尝试了像 public StudReg obj1 (){ StudReg st = new StudReg(); 这样的编码st.setName("xxxx"); st.setID("Dg52");返回圣; } 但我做不到。
  • 这个主类有意义吗?为什么在 StudReg 中有一个公共字段只是为了调用同一对象上的设置器以在同一对象的另一个字段中设置相同的值...我很困惑... obj1 和 obj2 是默认值吗?那么它们不应该是静态的吗?
  • 是的,主要课程作品。我试图把 public StudReg obj1 (){ StudReg st = new StudReg(); st.setName("柴"); st.setID("D2014");返回圣; } 但发生了另一个错误。我不应该对主要编码进行任何更改。那么,我应该在 StudReg 中进行哪些更改?

标签: java oop object


【解决方案1】:

我仍然不知道你真正想做什么......试试这个

class StudReg {

String obj1 ;
String obj2 ;
double java ;
double database ;
String name ;
String id ;

public double getJava() {
    return java;
}

public double getDatabase() {
    return database;
}

public String getName() {
    return name;
}

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

public String getID() {
    return id;
}

public void setID(String id) {
    this.id = id;
}

public String getObj1() {
    return obj1;
}

public void setObj1(String obj1) {
    this.obj1 = obj1;
}

public String getObj2() {
    return obj2;
}

public void setObj2(String obj2) {
    this.obj2 = obj2;
}

public String getId() {
    return id;
}

public void setId(String id) {
    this.id = id;
}

}

class StuComputing {

StudReg studReg;
GPA gpa;

public StuComputing() {
    gpa = new GPA();
}


public StudReg getStudReg() {
    return studReg;
}

public void setStudReg(StudReg sr) {
    this.studReg = sr;
}

public GPA GPA() {
 return gpa;  
}

}

public class GPA {
double gpa;

public GPA() {
}


public double getGPA(){
    return gpa;
}

}

【讨论】:

  • 对象 obj1;对象 obj2;对象java;对象数据库;对象名称;对象编号;这些被视为数据成员?
  • 我试过你的建议,但输出不起作用。这是因为 StuComputing 中有计算。我必须获得位于 StuComputing 的计算 GPA 的“Java”和“数据库”标记。
【解决方案2】:

你一定忘记了什么。您的 StudReg 类中没有“obj1”或“obj2”属性。

那么我们如何理解您的问题呢?我认为您需要用其他措辞再次提出您的问题。

【讨论】:

  • 因为我的讲座只给了我主要的编码。我被要求建立子类 - StudReg。
  • 如果我想在我的子类中添加 obj1,是不是这样: public StudReg obj1 (){ String n;名称=n;}????
  • 嗨,如果你写“z.obj1”,就像你做的那样,你引用z的一个属性(它是StudyReg的实例),你想要的是有一个名为“obj1”的实例。仔细阅读: 你应该创建 obj1: obj1 = new StudyReg() 为其 name 属性赋值: obj1.setName("Chai Jin Ying") ,然后将 obj1 的 name-property 赋值给 z: z.setName(obj1. getName()) 当你尝试过这个时,阅读一本关于初学者编程的书,并小心。成功。
  • 我试图把 public StudReg obj1 (){ StudReg st = new StudReg(); st.setName("柴"); st.setID("D2014");返回圣; } 但发生了另一个错误。我不应该对主要编码进行任何更改。那么,我应该在 StudReg 中进行哪些更改?
  • 对不起,这些问题很基础。尝试一本好书,不要拘泥于例子,而是努力理解。 amazon.com/Java-For-Dummies-Barry-Burd/dp/1118407806
猜你喜欢
  • 1970-01-01
  • 2019-01-02
  • 2022-01-22
  • 2015-11-22
  • 2019-11-27
  • 1970-01-01
  • 2020-06-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多