局部变量和成员变量:
局部变量:定义在方法中的变量叫做局部变量
作用域:从定义的位置开始到整个方法结束
不包含默认值
注意:局部变量只能在当前方法中使用,其他地方无法使用
成员变量:定义在方法外,类内的变量叫做成员变量(全局变量)
作用域:整个类体内
包含初始值 int 0 String null
内存存放的位置:栈内存中,堆内存中
引用类型:
java语言中除基本类型之外的变量类型都称之为引用类型类、接口、数组
内存分析:
栈:存放局部变量,先进后出、自下而上存储,方法执行完毕、自动释放空间
堆:存放new出来的对象,需要垃圾回收器来回收:System.gc
方法区:存放类的信息(代码)、static变量、字符串常量等
构造方法:
创建对象的时候默认会调用构造方法来创建对象(在堆中开辟空间),可以完成某些初始化操作
构造方法的语法:
方法名称:构造方法的方法名称必须跟类的名称保持一致
修饰符:
形参:
方法体:完成对象初始化功能
返回值:
注意:
1.创建完类之后,如果没有手动调用构造方法,会有一个默认的无参的构造方法供调用
2.当用户定义了构造方法之后,默认的无参构造方法就不能使用了,必须要手动定义无参构造方法
3.同一个类中可以包含多个同名的构造方法
重载:在一个类中可以包含多个重名的方法,但是注意方法的参数不能相同
三个方面的不同:
1.参数的个数不同
2.参数的类型不同
3.参数的顺序不同
注意:一般构造方法都会重载
this:表示当前对象的指针
指向当前对象,表示当前对象的引用
用处:
1.构造方法:当前构造方法中的参数名称跟类的成员变量名称一样的时候,可使用this代表当前对象。
当构造方法中需要调用其他的构造方法时,可以使用this.(),相当于this.classname()
并且this.()只能用于第一行
2.普通方法中:当多个普通方法之间需要调用时,可以使用this来调用,当前对象的其他方法
3.成员变量的使用:当方法中的参数名称跟成员变量保持一致的时候,使用this.表示形参列表中的值
this不能用于static方法
static:修饰成员变量的时候,表示静态成员变量或者叫类变量
普通变量在使用的时候,必须要通过对象名进行调用
类变量或者静态变量可以使用对象名调用也可使用类名进行调用
静态变量,在创建对象之前就被初始化,或者说在类被载入之前进行初始化
静态变量被所有的对象共享,属于公共变量,对象和类都可以直接调用,但推荐使用类来调用
成员变量放在堆中,而静态变量放在方法区中的静态区
静态变量不能放在静态方法中
修饰方法的时候,表示静态方法或者叫做类方法
类方法或者静态方法可以使用类名,也可使用对象名
静态方法可以在非静态方法中进行调用
静态方法中不能直接调用非静态方法,必须使用new方法new一个
静态方法中不允许出现this调用
一般工具类中的方法定义为static