*
* 构造方法(构造器):是一种特殊的方法,主要用于为成员变量初始化(为成员变量赋初始值)。
* 特征:方法名必须与类名相同,没有返回值类型。void也是一种返回值类型。
* 语法: [修饰符] 类名([形参列表])
*
*
* 构造方法使用new关键字调用。
* 如果没有显式定义构造方法,虚拟机会自动添加无参构造,
* 但是一旦显式定义了构造方法,虚拟机在编译时将不同添加无参构造(默认无参构造失效),如果需要调用无参构造就必须自己定义。
* 构造方法是可以重载(方法名相同,参数列表不同)。
*
*/
public class Dog {
public String name;//姓名
public String bland;//品种
public int age;//年龄
public String color;//颜色
/**
* 无参构造方法
*/
public Dog(){
}
/**
* 有参数构造方法
* @param _name
* @param _bland
* @param _age
* @param _color
*/
public Dog(String _name,String _bland,int _age,String _color){
name = _name;
bland= _bland;
age = _age;
color = _color;
}
public void showInfo(){
System.out.println("名字:"+name);
System.out.println("品种:"+bland);
System.out.println("年龄:"+age);
System.out.println("颜色:"+color);
}
}
public class TestDog {
public static void main(String[] args) {
// Dog dog = new Dog();
// dog.name="旺财";
// dog.age=2;
// dog.bland="中华田园犬";
// dog.color="黄色";
Dog dog = new Dog("旺财", "中华田园犬", 2, "黄色");
dog.showInfo();
Dog dog2 = new Dog("大黄", "黑贝", 3, "黑色");
dog2.showInfo();
}
}
变量声明的位置不同会导致其作用域不同。
局部变量:在方法内部声明的变量,其作用域仅限于当前方法使用。
成员变量:在类中声明的属性,其作用域可以在当前类中使用。
区别:
1.作用域不同:成员变量的作用域是在整个类体,局部变量的作用域在当前方法
2.是否有默认初始值:成员变量是有默认的初始值,局部变量没有默认初始值。
* eg:int类型默认初始值为0 double类型默认初始值为0.0 boolean类型默认为false String默认为null
* 3.是否能使用修饰符(public/private/protected/默认):成员变量:可以添加public等修饰符,局部变量不能。
* 4.在内存中保存的位置不同:成员变量保存到堆中,局部变量保存到栈。