在java中,我们创建一个类时需要对类中的成员变量进行私有化,private..这样可以提高代码的安全性,那么在new 一个对象时,我们就不能对类中的成员变量直接赋值,此时可以在类中写一个 方法,这个方法即set()方法,可以用对象的引用来调用set()方法,在set方法里给成员变量进行赋值,如下代码所示:
class Demo_This {
public static void main(String[] args) {
System.out.println("Hello World!");
Person p = new Person();
p.setName("fengfeilin");
p.run();
}
}
class Person {
private String name;
private int age;
//<span style="color:#ff0000;">创建一个set方法,对private 成员变量赋值</span>
public void setName(String name){
this.name = name;
}
//<span style="color:#ff0000;">创建get方法,获取private 成员变量的值</span>
public String getName(){
return name;
}
public void setAge(int age){
age = ag;
}
public int getAge(){
return age;
}
public void run (){
System.out.println(name+"....."+age);
}
}
而构造方法不用创建 set(),get()方法,直接 在类中构造方法即可.所以构造方法的作用也是对成员变量进行初始化值.构造方法的格式:
a:方法名与类名相同
b:没有返回值类型,连void都没有
c:没有具体的返回值 .可以不写return语句,或者可以写return;
如果在一个类中没有构造方法,系统会默认帮我们写一个无参的构造方法,里面的语句是空语句,当我们用创建了有参的构造方法,此时系统是不会帮我们生成一个无参的构造方法,所以我们写有参的构造方法,必须要把无参的构造方法写上去.
class Demo_Construct {
public static void main(String[] args) {
Person p1 = new Person();
p1.show();
System.out.println("......................");
Person p2 = new Person("冯飞林",23);
p2.show();
}
}
class Person {
private String name;
private int age;
//<span style="color:#ff0000;">无参的构造方法</span>
public Person(){
System.out.println("这是一个无参的构造方法");
}
//<span style="color:#ff0000;">有参的构造方法</span>
public Person(String name,int age){
this.name = name ;
this.age = age;
System.out.println("这是一个有参的构造方法");
}
public void show(){
System.out.println(name+"....."+age);
}
}
那么
构造方法与
set(),get()方法的区别呢?
使用构造方法的理由:
1:构造方法注入使用强依赖规定,如果不给足够的参数,对象则无法创建
2:由于Bean的依赖都通过构造方法设置了,那么就不用写更多的set方法,有助于减少代码量。
使用set(),get()方法的理由:
1:如果Bean有很多的依赖,那么构造方法的参数列表会变的很长。
2: 如果一个对象有多种构造方法,构造方法会造成代码量增加。
3:如果构造方法中有两个以上的参数类型相同,那么将很难确定参数的用途.