java之构造器
1.构造方法的作用:在new创建对象时为其赋值。
2.构造方法的分类:
①无参构造public 同类名(){},有参构造public 同类名(参数列表){语句}。
②构造方法没有方法名,没有返回值类型,因为构造方法在创建对象后,即进行弹栈。
③可以有多个构造方法,参照方法的重载。实际调用赋值时,必须与调用方法的实参类型和个数一致
1 package com.oracle.demo02; 2 3 public class Person { 4 private String name; 5 private int age; 6 //构造方法 无参构造 同一个类中,方法名相同,参数的内容不同,方法的重载。 7 //无参构造与有参构造同时写,在调用方法时,参数的赋值不同,调用无参和有参方法。 8 public Person(){}; 9 //有参构造,在创建对象时调用有参构造 10 public Person(String name,int age){ 11 this.name=name;//左边为调用对象,右边为赋值 12 this.age=age; 13 } 14 // 设置属性和访问属性 15 public String getName() { 16 return name; 17 } 18 19 public void setName(String name) { 20 this.name = name; 21 } 22 23 public int getAge() { 24 return age; 25 } 26 27 public void setAge(int age) { 28 this.age = age; 29 } 30 31 }
3.系统默认添加无参构造方法,所以在main中可以直接使用无参构造创建对象。但是只有有参构造时,无参构造无法使用。
4.构造方法和一般方法的区别
①构造方法只在创建对象时调用一次,一般方法可以多次调用。
②构造方法在调用时只能赋值一次,需要修改成员属性时,使用set和get方法。
1 class Person { 2 //普通方法,此时有返回值类型,不属于无参构造 3 void Person() { 4 } 5 } 6 class PersonDemo { 7 public static void main(String[] args) { 8 //使用系统默认的无参构造创建对象,与上述Person()方法无关; 9 Person p = new Person(); 10 } 11 }
1 public class Animal { 2 private String color; 3 private String name; 4 5 // 此时类中无任何构造方法时,系统会给这个类默认添加无参构造方法 6 // public Animal(){}; 7 // 当类中,只有有参构造方法存在时,无参构造方法无法使用。 8 public Animal(String color, String name) { 9 10 } 11 12 public String getColor() { 13 return color; 14 } 15 16 public void setColor(String color) { 17 this.color = color; 18 } 19 20 public String getName() { 21 return name; 22 } 23 24 public void setName(String name) { 25 this.name = name; 26 } 27 }