一般情况下,在实例化对象时,我们都会定义一个类,用这个类的构造方法实例化一个对象。
类的格式是:
public class 类名{
//属性
访问修饰符 属性名;
//方法
访问修饰符 返回值类型 方法名(数据类型 参数名);
在定义一个类的时候,会默认一个不带参数的构造方法,可以使用构造方法实例化一个对象。如果自己重新定义构造方法,默认的将会被覆盖掉。重新定义的构造方法可以传入参数赋给对象初始值。
实例化对象的格式是:类名 对象名 = new 构造方法(参数值);
譬如有个方法名为Student的默认构造方法,则格式为 Student stu = new Student();
除了构造方法之外,我们还会定义普通方法。对象可以调用普通方法。
调用普通方法的格式:对象名.方法名(参数值);
譬如有个方法名为learn的普通方法,则格式为 stu.learn;
构造方法和普通方法的区别是:
1.方法名不同
2.构造方法可以实例化对象,不需要注明返回值类型;
3.而普通方法不能实例化对象,且定义的时候需要注明返回值类型。
4.两者的用途、功能不相同,每次调用一次构造方法,都会实例化一个对象。
一个类中方法太多不方便记忆,而且方法名容易混淆,那么我们可以用方法重载。也就是说我可以用相同的方法名定义多个方法。
方法重载的条件:
1.方法名相同;
2.方法中的参数类型,参数个数或者参数顺序至少有一个不同。
例子:
public void givens(int a,char b){
n=a;
s=b;
}
public void givens(char b){
s=b;
}
public void givens(char b,int a){
n=a;
s=b;
}
在传参和调用方法的时候,我们还会用到this关键字。
例子:
public class Student {
private int score;
private String name;
public Student(){
this("无名");//this()表示调用构造方法,调用哪一个根据参数确定
}
//方法重载,定义构造方法
public Student(int score){
this.setName("无名");//谁在调用方法,this就表示谁
this.score = score;
/*因为就近原则,会优先使用参数;
当参数名和属性名相同时,就无法将值赋给属性;
那可以是使用this关键字来做区分,
添加了this.将会表示属性,没有加则表示参数。*/
}
//方法重载,定义构造方法
public Student(String name){
this.name = name;
}
//定义普通方法
public void setName(String name){
this.name=name;
}
}