学习总结:
1、构造方法的特点
(1)构造方法与类同名且没有返回值
(2)语句格式
public 构造方法名(){
//初始化代码
}
(3)只能在对象实例化的时候调用。不能在方法中调用构造方法,同一个类的构造方法的调用只能在构造方法之间进行。【通过this();】
(4)当没有指定构造方法时,系统会自动添加无参的构造方法,当有,系统就不在添加。
出现问题:值未被正确传入
原因:就近原则
更正方案:
First:对name进行重命名(修改输入参数的参数名)
Second:使用this关键字,将值赋给当前对象,避免赋值不对称。
扩展:
this还可以用来调用方法。
package com.animals;
public class Cat {
//成员属性:昵称、年龄、体重、品种
String name;
int month;
double weight;
String species;
public Cat(){
System.out.println("我是无参构造方法");
}
public Cat(String name,int month,double weight,String species){
this();
this.name=name;
this.month=month;
this.weight=weight;
this.species=species;
}
//方法:跑到、吃东西
public void run(){
this.eat();
System.out.println("小猫快跑");
}
public void run(String name){
this.eat();
System.out.println(name+"快跑");
}
public void eat(){
System.out.println("小猫吃鱼");
}
}
package com.animals;
public class CatTest {
public static void main(String[] args){
Cat one=new Cat("花花",2,1000,"英国短毛猫");
// one.run();
System.out.println("昵称:"+one.name);
System.out.println("年龄:"+one.month);
System.out.println("体重:"+one.weight);
System.out.println("品种:"+one.species);
one.run( );
}
}