A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

码农

初级黑马

  • 黑马币:

  • 帖子:

  • 精华:

© 码农 初级黑马   /  2013-6-25 12:26  /  1382 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 孙百鑫 于 2013-6-27 07:38 编辑

class Name{
     private String firstName;
     private String lastName;
     public Name() { }    ————>这个是干什么用的?
     public Name(String firstName ; String lastName )
     {
            this.firstName = firstName;
            this.lastName = lastName;
     }

     public void setFirstName(String firstName)
    {
          this.firstName = firstName;
    }

          public void getFirstName(String firstName)
      {
                   return  this.firstName ;
         }
          public void setLastName(String LastName)
         {
                   this.LastName = LastName;
          }
      public void getLastName(String LastName)
           {
                            return  this.LastName ;
              }
}
      public class Person
       {
           private final Name;
           public Person (Name name)   ——————>Name name是什么意思?
          {
              this.name=name;
           }
           public Name getName()
           {
              return name;
           }
          public static void main (String[] args)
         {
            Name n = new Name("悟空","孙");
            Person p = new Person(n)   ————> 怎么传入一个n呢
            //Person 对象的name 的firstName值为 悟空  ——————>这句注释就更不明白了,Person有firstName吗?
           System.out.println(p.getName.firstName());
         }

}











评分

参与人数 1技术分 +1 收起 理由
刘凯 + 1 新人,鼓励下

查看全部评分

11 个回复

倒序浏览
那个 不是每个类都自带一个 不带参数的默认构造方法  ,看视频仔细点啊哥们 那个是个构造方法
回复 使用道具 举报
class Name{
      private String firstName;
      private String lastName;
      public Name() { }    ————>这个是干什么用的?————》这个是无参的构造方法;为什么已经有一个带参的构造方法还要加无参的呢?也许是老师为了讲解用吧,一个带参一个无参,对照着岂不更明白
      public Name(String firstName ; String lastName )
      {
             this.firstName = firstName;
             this.lastName = lastName;
      }

     public void setFirstName(String firstName)
     {
           this.firstName = firstName;
     }

          public void getFirstName(String firstName)
       {
                    return  this.firstName ;
          }
           public void setLastName(String LastName)
          {
                    this.LastName = LastName;
           }
       public void getLastName(String LastName)
            {
                             return  this.LastName ;
               }
}
       public class Person
        {
            private final Name;
            public Person (Name name)   ——————>Name name是什么意思?—————》这是声明一个Name类的对象name。
           {
               this.name=name;
            }
            public Name getName()
            {
               return name;
            }
           public static void main (String[] args)
          {
             Name n = new Name("悟空","孙");
             Person p = new Person(n)   ————> 怎么传入一个n呢——————》用Name类的对象n创建一个Person的对象p。 这样p不就有了firstName:"悟空",lastName:"孙" 了!!
            //Person 对象的name 的firstName值为 悟空  ——————>这句注释就更不明白了,Person有firstName吗?————》有了上面的解释,这句就明白了吧!
            System.out.println(p.getName.firstName());
          }

}

评分

参与人数 1技术分 +1 收起 理由
刘凯 + 1 赞一个!

查看全部评分

回复 使用道具 举报
  1. class Name{
  2.       private String firstName;
  3.       private String lastName;
  4.       //public Name() {}   
  5.       public Name(String firstName,String lastName)
  6.       {
  7.              this.firstName = firstName;
  8.              this.lastName = lastName;
  9.       }

  10.      public void setFirstName(String firstName)
  11.      {
  12.            this.firstName = firstName;
  13.      }

  14.           public String getFirstName()
  15.        {
  16.                     return  this.firstName ;
  17.           }
  18.            public void setLastName(String lastName)
  19.           {
  20.                     this.lastName = lastName;
  21.            }
  22.        public String  getlastName()
  23.             {
  24.                  return  this.lastName ;
  25.                }
  26. }
  27.        public class Person
  28.         {
  29.             private final Name name;//Name类和Person 是什么关系
  30.             public Person (Name name)   
  31.            {
  32.                this.name=name;
  33.             }
  34.             public Name getName()
  35.             {
  36.                return name;
  37.             }
  38.            public static void main (String[] args)
  39.           {
  40.              Name n = new Name("悟空","孙");
  41.              Person p = new Person(n);  //传入n是什么意思
  42.             //Person 对象的name 的firstName值为 悟空  ——————>这句注释就更不明白了,Person有firstName吗?
  43.             System.out.println(p.getName().getFirstName());
  44.           }

  45. }

复制代码

评分

参与人数 1技术分 +1 收起 理由
孙百鑫 + 1

查看全部评分

回复 使用道具 举报
第一个是Name类的空构造方法,有了它,以后初始化类是可以new Name()了吧,第二个是Person的一个构造方法,需要一个Name类型的对象才能构造。第三个上面一句创建了一个Name类的对象,这句是调用Person的需要Name类型的对象才能构造的构造方法创建一个对象。
回复 使用道具 举报

class Name{
     private String firstName;
     private String lastName;
     public Name() { }    ————>公有的 无参数的方法 叫构造方法 什么是构造方法请自行脑补,拥有这个方法的都可以叫做 java的 bean了!你可以理解为后台服务器辨别的标志
     public Name(String firstName ; String lastName )
     {
            this.firstName = firstName;
            this.lastName = lastName;
     }

     public void setFirstName(String firstName)
    {
          this.firstName = firstName;
    }

          public void getFirstName(String firstName)
      {
                   return  this.firstName ;
         }
          public void setLastName(String LastName)
         {
                   this.LastName = LastName;
          }
      public void getLastName(String LastName)
           {
                            return  this.LastName ;
              }
}
      public class Person
       {
           private final Name;
           public Person (Name name)   ——————>Name 是你要传的参数的类型,name是你要穿的参数,动态获取所以要一个一个name作为标识,传递你要穿过去的参数
          {
              this.name=name;
           }
           public Name getName()
           {
              return name;
           }
          public static void main (String[] args)
         {
            Name n = new Name("悟空","孙");
            Person p = new Person(n)   ————> 注意 Name 在new实例化之后 有了一个新的名字叫 n 自行看上一行
            //Person 对象的name 的firstName值为 悟空  ——————>  注意看第五行    public Name(String firstName ; String lastName ),你在对比看赋值 new Name("悟空","孙"); 是不是很眼熟这就是赋值firstName为 悟空
           System.out.println(p.getName.firstName());
         }
总结:初学者总是会有这些疑问,但是你要运用编程的思维来思考,对于电脑 你可以理解为 因为 ,所以 也就是面向对象编程。因为 class Name里面定义了 firstName; lastName;并且 你在主方法里面调用了class Name 因为  你写了public Name(String firstName ; String lastName )
     {
            this.firstName = firstName;
            this.lastName = lastName;
     }
}
所以你需要传过去 两个参数,也就是你的          Name n = new Name("悟空","孙");
你在看 class Person
定义的是需要一个    public Person (Name name) 也就是 类型为name的 参数
class name的 就是 name类型的所以
Person p = new Person(n) 可以将代表Name的 n放入到 Person方法里面
最后输出 并且调用 p里面的getName方法
由于getName方法里卖弄返回的是
  return name;
所以可以调用 name方法里面的firstName值
你要认真的 看啥视频 并且 多多手打 慢慢你形成了 这种面向对象的 思维 java你就入门了

评分

参与人数 1技术分 +1 收起 理由
孙百鑫 + 1 赞一个!

查看全部评分

回复 使用道具 举报
这就是定义了一个无参数的构造函数,没什么实际的作用你可以不写
回复 使用道具 举报
第一出红字是 声明一个无参数的构造函数
回复 使用道具 举报
第二处是说明参数是 Name类型   后面的name也可以改个名字
回复 使用道具 举报
class Name{
     private String firstName;
     private String lastName;
     public Name() { }    ————>name类的构造方法
     public Name(String firstName ; String lastName )
     {
            this.firstName = firstName;
            this.lastName = lastName;
     }

     public void setFirstName(String firstName)
    {
          this.firstName = firstName;
    }

          public void getFirstName(String firstName)
      {
                   return  this.firstName ;
         }
          public void setLastName(String LastName)
         {
                   this.LastName = LastName;
          }
      public void getLastName(String LastName)
           {
                            return  this.LastName ;
              }
}
      public class Person
       {
           private final Name;
           public Person (Name name)   ——————>接受一个Name类的参数
          {
              this.name=name;
           }
           public Name getName()
           {
              return name;
           }
          public static void main (String[] args)
         {
            Name n = new Name("悟空","孙");
            Person p = new Person(n)   ————> n是name类型的对象
            //Person 对象的name 的firstName值为 悟空  ——————>Name类的对象n创建一个Person的对象p
           System.out.println(p.getName.firstName());
         }

}

评分

参与人数 1技术分 +2 收起 理由
孙百鑫 + 2 神马都是浮云

查看全部评分

回复 使用道具 举报
楼主您好。我已将您的帖子改成已解决。如果帖子发布长时间没加分。及时联系我。以免漏分的情况发生{:soso_e100:}
回复 使用道具 举报
谢谢。。。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马