this关键字:
成员变量前,系统默认提供了this.
当形式参数与成员变量名称一致时,为了区分开,需要在形式参数前加this.
this指向的是将要创建的对象,即,变量.方法()时的变量
方法:
概念:
类的共同行为,封装了一段逻辑代码,在封装方法时,尽可能的只完成一个功能(避免将多个功能封装到一个方法内)
方法的使用:
方法属于对象的行为,应该使用:引用.方法,这些方法动态的绑定到对象上
方法签名:
方法名+形参列表 = 方法签名;
形参列表指的是形参的类型顺序列表
如:
public void sum(int a,int b)
方法签名是sum(int,int )
public void sum(double,int)
方法签名是sum(double,int)
public String eat(String food)
方法签名是eat(String)
方法的重载(overload):
在同一个类型中,方法名相同,形参列表不同(形参列表指的是形式参数的类型顺序);
在方法的调用时,编译器会检查类的信息中是否有此方法签名的方法,
如:c.sum(3,5)此时编译器会检查类中是否有sum(int,int)类型的方法,如果有,编译通过,如果没有,编译失败
内存管理机制:
jvm将内存分成三大主要区域:
方法区:jvm将字节码文件加载到此区域,用来储存类的信息;
堆:用来存储引用类型的对象
栈:用于储存方法内的局部变量
栈帧:栈中的空间,当程序执行到某一方法时,jvm专门为此方法开辟一块独有的空间,这个方法内的局部变量存放在这个栈中,方法结束后栈帧消失,释放内存
构造器方法:关键字 类型名
是特殊的方法,作用是用来给成员变量进行初始化
(1)构造器没有返回值类型
(2)方法名与类型名相同
如:public class Person{
int x;
int y;
修饰词 类型名(){}
普通方法
.....
}
默认无参构造器:
如果定义类时没有添加构造方法,系统会默认提供一个共有的没有形式参数的构造方法,如果已经定义了一个构造器,系统将不会提供默认构造器。
有参构造器:
修饰词 类型名(有参传参){}
因为有参构造器是给成员变量初始化的,所以形参的类型要与成员变量类型名一致,因此在赋值时this.不能省略
构造器的调用:
只能是new关键字来调用,
new 构造方法(有参传参)
对象的实例化;
是由new完成的;
对象的成员变量初始化:是由new调用的构造器来进行初始化的;(成员变量的第一次赋值)
构造器的重载:
一个类中可以有多个构造器,方法名相同,参数列表不同(数据类型顺序不同)