关闭

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

2031人阅读 评论(0) 收藏 举报
分类:
在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:如果构造方法中有两个以上的参数类型相同,那么将很难确定参数的用途.

 


0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

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

在java中,我们创建一个类时需要对类中的成员变量进行私有化,private..这样可以提高代码的安全性,那么在new 一个对象时,我们就不能对类中的成员变量直接赋值,此时可以在类中写一个 方法,这...
  • qq_34481114
  • qq_34481114
  • 2016-10-09 10:57
  • 2031

04 为什么会有构造方法?以及构造函数与set()/get()方法的区别?

为什么会有构造方法()?   因为没有固定的结构,每次都要去思考,这是一个很累的活。 构造,可理解为:“结构制造”的缩写“构造”。 构造方法目的是:赋予默认值。 既然是为了初始化值,那么可不可以形成一...
  • w83325887
  • w83325887
  • 2016-08-08 11:37
  • 3076

java中关于给属性赋值的两种方法

两种方法说明  对于一个类中的成员变量(属性),如果都被设置成了private私有数据类型,则对外给属性设置了get和set方法 ,      外部程序中给这些属性设置值,有两种方式.    1...
  • dongmengyuan1020
  • dongmengyuan1020
  • 2016-11-03 19:41
  • 3943

Objective-C之成魔之路【9-类构造方法和成员变量作用域、以及变量】

重开发者的劳动成果,请勿转载 构造方法 出于初始化类中的成员变量的需要, 可以提供一个方法用于此目的,  这个方法就叫构造方法或构造方法(Constructor)。  与C++和Java不同, ...
  • danielzzu
  • danielzzu
  • 2014-11-05 01:30
  • 1650

java中的void有什么作用啊?构造方法与方法有什么区别呢?

void除了说明该方法没有返回值外,还有什么作用呢?构造方法同样也是没有返回值的,那它和void方法有什么区别呢?构造方法与方法又有什么区别?用具象的实物来表现的话三者有何种关系呢? id 除了说明...
  • zyu67
  • zyu67
  • 2015-06-28 12:29
  • 5391

java避免声明多个构造方法,一次性批量set多个属性的实现

直接看代码吧,只要执行子类的mk方法,就可以 一次性set多个值 /* * 文 件 名: BaseBean.java * 版 权: * 描 述: * 修 改 人...
  • shuaizai88
  • shuaizai88
  • 2016-12-12 15:56
  • 1242

java学习之路 之 面向对象编程-面向对象特征之一(封装和隐藏)级类的成员之三(构造器、构造方法)

面向对象特征之一:封装和隐藏 使用者对类内部定义的属性(对象的成员变量)的直接操作会导致数据的错误、混乱或安全性问题。 Java中通过将数据声明为私有的(private),再提供公共的(pub...
  • OnlyLove_longshao
  • OnlyLove_longshao
  • 2016-07-26 22:41
  • 837

PHP自学之路----构造方法,析构方法

构造方法:  1、   一个类只能有一个构造方法!  2、构造方法没有返回值。 3、构造方法的作用是对新对象的初始化,但并不能创造对象本来 4、在创建构造方法后,系统将自动调用构造方法! <...
  • jsh13417
  • jsh13417
  • 2013-05-12 22:47
  • 1991

Java 构造方法私有化的作用

这是单例模式 看需求 如果整个应用对于某个类只需要1个实例,或者只能是同一个实例的话,就应该设成单例。在WEB应用方面,如果是无状态的(即无需记录用户状态的类)就可以设计为单例。 设计模式不存在好处...
  • S415X
  • S415X
  • 2016-09-02 21:20
  • 371

java中的构造方法的使用及作用分析

java中构造方法是一个重要的概念,初学时有人会对此构造方法的使用特别是其作用不清楚,下面我就来说说我对java中构造方法的理解,有不对或不清楚的地方希望各位看官提出意见,谢谢! 一.构造方法的使...
  • u010785140
  • u010785140
  • 2015-07-20 09:10
  • 4786
    个人资料
    • 访问:10148次
    • 积分:386
    • 等级:
    • 排名:千里之外
    • 原创:27篇
    • 转载:18篇
    • 译文:0篇
    • 评论:0条
    文章分类