案例一 :成员、局部名称冲突、 找到成员变量
1.this作用:解决 成员变量 和 局部变量的名称冲突的问题。
2. this找到成员变量
String name;
public fuzhi(String name){ //构造方法
System.out.println(name);
this.name = name; // this.name找到成员变量
}
public static void main(String[] args) {
fuzhi d1 = new fuzhi("李白");
}
案例二:有参构造调用无参构造
3. 在构造方法中使用this(参数 ) 的形式来调用其他的构造方法
public fuzhi(){
System.out.println("无参构造");
}
public fuzhi(String name){
this(); // 调用有参构造
System.out.println("有参构造");
}
public static void main(String[] args) {
fuzhi d1 = new fuzhi("有参构造");
}
输出结果: 无参构造
有参构造
注意:(1)只能在构造方法中使用this调用其他的构造方法,不能在成员方法中使用。
(2)在构造方法中,如果使用this关键字,必须是第一条执行语句而且只能出现一次。
(3)在一个类的两个构造方法中,不能使用this关键字互相调用。
1. 作用:可以修饰 成员变量、方法、代码块等。
案例 1. 静态变量 共享实例变量
public class fuzhi {
String name;
String school;
static String adress="青青草原"; //共享实例变量
public fuzhi(String name, String school) {
this.name = name;
this.school = school;
}
public static void main(String[] args) {
fuzhi d1 = new fuzhi("喜羊羊", "大肥羊学校");
fuzhi d2 = new fuzhi("喜羊羊", "大肥羊学校");
// 青草被吃了 换地方
d1.adress="m78星云"; // d1赋值
System.out.println(d2.adress); // d2输出
}
}
输出结果: m78星云
由此可知,static 静态变量 可以共享实例变量。
案例二: 静态方法的访问
定义:被static关键字修饰的方法称为静态方法
语法格式:类名.方法名(静态)的方式来访问
Demo03类:
public class Demo03 {
public static int s1(int a, int b) { //静态方法
System.out.println(a + b);
return a + b;
}
public int s1(int a,int b,int c){
System.out.println(a+b+c);
return a+b+c;
}
}
Demo04类:
public class Demo04 {
public static void main(String[] args) {
Demo03.s1(15,4); //静态方法 直接访问,无需创建对象,
Demo03 d1 = new Demo03();
d1.s1(15,45,62); //需要创建对象来访问。
}
}
输出结果:19
122
(1) 定义:使用static关键字修饰的代码成为静态代码块。
代码块:在java中,使用一对大括号包围起来的若干代码被称为一个代码块。
(2)作用:当类被加载时,静态代码块会执行,并且只会执行一次。
案例三:静态代码块(只能被自动执行一次)
Dem03 类:
public class Demo03 {
static{
System.out.println("静态代码块"); //静态代码块会被自动执行一次。
}
}
Demo04类:
public class Demo04 {
public static void main(String[] args) {
Demo03 d1 = new Demo03(); //静态代码块自动执行一次(只能被执行一次)
}
}
输出内容 : 静态代码块
这不简简单单?