JAVA------>构造方法 (王道7.17 下午)
**构造方法:
帮助我们进行成员变量初始化(赋除值)。
构造方法和语法的区别:
1.构造方法名固定,必须和类名相同(这个语法要求,就决定了构造方法的命名和驼峰命名规则冲突)。
2.构造方法,没有返回值,甚至在方法声明中,连返回值申明这一项都没有。**
在new关键字之后,类名(实参列表),声明使用构造方法并传递初始化参数,初始化对象成员变量的值。
对于构造方法的注意事项:
1.构造方法可以重载,构造方法的重载条件和普通方法的重载条件相同,即一个类中可以同时存在多个构造方法。
2.当我们的类定义当中没有定义任何构造方法的时候,此时jvm会自动帮我们添加一个默认构造方法(无参构造方法)但是一旦我们自己定义了哪怕只有一个构造方法,jvm就不会自动帮我们添加构造方法。(默认构造方法=无参构造方法),我们可以使用,默认构造方法,给对象成员变量赋予我们自己,业务中的默认初值。name: 默认显示”未知“
age : -1
isMale: true
studentNum: -1
3.构造方法的执行时机:
构造方法中的代码(赋值语句),会在创建对象的最后一步,执行,会给对象成员赋初值
keythis:
在实际开发的命名习惯是:参数名和其对应的成员变量相同.
通过同名变量的变量名,在方法体中,只能访问到局部变量,二访问不到成员变量
成员变量的隐藏问题:
1.方法中定义了和类中成员变量同名的局部变量
2.在方法体中,通过同名变量的,变量名来访问变量值,我们只能访问到方法中,哪个局部同名变量的值,而访问不到,同名成员变量的值
3.在方法体中,就好像同名成员变量,被同名局部变量给隐藏起来了,所以只要给成员变量前加一个特殊的前缀this(关键字).
注意事项:
1.静态上下文中,无法访问非静态成员变量
a.只是无法访问当前对象的成员变量,和在当前对象上调用普通成员方法
b.但是,我们可以在静态方法中,在我们自己创建出的对象上,访问其普通成员变量或普通成员方法