java小白的学习记录......
1. 构造方法的作用:对象初始化
2. 默认构造函数:
若类中未定义构造函数,则系统会自动生成默认构造函数 (C++也是这样的)
如:
public class Penguin {
static String name;//静态成员变量 类变量
int health;//实例变量 普通成员变量
int love;
String sex;
public void print(){
System.out.println("Dog name "+this.name+"\nhealth "+health
+"\nlove "+love+"\nsex "+sex);
}
}
类中无构造函数,初始化实例时,
Penguin peng=new penguin();
是ok的!
3. 方法重载
1)方法名相同;
2)参数数据类型、个数、顺序不同;
3)与返回值、访问修饰符无关
4. 实例
涉及 无参构造和有参构造,this指针
1)创建Penguin.java类,代码如下:
public class Penguin {
static String name;//静态成员变量 类变量
int health;//实例变量 普通成员变量
int love;
String sex;
/**
* 无参构造:
* 1)方法名与类同名
* 2)没有返回值
* 3)与返回的修饰符无关
* 作用:给成员属性默认赋予初始值
*/
public Penguin(){
name="no";
health=10;
love=10;
sex="Q仔";
}
/**
* 有参构造
* 构造方法的重载: 方法名相同,参数列表不同(个数,类型,顺序)
* 注意:参数变量和类中的成员变量同名,必须使用this给成员变量指定
* this--本类中的对象,可用来区分同名变量类型
*/
public Penguin(String name,int health,int love,String sex){
this.name=name;
this.health=health;
this.love=love;
this.sex=sex;
}
}
2)实例化
public class Test1 {
public static void main(String[] args){
//----Penguin.java
Penguin pen=new Penguin();
/*注意:此处调用的是1)的public Penguin()
若注释掉1)的public Penguin(),则报错!因为:1)已经定义了有参构造,系统不会分配默认构造函数了*/
pen.print();Penguin pen1=new Penguin("lucky",100,99,"Q妹");
//自定义一个有参数构造,系统就不再默认分配无参数构造
pen1.print();
}
}