用于格式化String字段的Java方法

时间:2010-05-28 15:49:02

标签: java

class Person持有个人数据

它的构造函数接收3个参数,两个表示名字和姓氏的字符串和一个表示年龄

的int
public Person(String firstName, String lastName, int age) 

其方法getName没有参数,并返回格式为“姓氏,名字”的String
其方法getAge不接受任何参数,并返回表示当前年龄的int 其方法生日将年龄值增加1并返回新的年龄值

创建Person类并将整个类粘贴到下面的文本框中

    public class Person
{   
       private String Firstname;
        private String Lastname;
        private String Name1;
        private int getAge;
        private int birthday;
        private int newAge;
        private int age1;


public Person(String first, String last, int age)
    {
      Firstname = first;
      Lastname = last;
        age1 = age;


    }
       public String getName()
           {
       String getName = "Lastname , Firstname";
       Name1 = Lastname + ", "  + Firstname;
       return Name1;

    }
        public int getAge()
        {
       return age1;

    }

        public int birthday()
        {

       age1++;
       return age1;


    }

}

我解决了这一切,谢谢你的帮助!

8 个答案:

答案 0 :(得分:13)

我会告诉你一点,只是为了让你开始。

您需要在类中声明变量以保存传递给构造函数的值。然后,您需要一个单独的方法来返回格式化的名称。

public class Person
{
    // all of the methods inside this class will have access to these variables
    private String first;
    private String last;
    private int age;

    public Person(String first, String last, int age)
    {
        this.first = first;
        // this.first refers to the "private String first" declared in the class
        // first refers to the local variable passed in as a parameter.
        // now you write the rest of the constructor
    }

    public String getName() {
        // what can you do with first and last here to return the formatted name?
    }

    // TODO: Add other methods to return age, etc.
}

答案 1 :(得分:4)

您似乎不明白方法是什么。因为听起来你正在为一堂课做这件事,你应该回顾一下你的教科书或与老师讨论。

你也可以在Classes上尝试official Java tutorial,尤其是第一部分。

答案 2 :(得分:3)

您使用getName作为变量,但它应该是方法

public String getName() {
    // Implement accordingly.
}

另请参阅有关此主题的Sun教程:Defining Methods。但是我想知道你是否在课程中没有学习/获得这些信息。我会再次向你的导师咨询。

答案 3 :(得分:3)

在BlueJay中,您使用的是Windows还是Mac版本? 无论哪种方式,我都会通过Mac版本,并希望它有效。

创建一个新类并输入 Person 作为类。

通过右键单击该类并单击“打开编辑器”,打开编辑器窗口。

您的课程应具有以下格式。

/*** Write a description of class Person here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
 public class Person
 {
// instance variables - replace the example below with your own
private int x;

/**
 * Constructor for objects of class Person
 */
public Person()
{
    // initialise instance variables
    x = 0;
}

/**
 * An example of a method - replace this comment with your own
 * 
 * @param  y   a sample parameter for a method
 * @return     the sum of x and y 
 */
public int sampleMethod(int y)
{
    // put your code here
    return x + y;
}

}

您说的第一个要求是

  • 它的构造函数接收3个参数,两个表示名字和姓氏的字符串以及一个表示年龄
  • 的int

你在代码中做得很好

public Person(String firstName, String lastName, int age)

所以没有变化。 :d

不会

public Person(String first, String last, int age)

[我们可以使用它,但不要混淆自己似乎这个人希望你使用第一个]

虽然我们希望这个类能够获得这3个参数,但我们需要这样做 1)拥有私有变量来保存这些值 2)在构造函数中分配它们。

回顾BlueJ用这些线条给出的内容

// instance variables - replace the example below with your own
private int x;

/**
 * Constructor for objects of class Person
 */
public Person()
{
    // initialise instance variables
    x = 0;
}

我们希望在构造函数中进行更改以及其他更改1)和2)

    // instance variables - replace the example below with your own
// private int x; replace blueJ sample variable
private String firstName; //not the same as the one given in the constructor
private String lastName; //not the same as the one given in the constructor
private int age; //not the same as the one given in the constructor

/**
 * Constructor for objects of class Person
 */
public Person(String firstName, String lastName, int age)
{
    // initialise instance variables
    //x = 0; replace BlueJ sample with
    this.firstName = firstName;
    this.lastName = lastName;
    this.age = age;
}

好的,只需呼吸并观看即可。我们有两组每个变量!一个用于类,另一个用于提供给构造函数。现在解释一切只是太多了:(,所以你需要阅读一本Java书[只是前几章......在看第24季第1季时阅读],大多数书籍附带这个类示例。

好吧就这样杀死了第一个要求。让我们看看第二个。

-it方法getName没有参数,返回格式为“Lastname,Firstname”的字符串

所以它的方法,为了简洁起见,跳到本节

http://java.sun.com/docs/books/tutorial/java/javaOO/methods.html

如果我这样做的话会更好地解释它。好的,我会给你一些时间。

你看过了吗?不是吗?去读它Grr! :( 重要的是

好的,所以你已经完成了以下任务对你有意义。

/**
 * The getName Method - put in a little description here
 * 
 * @return     the String with the format "Lastname, Firstname"
 */
public String getName()
{
    // put your code here
    // I did and this is called string concatenation in java
    // Google it:"string concatenation in java"

    return this.lastName + ", " + this.firstName;
}

所以我制作了一个类似于BlueJ制作的方法,以及它的外观。它获取名称(this.lastName和this.firstName NOT lastName和firstName也可以,但不要混淆我们自己k?)

BlueJ的完整代码

/**
 * Write a description of class Person here.
 * 
 * @user208639 (Is that your real name ?) 
 * @version (a version number or a date)
 */
 public class Person
 {
 // instance variables - replace the example below with your own
 // private int x; replace blueJ sample variable
 private String firstName;
 private String lastName;
 private int age;

/**
 * Constructor for objects of class Person
 */
public Person(String firstName, String lastName, int age)
{
    // initialise instance variables
    //x = 0; replace BlueJ sample with
    this.firstName = firstName;
    this.lastName = lastName;
    this.age = age;
}

/**
 * The getName Method - put in a little description here
 * 
 * @return     the String with the format "Lastname, Firstname"
 */
public String getName()
{
    // put your code here
    // I did and this is called string concatenation in java
    // Google it:"string concatenation in java"
    return this.lastName + ", " + this.firstName;
}

/**
 * An example of a method - replace this comment with your own
 * 
 * @param  y   a sample parameter for a method
 * @return     the sum of x and y 
 */
public int sampleMethod(int y)
{
    // put your code here
    return x + y;
}

}

你是以正确的方式去做吗? 有点 ?如果您对编码,变量,数据类型和方法一无所知,我会说这是一个公平的猜测:) ...但您应该真正阅读Java简介书。

正确的计划? naw ...这个BlueJ程序很奇怪。

Google for“NetBeans”它是免费的。

好的,它已经过了西海岸的早餐时间。

答案 4 :(得分:1)

Java不是javascript,方法不是变量。 getName看起来像

public String getName(){
  return this.lastName + ", " + this.firstName;
}

阅读Java tutorial

答案 5 :(得分:0)

您发布的代码并未定义您认为的方法。查看基本的Java教科书,了解如何定义方法以及如何定义和分配变量。

答案 6 :(得分:0)

您可以修改代码以使其编译,然后您就可以开始了解如何改进它。

所以,thiis可能是一种私人方法:

   getAge = age + 1; 
   return getAge; 

这是另一种私人方法:

   birthday = age + 1; 
   newAge = birthday; 
   return newAge; 

所以你会有类似的东西:

   getName = "Lastname, Firstname";  
   System.out.print(last + first);  

   System.out.print(myageinc(age));  

   mydobinc(birthday);

一旦你把所有东西都分解成小函数,你就可以更容易地弄清楚你在做什么。

因为这是一项家庭作业,我试图尽可能少地展示新代码,但希望这会对你有帮助。

此外,您需要定义变量,告诉Java它是什么类型的变量,然后再分配给它。

答案 7 :(得分:0)

这是另一种选择,有点类似于你原来要做的事情。您可以使用String.format方法指定格式字符串,然后传入要替换的值。

public String getName(){
  return String.format("%s, %s", lastName, firstName);
}