一.构造函数的定义与作用
1.函数的名次与类同名
2.没有返回值类型3.不能使用retrun 关键字来返回一个值注意》》:没有返回值类型声明不等同于“void”,void也是一种返回值的声明(如果写上了void,那就是一个普通的方法啦!)
二.构造函数的具体应用
构造函数可以被重载
1.构造函数也一般的函数一样,都是可以被重载的.但是参数类型要不一致.而且构造函数是没有返回值
构造函数如果被调用?
2.使用new关键字来创建对象的时候,会自动的调用一个类的构造函数.也可以在一个类中利用this();来调用其他的构造函数!
但是要注意:递归构造器调用. 普通函数的调用是:this.run(); 而构造函数调用是this();这样来调用.类必须要定义构造函数
3.其实每一个类中至少都有一个构造函数的,如果定义类时,没有显示的声明任何的构造函数.系统会自动的为这个类创建了一个不带任何参数的构造函数.
如果你在一个类中创建了一个显式的构造函数.那么,虚拟机就不会自动的为你创建构造函数的访问权限
4.一般在定义构造函数的时,如果没有特殊的需求(就好单例)应该使用public关键字来修饰构造函数
在一些特殊的情况使用private关键字new Person()虚拟机做了什么事?
1.首先把类加载进来
2.为这个类创建对象.并且为成员变量初始化3.自动的调用构造函数里面的内容 三:this关键字this的引用
1.this关键字一般用于方法内
2.this代表是一个对象的引用具体引用那个对象,就看这个调用方法的对象this的应用场景
1.当在一个类中要明确指出使用对象自己的的变量或函数时就应该加上this引用 ,此时this是指当前对象自己。
2.当你要把自己作为参数传递给别的对象时,也可以用this关键字,此时this被作为参数传递。
在内部类中也会经常使用this关键字,此时this代表内部类对象,如想引用外部类对象,this前面还需要加上外部类的类名。
在构造函数中,可以使用this(实参)来调用该类的其他构造函数,此时,应注意,调用代码只能在第一行,在别的方法中不能这样调构造函数,在一个构造函数中只能调一个构造函数(因为都必须放在前面啦.所以只能调用一个) 四.函数的参数传递1.基本数据类型在参数传递过程中值是不会改变的
(int ,byte,char,long,short,double,float,boolean )2.引用数据类型在参数传递的过程中,其值是会被改变的.
五:static关键字之静态变量
static关键字:在程序中使用static关键字来修饰一个成员
类什么时候加载?
类只会加载一次,又因为static修饰的变量是随着类的加载而加载的. 所以其值是被任何的对象所共享.1.静态变量修饰的属性是被所有类的实例所共享
2.静态变量可以通过类名.属性名直接访问.(因为它是随着类的加载而加载.只能加载一次)
3.静态变量在类的加载时就完成了初始化.
第六:Static关键字之静态方法1.用static修饰的方法是静态方法
2.在类加载后,就可以直接通过类名来调用静态方法
3.可以使用类名.方法名来直接访问
4.静态方法的内部是不能直接的访问非静态的成员
原因: 因为静态访问在类加载后就可以直接调用了,而非静态的成员则需要创建对象才可以调用.所以是不能直接的来访问非静态的成员5.静态方法内部,只能通过创建该类的对象才可以访问非static的方法.静态方法中是不能使用this关键字,因为静态方法没有别的引用. 静态方法中也没有所谓的对象。
6.静态的方法的应用:
1. 一般在工具类上面.因为工具类是可以直接调用调用就可以使用了嘛.
2.生产对象中也可以使用。