构造方法概述和做用java
给对象的数据(属性)进行初始化c++
构造方法格式特色this
方法名与类名相同(大小也要与类名一致)对象
没有返回值类型,连void多没有blog
没有具体的返回值returnget
public class Demo { public static void main(String[] args) { Person p = new Person();//在一建立对象的时候,系统就帮咱们调用了构造方法 p.Person();//构造方法不能用对象调用 } } class Person{ private String name; private int age; public Person(){ System.out.println("Hello World"); return; } }
构造方法的重载class
和方法名相同,与无返回值类型无关(构造方法没有返回值),只看参数列表变量
若是咱们没有给出构造方法,系统将自动提供一个无参构造方法方法
若是咱们给出了构造方法,系统将再也不提供默认的无参构造方法数据
注意:这个时候,若是咱们还想使用无参构造方法,就必须本身给出。建议永远本身给出无参构造方法
给成员变量赋值的两种方式
setXXX()方法
getXXX()方法
public class Demo { public static void main(String[] args) { Person p1 = new Person("hellsino",20); System.out.println(p1.getName()+"..."+p1.getAge()); Person p2 = new Person(); p2.setName("java"); p2.setAge(1995); System.out.println(p2.getName()+"..."+p2.getAge()); } } class Person{ private String name; private int age; public Person(){ System.out.println("空参的构造"); } public Person(String name,int age){ this.name = name; this.age = age; System.out.println("有参的构造"); } public void setName(String name){ this.name = name; } public String getName(){ return name; } public void setAge(int age){ this.age = age; } public int getAge(){ return age; } }
成员赋值的区别
public class Demo { public static void main(String[] args) { Person p1 = new Person("hellsino",20); //p1 = new Person("xxx",22);这种方式将原对象变成了垃圾,因此hellsino不存在 System.out.println(p1.getName()+"..."+p1.getAge()); Person p2 = new Person(); p2.setName("java"); p2.setAge(1995); //p2.setName("c++");这种方式才是正确的更名 System.out.println(p2.getName()+"..."+p2.getAge()); } }
构造方法规范写法
setXXX()
getXXX()
show()
public class Demo { public static void main(String[] args) { Person p1 = new Person("hellsino",20); p1.show(); } } class Person{ private String name; private int age; public Person(){ System.out.println("空参的构造"); } public Person(String name,int age){ this.name = name; this.age = age; System.out.println("有参的构造"); } public void setName(String name){ this.name = name; } public String getName(){ return name; } public void setAge(int age){ this.age = age; } public int getAge(){ return age; } public void show(){ System.out.println("个人姓名是:" + name + ",个人年龄是:" + age); } }