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());
}
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());
}
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你就入门了 作者: 280270738 时间: 2013-6-25 15:46
这就是定义了一个无参数的构造函数,没什么实际的作用你可以不写作者: 郭伟杰 时间: 2013-6-25 18:31
第一出红字是 声明一个无参数的构造函数作者: 郭伟杰 时间: 2013-6-25 18:33
第二处是说明参数是 Name类型 后面的name也可以改个名字作者: 刘_鑫 时间: 2013-6-25 19:52
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());
}