admin 管理员组文章数量: 887032
构造方法。
构造方法理解
以Person为例,由于person中的属性都被private了,外界无法直接访问属性,必须对外提供get,set方法。当创建人对象时,对象一经创建就要明确其姓名和年龄,此时就要用到构造方法。
在开发中经常在创建对象的同时就要明确对象的属性值,比如员工入职就要明确他的年龄姓名等属性信息。
什么是构造方法
构造方法是一种特殊方法, 使用关键字new实例化新对象时会被自动调用, 用于完成初始化操作.
new 执行过程(创建一个对象分几步)
1.为对象分配内存空间
2.调用对象的合适的构造方法
语法规则
1.方法名称必须与类名称相同
2.构造方法没有返回值类型声明
3.每一个类中一定至少存在一个构造方法,如果一个雷没有写构造方法,那么编译器会为当前类生成一个默认的不带参数的构造方法
//验证:如果一个雷里没有调用构造方法,编译器是否会默认调用没有参数的构造方法
class Person{private int age;private String sex;private String name;public Person(){System.out.println("调用了不带参数的构造方法!");}}public class TestDemo {public static void main(String[] args) {Person person1=new Person();//new了一个对象,但没有写构造方法,}
}
只要自己写了构造方法,那编译器就不会自动生成不带有参数的构造方法了,自己写构造方法时,可以同时对变量进行初始化。
//在写构造方法的同时,对变量初始化
//在写构造方法的同事,对变量初始化
class Student{private int age;private String name1;public Student(){System.out.println("调用了一个不带参数的构造方法");}public Student(String name1){this.name1=name1;//在写构造方法的同时,对变量初始化?System.out.println("调用了一个带有String参数的构造方法");}public Student(int age,String name){this.age=10;this.name1="lisi";System.out.println("调用了带有两个参数的构造方法");}
//public String getName1() {return name1;}public void setName1(String name1) {this.name1 = name1;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "Student{" +"age=" + age +", name1='" + name1 + '\'' +'}';}
}public class TestDemo {public static void main(String[] args) {Student student1 = new Student();System.out.println(student1);System.out.println("================");student1.setName1("caocao");//先调用setName,并把变量设为caocaoString name = student1.getName1();//然后调用getName,不设置变量,并把调用的getName赋给String nameSystem.out.println(student1);//打印name}}
.
构造方法支持重载. 规则和普通方法的重载一致
重载:1.方法名相同
2.参数列表不同
3.返回值不作要求
class Person{private int age;private String sex;private String name;public Person(){//默认构造函数this.age=10;this.name="张三";this.sex="男";}public Person(String name,int age,String sex){//带三个参数的构造函数this.name="张三";this.age=10;this.sex="男";}public void show(){System.out.println("name: "+name+" age: "+age+" sex: "+sex);}
}public class TestDemo {public static void main(String[] args) {Person person1=new Person();//调用不带参数的构造方法person1.show();Person person2=new Person();//调用带三个参数的构造方法person2.show();}
}
`
本文标签: 构造方法
版权声明:本文标题:构造方法。 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1686713859h28322.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论