构造函数,This、final、static关键字的初步认识

来源:互联网 发布:cydia添加源网络错误 编辑:程序博客网 时间:2024/06/10 00:32

构造方法

定义:方法名与类名相同,并且没有返回值(不是void类型,而是返回值类型不需要写)

1.若类中没有定义构造方法,系统会自动生成一个空参的构造函数。
例如:

class User {}class Test{    User user = new User();//这里的User()便是调用了User类中的空参方法。}

注意:如果在目标类中没有重新定义该类的构造方法,系统便会自动生成一个空参的构造方法。如上,虽然User类中什么都没有定义,但是系统自动生成了一个空参的构造方法,所以可以用new关键字调用User类的空参构造方法User();

2.若创建了任何构造方法,则系统就不会自动创建无参的构造方法了。
例如:

class User{    private String name;    User(String sName)    {        name = sName;    }}class Test{    //User user = new User();    //此时这种写法就会出错,因为系统已经不会自动生成空参的构造函数了。若需要调用空参的构造函数,只能人为的去定义一个空参的构造函数。正确写法如下:    User user = new User("旺财");}

3.构造方法只能在使用new关键字创建对象的时候调用。(或者在构造函数内调用其他构造函数。)

This关键字

this代表当前的实例,用来调用该类的成员变量或方法。
this在引用变量是都存在,只不过变量名称不同的时候可以省略。

class User{    private String name;    /*User(String sName)    {        <this.>name = sName;        //此时的成员变量与局部变量名字不同,所以this可以省略。    }*/    //但是:    User(String name)    {        this.name = name;//此时成员变量与局部变量名字相同,为了区分这两个变量的引用,this此时就不能省略。    }}class Test{    User user = new User("wangcai");}

This的三大用处:

1.区分成员变量和局部变量。(当成员变量和局部变量重名时就需要用this关键字来区分)
2.调用其他方法和属性。(在本方法内的方法和属性都可以通过this关键字来调用)
3.调用其他构造方法(this([args…]);),必须要放在构造方法的第一行,但不允许互相调用。

方法重载

方法名必须相同,方法参数列表不同(长度不同,类型不同),和方法权限,返回值无关。

final

1.final修饰的基本数据变量就是常量,一旦定义就无法改变,定义的时候必须为其赋值。
2.final在修饰引用型数据类型时,定义的时候就必须给其一个地址,一旦确定,就无法改变。
3.final修饰的所有变量都可以理解为常量,因此,命名时的规范也按照常量的命名规范(所有字母大写)。

static

1.static 修饰成员变量是类变量
1.1 类变量:即属于类的变量,随着类的加载而加载,随着类的消亡而消亡,所有该类的对象都可以访问类变量。
1.2 类变量使用类名.属性名操作,不需要创建对象来调用。
1.3 类变量在类加载完毕的时候就应经初始化完成了,不需要等待对象的初始化。
1.4 static final修饰的类常量可以直接用类名来获取。
2.static 修饰的方法为类方法。
2.1 直接使用类名调用,该方法中不可包含this关键字,因为类的初始化优先于对象,而this指代的是对象。
2.2 静态的方法只能调用静态的变量或者方法,不能操作成员变量和方法。
//除了工具类,其他类一般不使用静态方法。
//静态方法和静态变量,在程序运行期间,一直占用内存,因为类要在程序运行完毕才会消亡。

原创粉丝点击