活动地址:CSDN21天学习挑战赛
this关键字
成员变量:将变量定义在方法外面,类的里面。
局部变量:将变量定义在方法里面。
Q1:当成员变量和局部变量重名时,会输出什么?(就近原则)
public class demo2{
int age;
public void method() {
int age = 18;
System.out.println(age);
}
}
public class Girltest {
public static void main(Stirng[] args){
Girl g1 = new Girl();
g1.method();
}
}
//根据就近原则,输出的值为18
Q2:不想使用局部变量age的值,只想使用成员变量的值,怎么办?
public class demo2{
int age;
public void method() {
int age = 18;
System.out.println(this.age);
}
}
public class Girltest {
public static void main(Stirng[] args){
Girl g1 = new Girl();
g1.method();
}
}
//输出结果为0
构造方法:(构造器 、构造函数)
构造方法的定义:
- 如果没有定义构造的方法,系统将给出一个默认的无参数构造方法
- 如果定义了构造方法,系统将不再提供默认的构造方法
构造方法的重载
- 带参构造方法和无参数的构造方法两者方法名相同但参数不同,这叫做构造方法的重载。
注意事项
无论是否使用,都手动熟悉我无参数构造方法和带全部参数构造方法
作用:在创建对象时给成员变量进行初始化的。
格式:
public student{
修饰符 类名(参数){
方法体;
}
}
特点:
方法名与类名相同,大小写保持一致;
没有返回值类型,没有void;
没有具体的返回值(不能由return待会结果数据)
空参构造方法:成员变量默认初始化值
带全部参数的构造方法:给成员变量赋值
执行时机:
- 创建对象的时候由虚拟机调用,不能手动调用构造方法;
- 每创建一次对象,就会调用一次构造方法
-
public class student { private String name; private int age; //如果自己没有写空参构造方法,虚拟机自己会加上空参的构造方法 /*public student(){ System.out.println("执行"); }*/ // public student(String name,int age){ this.name = name; this.age = age; } public String getname(){ return name; } public void setname(String name){ this.name = name; } public int getage(){ return age; } public void setage(int age){ this.age = age; } } public class studenttest { public static void main(String[] args){ //创建对象 //调用的空参构造 //student s = new student(); student s = new student("zhangsan", age:23); System.out.println(s.getname()); System.out.println(s.getage()); } }