问:挑战要求我初始化两个私有String,并且在构造函数内部添加一条注释,告诉我应该在构造函数内部初始化String。但是,当我在构造函数中初始化字符串时,会收到错误消息。在构造函数外部对其进行初始化不会产生任何错误消息(尽管它是错误的)。我的语法有问题吗?
ForumPost.java
公共 类 ForumPost {
私人用户mAuthor ; 私有字符串mTitle ; 私有字符串mDescription ; 公共用户getAuthor (){返回mAuthor ; } public String getTitle (){ return mTitle ; } // TODO:我们需要公开描述}
User.java
public class User {
public User (String firstName ,String lastName ){ // TODO:在此处设置私有字段private String mFirstName ; 私有字符串mLastName ; } }
论坛.java
公共 类 论坛 {
private String mTopic ; 公共论坛(字符串主题){ mTopic =主题; } public String getTopic (){ return mTopic ; } public void addPost (ForumPost post ){ / *当所有准备就绪时,请取消注释... System.out.printf(“来自%s%s关于%s的新帖子。\ n”, post.getAuthor()。getFirstName( ),
post.getAuthor()。getLastName(),
post.getTitle());
* /
} }
范例.java
公共 类 示例 {
public static void main (String [] args ){ System 。出来。println (“正在启动论坛示例...” );如果(ARGS 。长度< 2 ){系统。出来。println (“姓和名是必需的。例如:java Example Craig Dennis” );} // Forum forum = new Forum(“ Java”); //将前两个元素传递给args
//用户作者= new User();
//添加作者,标题和描述// ForumPost post = new ForumPost(); // forum.addPost(post); } }
答:这是您的问题的代码建议:
public class User {
//声明
类User的私有String成员变量,请转到此处private String mFirstName ; 私有字符串mLastName ; public User (String firstName ,String lastName ){ //此值分配在Java中称为封装// //应该放在构造函数mFirstName = firstName内部;mLastName = lastName ; } }
因此,如果您创建一个新的User对象:
用户 newUser = 新 用户(“ Ryan” , “ Moore” );
上面的cosde的右侧部分调用User类的构造函数,并且您的名字和名字将分配给成员字段变量mFirstName和mLastName。
希望对您有所帮助