构造方法及其重载

1.构造方法

类中有一种特殊的成员方法,其方法名与类名相同,称为构造方法。

通过构造方法可以完成对象的创建,以及实例变量的初始化。

下面是一个构造方法示例:

public class Puppy{

  public Puppy( ) { }

  public Puppy(String name) {

       //这个构造器仅有一个name

      }

}  

 每个类都有一个隐藏的无参构造函数。

public class Dog{

    /**
     * 带参构造函数
     * @param name
     * @param age
     */
    public Dog(String name,int age){
        this.age = age;
        this.name = name;
    }

    /**
     * 无惨构造函数
     */
    public Dog(){}

    String name;
    int age;

    public void ptint(){
        System.out.println("name = "+this.name+";age = "+age);
    }

    public static void main(String[] args) {
        new Dog().ptint();
        new Dog("花花",9).ptint();
    }
}

2.构造方法和对象的初始化

构造方法怎么调用,使用哪个运算符?

当使用new 运算符实例化一个对象时,系统为对象创建内存区域并自动调用构造方法初始化成员变量。下面是new运算符实例化一个对象。

Puppy p = new Puppy( );

Puppy p1 = new Puppy(“张三”);

3.实例——用构造方法初始化成员变量

class Triangle
{
int x,y,z;
public Triangle(int i,int j,int k)
{  
x=i;y=j;z=k;
public static bpplean judge(Triangle m)
{ 
 if(Math.sqrt(m.x*m.x+m.y*m.y)= =Math.sqrt(m.z*m.z))
    //引用Math类库的sqrt()方法
    return true;
    else
    return false;
}
public static void main(String args[]) {
Triangle t1=new Triangle(3,4,5);
if(judge(t1))   //调用judge()方法,判断t1的成员变量是
    //否能构成直角三角形的3条边长
System.out.println("这是一个直角三角形");
else
System.out.Println("这不是一个直角三角形");
}

}

4.构造方法的特点

  1. 构造方法名与类名必须一致,大小写也要一样。
  2. 构造方法没有返回值,void类型也不写。
  3. 在创建一个对象的时候,至少要调用一个构造方法。
  4. 构造方法不能显式地直接调用。
  5. 构造方法的主要作用是对对象初始化。
  6. 修饰符列表目前统一写:public。千万不要写public static。

5.构造方法重载 

构造方法是支持方法重载的。在一个类当中构造方法可以有多个。并且所有的构造方法名字都是一样的。

对于实例变量来说,只要你在构造方法中没有手动给它赋值,统一都会默认赋值。默认赋系统值

1.方法重载特点:

  • 重载的方法必须在同一个类中
  • 方法名相同
  • 参数列表不同(不包含参数名不同)
  • 方法的重载与访问修饰符和返回值类型无关

6.成员变量

类中的属性,也就是直接在类中定义的变量称作成员变量,它定义在方法外面。
局部变量就是定义在方法中的变量;一般情况下,局部变量在使用前需要赋值,否则会编译出错。

成员变量和局部变量的区别:

  • 作用域不同。局部变量的作用域仅限于定义它的方法,在该方法外无法访问它;成员变量的作用域在整个类内部都是可见的,所有成员方法都可以使用它,如果访问权限允许,还可以在类外部使用成员变量。
  • 初始值不同。成员变量在定义时可以不初始化,Java会给成员变量赋初始值;但是Java不会给局部变量赋初始值,因此在定义局部变量时必须初始化后再使用。
  • 在同一个方法中,不允许有同名的局部变量,在不同的方法中可以有同名的局部变量。
  • 局部变量可以和成员变量同名,并且在使用时,局部变量具有更高的优先级。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值