class Person持有个人数据
它的构造函数接收3个参数,两个表示名字和姓氏的字符串和一个表示年龄
的intpublic 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;
}
}
我解决了这一切,谢谢你的帮助!
答案 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;
}
}
您说的第一个要求是
你在代码中做得很好
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;
}
答案 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);
}