构造方法和Static的理解
有关于构造方法的相关知识:
构造函数或构造方法或构造器
方法名和类名一致
语法: public student(){
}
作用是:一般用来初始化成员属性和成员变量
构造函数有两种:
1.无参构造函数
2.有参构造函数
构造函数是对象一建立就运行,给对象初始化,就包括属性,执行方法中的语句。而一般函数是对象调用才执行,用”.方法名“的方式来执行,给对象添加功能。
一个对象建立,构造函数只能执行一次。而一般函数可以被该对象调用多次。如果想要给对象的属性赋值,就要使用set和 get方法,此时当作是一般函数使用
构造方法(函数)的特点:
1.方法名与类名相同
2.不用定义返回值类型。(不同于void类型返回值,void是没有具体返回值类型;构造函数是连类型都没有)
3.不可以写return语句。(返回值类型都没有,也就不需要return语句了)。
注意:一般函数不能调用构造函数,只有构造函数才能调用构造函数。
方法的重载:在同一个类中,方法名一样,但是参数的个数,顺序,类型不一样
访问修饰符
静态变量: static
当static 修饰类的一个变量的时候,这个变量就变成了静态变量
作用: 不用实例化,直接通过类名来访问
例如: Person.age
静态变量的作用域>成员变量>局部变量
static 修饰方法,那么方法就是静态方法
静态方法可以直接通过类名来访问
例子:Person.eat();
为什么访问静态变量不需要类的实例化;而访问成员变量需要类的实例化? 因为属性或者方法的 加载时机不一样
程序运行的过程:
.java文件—编译–>.class文件-----加载到—>虚拟机---->执行代码----->结果
在虚拟机加载类的同时,会初始化类的静态变量和静态方法。而成员变量在实例化对象的时候才会被实例化
成员变量在运行代码后通过实例化进行初始化的 先运行代码 后初始化 不能沟通过类名访问,只能 先实例化,通过对象访问成员变量
static的作用:就是在没有创建对象的情况下来进行调用(方法或者是变量