四种访问权限修饰符

图片说明

对于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的。(实际上就是不能出现构造器自己调用自己)**