对象实例化过程
Test a=new Test();
1.Test 在栈上分配内存(存TEST对象的引用)
2.a 命名变量
3.加载Test类到静态区
4.给静态变量分配空间
5.执行静态代码块
6.new 分配Test堆内存
7.执行Test()构造函数
8.返回Test对象的地址
9.将地址赋值给变量a
函数的重载(overLoad)
public class Test
{//函数重载 名称相同,参数不同(行为名相同,目标不同)
void fun(){
System.out.println("没有参数的函数");
}
void fun(int i)
{
System.out.println("有参数的函数,参数是"+i);
}
}
构造函数
初始化成员变量,执行某些函数。
注意:
如果没有定义构造函数,编译器会加个空的构造函数;
如果定义了构造函数,编译器不会添加空的构造函数。
this关键字
在一个成员函数里调用成员变量和成员函数
this.name;
在构造函数里调用构造函数
this(5);
static关键词
可以理解成类加载时实例化一个类(在方法静态区 分配空间)
静态代码区可以理解成类的构造函数
静态变量 存储在静态区