不安全编程<安全性问题>:初始化(initialization)和清理(cleanup)
C语言中的变量的初始化,内存的回收,都会引发许多bug问题。
用构造函数确保初始化
构造函数在对象创建以后,立即调用,保证初始化(还没有来得及用)。
构造函数的命名:和类的名字一样
public class Test(){
public Test(){};
public void staic main(String args[]){
Test test = new Test();
//在创建对象的时候,除了分配内存外 还要调用构造函数,这样就可以保证了初始化了。
}
}
方法的命名规则是不适用构造函数的,构造函数是可以大写的。
构造函数可以有参数的
public class Test(){
public Test(int i ){}
}
如果不指定构造函数的话,java编译器会自动给一个无参的构造函数,
一旦你指定了自己的构造函数,就不能拿调用这个默认的构造函数。
方法的重载
方法的重载是站在类的角度上的。
区分重载的方法:参数,参数的顺序也是可以的。
public class Test(){
public Test(){}
public Test(int i){}
public void love(){}
public void love(int i,String y){}
public void love(String y,int i){}
}
对primitive进行重载
方法实际调用传递的参数【实参】的类型 比定义方法中的形参小的话,
实参就会 提升为形参【上一级的】,char会不同,会直接提升为int类型
方法世界调用传递的参数【实参】的类型,比定义方法中的形参大的话,
实参就会向下转换 narrowing conversion,数据会有丢失。
【注意】重载是不可以通过返回值去区分的。
example
public class Test(){
public void add(){}
public int add(){}
public void staic main(String args){
add();// the system can not know which method is right .
}
}