语法:
访问修饰符 构造方法名(可以指定参数){
//初始化代码
一般来说 有参构造中的代码主要是 为了类中的属性赋值
}
构造方法注意事项
1.无返回值类型(所以没有返回值)
public User(){
}
2.方法名与类名相同
作用:对象初始化
系统提供默认无参构造方法
但是如果自定义了 带参构造方法,系统不再提供默认无参构造方法,想用 必须显示声明
public User(){
}//无参构造方法 系统默认
public User(String name){
}//带参构造方法
public User(String name,int age){
}//带参构造方法
public User(String address){
}
//以上四句结合起来就是方法重载,而且写了第2,3句之后 想要用无参的第一句 必须得自己写!
第4句会报错 是无效重载 因为参数列表只判断类型和顺序,参数本身无意义只是形式
this 代表调用本类的属性或方法
this 调用属性
this.health=100;
this.name=“大黄”;
this 调用方法
this.print();
this 调用本类无参构造方法
this();
this调用构造方法必须在构造方法的第一行
this调用普通方法可以不在构造方法的第一行
构造方法 与普通方法 重载:
自定义构造方法:
方法名相同
参数项不同
与返回值 访问修饰符无关
(对于构造方法:此时系统不再提供默认无参构造方法)
成员变量和局部变量:
变量声明的位置决定变量作用域。
成员变量就是属性 属性都是成员变量
局部变量:if里的变量 for里的变量 方法里的变量都是局部变量
区别:
作用域不同:
成员变量的作用域在整个类的内部都是可见的
局部变量的作用域仅限于定义它的方法或者结构
初始值不同:
Java会给成员变量一个初始值
Java 不会给局部变量一个初始值
在同一个方法或者结构中不允许有同名局部变量 在不同的方法中, 可以有同名局部变量
在同一个类中 成员变量和局部变量同名时局部变量具有更高的优先级。