创建对象并给对象设置初始值的方式有两种:
(1)通过无参数构造器创建出一个对象,再通过对象调用相应的setter方法,示例代代码如下;
class Person
{
private String name;
private int age;
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age = age;
}
public int getAge(){
return age;
}
public void print(){
System.out.println("name = "+ name+",age="+age);
}
}
class ThisDemo
{
public static void main(String[] args)
{
Person p = new Person();
p.setName("Liming");
p.setAge(18);
p.print();
}
}
(2)直接调用带参数的构造器,创建出来的对象,就有了初始值,案例代码如下;
class Person
{
private String name;
private int age;
//无参构造器
Person(){}
//初始化姓名
Person(String name){
this(name,0);
}
//初始化姓名和对象
Person(String name, int age){
this.name = name;
this.age = age;
}
public void print(){
System.out.println("name = "+ name+",age="+age);
}
}
class ThisDemo
{
public static void main(String[] args)
{
Person p = new Person("Liming",18);
p.print();
}
}
通过构造器和通过setter方法都可以完成相同的功能。
给对象设置数据:
(1)setter注入(属性注入)
(2)构造注入
如何选择:
1.如果存在带参数的构造器,方式2是比较简洁的;
2.如果在构建对象时需要初始化多个数据时,如果使用方式(2),按摩构造器得提供N个参数,参数过大,不够直观,此时的方式就简洁明了。
3.圆对象,如何画圆,圆对象,必须根据半径来确定对象;
就应该在构建圆的时候,就要确定半径值;
有时候,需要根据数据来创建对象,此时优先选用构造器的方式。
其他时候,任意选择。