Java中的实例方法,构造函数与一般函数有什么区别
小编因为上Java课听不懂老师讲重载——(狗爸爸与狗儿子的故事)所以,一直弄不清楚什么是函数什么是构造函数,emmmmmmmm不过,小编热爱学习,现在终于弄明白了。
构造函数:是一种特殊的方法 主要用来在创建对象时初始化对象 即为对象成员变量赋初始值。 总与new运算符一起使用在创建对象的语句中 特别的一个类可以有多个构造函数,可根据其参数个数的不同或参数类型的不同来区分它们,即构造函数的重载。
构造函数的特点:
1)构造方法名与类名必须完全一致
2)构造方法没有任何返回值类型的声明,包括void也没有
3)构造方法中不能使用return语句
4)构造方法可以重载
5)接口和抽象类不允许被实例化,所以没有构造方法。
6)当一个类中没有定义构造函数时,系统会默认添加一个无参的构造方法。
7)存在自定义构造方法时,都不会再自动添加无参的构造方法。
8)不能被static、final、synchronized、abstract和native修饰。
9)可以被权限修饰符public、protected 和 private 修饰。
在写法上的不同:
构造方法:
public class Sample{
private in x;
public Sample(){ //不带参数的构造方法
this(1);
}
public Sample(int x){ //带参数的构造方法
this.x=x;
}
public int Sample(int x){ //不是构造方法,return
return x++;
}
}
一般方法:
定义类:
public(修饰符) class(定义类的关键字) Test(类名)(){
private(修饰符) static(修饰符) String(变量类型) s(变量名) = "hello world";
下面是方法的定义
public(修饰符) static(修饰符) void(返回值类型) main(方法名)(String[] args(参数)){
System.out.println(s);(代码语句)
}
}
子类调用父类的:
public class MyExpection extends Exceptio{
public MyException(){
//调用Exception父类的Exception(String msg)方法
super("Something is error!");
}
public MyException(String msg){
//调用EXception父类的Exception(String msg)方法
super(msg);
}
}
总体而言:
类方法:和类变量一样,可以不用实例,直接用类就可以调用类方法。
实例变量:实例域,实例字段,或叫成员变量。
实例方法:或叫成员方法,必须先有实例,然后才能通过实例调用该实例方法。
使用方法:类方法可以直接调用类变量和类方法
类方法不可以直接调用实例变量和实例方法
类方法中没有this,因为没有实例,this不知道调用哪个实例
类方法可以从类里面直接访问类成员
实例方法可以调用类方法,访问类变量,但是不提倡这样做,会把类方法和类变
量混淆成实例方法和实例变量