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

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

 


  • 8
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值