电子商务网站建设方案目录如何自制网站
1 this 关键字
1.1 this 访问本类属性
this 代表对当前对象的一个引用
- 所谓当前对象,指的是调用当前类中方法或属性的那个对象
- this只能在方法内部使用,表示对“调用方法的那个对象”的引用
- this.属性名,表示本对象自己的属性
当对象的属性和方法或构造器中,名称相同时,用 this 以示区分。
public class Person{String name;public Person(String name){//用以区分对象中的属性名,参数名this.name = name;}
}
1.2 this 调用方法
this关键字调用类的重载构造函数
this关键字必须位于构造函数的第一行
public class Person{String name;int age;public Person(int age){this.age = age;}public Person(String name){this(1);this.name = name;}
}
this.方法名:表示当前对象自己的方法
public class Student{public void eat(){System.out.println("吃饭");}public void talk(){this.eat();System.out.println("吃完饭再说话");}
}
1.3 this 关键字使用注意
this 不能用于静态方法和静态块
main 方法也是静态的,所以 this 也不能用于 main 方法
2 super 关键字
2.1 super 访问构造函数
在继承中,子类的构造函数必须依赖父类提供的构造函数
super(参数列表) 访问父类的构造函数
super 调用父类的构造函数,必须在子类构造函数的第一行
//父类
public class Person{public Person(){}
}
//子类
public class Student extends Person{public Student(){super();}
}
在继承中,子类的构造函数必须依赖父类提供的构造函数
//父类中只有带参构造方法
public class Base {String name;int age;public Base(String name, int age){ }
}
//子类构造方法必须依赖父类
public class Son extends Base{public Son(){//如果父类提供的只有带参构造方法,子类的构造方法必须依赖父类提供的现有构造方法;//使用super(参数列表)去访问父类提供的构造函数,且必须明确写出参数;//super必须在第一行super("张三", 20);}
}
2.2 super访问父类的属性
在子类的方法或构造器中,通过使用 super.属性 来访问父类属性
应用场景:
当子类和父类中定义了同名的属性时,想要调用父类中声明的属性,需要通过 super.属性 的方式来表明调用的是父类中声明的属性。
public class Car{//车架号int id;
}class Benz extends Car{//内部车辆编号int id; public void showInfo(){System.out.println("车架号是:" + super.id + " 内部车辆编号:" + id);}
}
2.3 super 访问父类的方法
在子类的方法或构造器中,通过使用 super.方法名 来调用父类的方法
public class Car{public void drive(){System.out.println("驾驶");}
}class Benz extends Car{public Benz(){//访问父类方法super.drive();}
}
3 super 和 this 的区别
super() 是调用父类的构造函数,必须在构造函数的第一行
this() 是调用本类的构造函数,必须在构造函数的第一行
super() 和 this() 在同一个构造方法中,不能同时出现
super | this | |
代表对象 | 代表父类对象的引用 | 当前对象本身 |
前置 | 只有在继承条件下才能使用 | 没有继承也可以使用 |
构造方法 | 父类构造 | 本类构造 |