如何通过类打印出值?

时间:2013-01-25 14:17:56

标签: java

打印输出时遇到问题。

班级方法:

public class Account {
    private String name1;
    private String name2;
    private  double grade1;
    private  double grade2;
    private  double grade3;
    private  double average;
    public void setAccount(String a1 ,String a2 ,double b1,double b2,double b3) {

        a1=name1;
        a2=name2; 
        b1=grade1;
        b2=grade2;
        b3=grade3;
    }

    public void setaverage(double k1){
        k1=average;
    }

    public String getAccount(){
        return name1;
    }

    public String getAccount1(){
        return name2;
    }

    public double getAccount2(){
        return grade1;
    }

    public double getAccount3(){
        return grade2;
    }

    public double getAccount4(){
        return grade3;
    }

    public double getaverage(){
        return average=(grade1+grade2+grade3)/3;
    }
}

主要方法:

    public static void main(String[] args) {
        Scanner in = new Scanner (System.in);

        Account account= new Account();

        System.out.println("Enter the  frist  and last name of student" );

        String na1=in.nextLine();

        account.getAccount(na1);

    } // end main

} // end class AccountTest

我在account.getAccount(na1);

中遇到问题

我尝试打印一个字符串以了解该程序是否有效。

那么如何打印输出?

我知道问题是因为get方法中没有参数,但我不知道如何打印它,因为这是我第一次使用它。

4 个答案:

答案 0 :(得分:1)

getAccount返回值,不带参数。所以写点如下:

na1 = account.getAccount();

答案 1 :(得分:1)

这里有很多问题,但不要担心我会帮助你解决这些问题。您可以做很多小事来让您和其他人更容易理解您的代码。封装起初似乎令人困惑,但我发现它开始变得非常快。首先,在构造函数中,您将向后执行任务。我认为你的老师正在让你使用" getters"和#34; setters"每个私人变量?

使用这些签名创建方法:

public void setName1(string n1){...}//assigns n1 to name1

public void setName2(String n2){...} //assigns n2 to name2

public void setGrade1(double g1){...} //assigns g1 to grade1

public void setGrade2(double g2){...} //assigns g2 to grade2

public void setGrade3(double g3){...} //assigns gee I wonder.

在构造函数中使用它们:

public void setAccount(String n1 ,String n2 ,double g1,double g2,double g3) {

    setName1(n1);
    setName2(n2);
    setGrade1(g1);
    setGrade2(g2);
    setGrade3(g3);


}

接下来我建议以类似的方式命名你的get *方法。

 public String getName1(){...}
 public String getName2(){...}
 public double getGrade1(){...} 

最后,打印。一旦你完成所有设置打印到控制台很容易。

System.out.println(getName1()); //will print name1 to the console.

阅读代码并对其进行注释以解释(对自己)它正在做什么。随着你的继续,它开始越来越像英语/ humanLanguageOfChoice!

如果有任何真正的开发人员想要继续挖掘,我也是一名学生。

答案 2 :(得分:0)

您的代码中未实现方法getAccount(String input)

这是:account.getAccount()

答案 3 :(得分:0)

所以...你应该知道和学习的一些术语......

  1. 获取方法,所谓的getter有一个命名约定第一部分是get第二部分是变量的名称和camelCase所以在你的情况下getter应该是getName1() getName2(), getGrade1(), getGrade2(), getGrade3()等等......而不是getAccount( ),如果你不使用这个惯例,你就欺骗自己和其他开发者....
  2. 设置方法,所谓的setter也有相同的命名约定,在你的情况下,setter应该是setName1(), setName2(), setGrade1(), setGrade2(), setGrade3()依此类推
  3. getters应该从你的类中返回变量(值),setter应该为你的实例成员“设置”一些值(实例或类变量)......
  4. 从最后一点来看,它明确表示getter是公共的getVariable(没有参数),例如public String getName1()和setter是public setVariable(将赋予实例变量的参数),例如public setName1(String name1)
  5. 在你的情况下,你没有设置,你没有给你的变量赋值,但是你想得到它的值,显然它会有一个空值......是否清楚了?