Java-метод для форматирования строковых полей - PullRequest
4 голосов
/ 28 мая 2010

класс Лицо, владеющее персональными данными

Его конструктор получает 3 параметра, две строки, представляющие имя и фамилию, и int, представляющий возраст

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

его метод getName не имеет параметров и возвращает String в формате «Фамилия, Имя»
его метод getAge не принимает параметров и возвращает int, представляющий текущий возраст.
его метод Birthday увеличивает значение возраста на 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 ]

13 голосов
/ 28 мая 2010

Я покажу вам немного, только чтобы вы начали.

Вам необходимо объявить переменные в вашем классе для хранения значений, переданных в конструктор. Затем вам потребуется отдельный метод для возврата отформатированного имени.

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.
}
4 голосов
/ 28 мая 2010

Вы, кажется, не понимаете, что такое метод. Поскольку это звучит так, как будто вы делаете это для класса, вам, вероятно, следует пересмотреть учебник или обсудить со своим учителем.

Вы также можете попробовать официальный учебник Java , особенно первый раздел, по классам.

3 голосов
/ 28 мая 2010

В 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 [только первые несколько глав ... прочитайте ее во время просмотра сезона 1 из 24], большинство книг поставляется с этим Человек пример класса.

Хорошо, так убили первое требование. Давайте посмотрим на второй.

-its метод getName не имеет параметров и возвращает строку в формате «Фамилия, Имя»

Для краткости перейдем к этому разделу

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 Intro.

Правильная программа? Нау ... Эта программа BlueJ странная.

Google для "NetBeans" - бесплатно.

Хорошо, на Западном побережье время завтрака уже далеко.

3 голосов
/ 28 мая 2010

Вы используете getName в качестве переменной, но это должен быть метод .

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

Также см. Учебник Sun по теме: Определение методов . Однако мне интересно, если вы еще не узнали / не получили эту информацию во время курса. Я бы еще раз проконсультировался с вашим репетитором.

1 голос
/ 28 мая 2010

Java не является javascript, методы не являются переменными. getName будет выглядеть как

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

Прочитайте учебник по Java

0 голосов
/ 28 мая 2010

Вот еще один вариант, который несколько похож на то, что вы изначально пытались сделать. Вы можете использовать метод String.format, чтобы указать строку формата, а затем передать значения для замены.

public String getName(){
  return String.format("%s, %s", lastName, firstName);
}
0 голосов
/ 28 мая 2010

Вы можете изменить свой код, чтобы он компилировался, и тогда вы сможете начать понимать, как его улучшить.

Итак, это может быть один частный метод:

   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, какой это тип переменной, прежде чем вы сможете назначить ее.

0 голосов
/ 28 мая 2010

Код, который вы разместили, не определяет методы, как вы думаете. Посмотрите базовый учебник по Java, чтобы узнать, как определить метод и как определить и назначить переменную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...