四种访问权限修饰符
对于class的权限修饰只可以用public和default(缺省)。
public类可以在任意地方被访问。
default类只可以被同一个包内部的类访问。
构造器
根据参数不同,构造器可以分为如下两类: new对象实际上就是调用类的构造方法
隐式无参构造器(系统默认提供)
显式定义一个或多个构造器(无参、有参)
注 意:
Java语言中,每个类都至少有一个构造器
默认构造器的修饰符与所属类的修饰符一致
一旦显式定义了构造器,则系统不再提供默认构造器
一个类可以创建多个重载的构造器
父类的构造器不可被子类继承
构造器的重载
构造器一般用来创建对象的同时初始化对象。如
String name; int age; public Person(String n , int a){ name=n; age=a;} }
构造器重载使得对象的创建更加灵活,方便创建各种不同的对象。
构造器重载举例:
public class Person{ public Person(String name, int age, Date d) {this(name,age);…} public Person(String name, int age) {…} public Person(String name, Date d) {…} public Person(){…} }
构造器重载,参数列表必须不同
this
在java中,this关键字比较难理解,它的作用和其词义很接近。
它在方法内部使用,即这个方法所属对象的引用;
它在构造器内部使用,表示该构造器正在初始化的对象。
this表示当前对象,可以调用类的属性、方法和构
造器
什么时候使用this关键字呢?
当在方法内需要用到调用该方法的对象时,就用this。
使用this调用本类的构造器
this可以作为一个类中,构造器相互调用的特殊格式
class Person{ // 定义Person类 private String name ; private int age ; public Person(){ // 无参构造 System.out.println("新对象实例化") ; } public Person(String name){ this(); // 调用本类中的无参构造方法 this.name = name ; } public Person(String name,int age){ this(name) ; // 调用有一个参数的构造方法 this.age = age; } public String getInfo(){ return "姓名:" + name + ",年龄:" + age ; } }
注意:
** 1.使用this()必须放在构造器的首行**
2.使用this调用本类中其他的构造器,保证至少有一个构造器是不用this的。(实际上就是不能出现构造器自己调用自己)**