您的位置:首页 > 编程语言 > Java开发

Java的自学之路-构造方法 的作用以及与set方法的区别

2016-10-09 10:57 393 查看
在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:如果构造方法中有两个以上的参数类型相同,那么将很难确定参数的用途.

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐