Java的构造方法

文章详细阐述了Java中的构造方法,包括无参和有参构造器的作用及区别。同时讲解了局部变量和成员变量的特性,如作用域和初始化。接着讨论了方法的重载,强调同名不同参的原则。此外,文章还介绍了封装的概念,即隐藏实现细节并提供公共访问方式。最后提到了重写(override)的规则和访问修饰符的权限控制。
摘要由CSDN通过智能技术生成

一、构造方法

构造方法是一种特殊的方法,与一般的方法不同是:

1.构造方法的名字必须与定义他的类名完全相同,没有返回类型,甚至连void也没有。

2.构造方法的调用是在创建一个对象时使用new操作进行的。构造方法的作用是初始化对象。

3、不能被static、final、synchronized、abstract和native修饰。构造方法不能被子类继承。

无参构造方法

构造方法可以被重载没有参数的构造方法称为默认构造方法,与一般的方法一样,构造方法可以进行任何活动,但是经常将他设计为进行各种初始化活动,比如初始化对象的属性。

当自己写出有参构造方法时,不再给出默认的无参构造方法。

它的特殊性反映在如下几个方面:

(1)构造方法名与类名相同.

(2)构造方法不返回任何值,也没有返回类型,也不写void.

(3)每个类可以有零个或多个构造方法.

(4)构造方法在创建对象时自动执行,一般不能显式地直接调用.

具体作用(构造方法一旦执行)

  1. 在堆中开启空间,分配地址值

  1. 属性和方法初始化

  1. 对象创建成功,将地址赋值给变量(对象名)

有参构造方法

在创建对象时,调用有参构造方法,方法内部有对属性赋值的过程,所以有参构造创建出的对象的属性是指定值

有参构造和无参构造的区别:

  1. 相同点:都能够创建对象

  1. 不同点:无参构造创建出的对象属性值都是默认值;有参构造创建出的对象属性值是指定值

两者都是创建对象,只是不同的效果,看情况选择

二、局部变量

/*
    *  局部变量
    *  1、方法声明的和方法体内
    *  2、只能在方法内部使用
    *  3、局部变量使用前需要主动赋值
    *  4、在栈的栈帧中
    *  5、随着方法的进栈而进栈,方法出栈则消失
    * */

成员变量

 /*
    *  成员变量/成员属性  是对象的
    *  1、类中方法外
    *  2、类中的所有方法都可以使用
    *  3、成员变量会随着创建对象被赋予默认值(不用主动考虑默认值)
    *  4、在内存的堆中
    *  5、在对象创建时出现并初始化,失去引用后,会被gc处理(垃圾回收机制)
    * */

三、重载

⽅法重载:在⼀个类中的出现同名⽅法称之为⽅法的重载

⽅法重载的要求:

1、同名不同参(参数类型、个数、顺序)

2、与返回值,访问修饰符⽆关

调⽤重载的⽅法会根据传递的参数不同,去执⾏不同的⽅法

重载的好处:⽅便、灵活、屏蔽使⽤差异

四、封装

类的封装:将代码封装在一个类中,隐藏一些代码实现的逻辑,对外提供与一个公共的访问方式。

外部使用getter()、setter()方法访问

五、创建对象的过程

new Student(); 或者 new Student(int age,String name);

  1. 在堆中开辟空间,分配地址值

  1. 属性和方法初始化默认值

  1. 执行构造方法内部的代码

  1. 对象创建成功,将地址值赋值给变量(对象名)

六、重写(override)

  1. 重写是发生在继承中,子父类中

  1. 重写要求子类重写父类方法

  1. 要求:访问修饰符,返回值类型,方法名,参数列表完全和父类一致(子类访问修饰符可以 >= 父类)

  1. 一般重写后,子类的方法上都会有一个@Override

@Override  //  重写标记,告诉程序这个方法是重写父类的
public void xxx(){
    System.out.println("xxx");
}

七、访问修饰符

访问修饰符,也叫做访问限定符,访问控制符,其实就是控制权限控制着类,属性,方法以及构造方法的访问权限(在不同的位置能不能使用)访问修饰符有4个:

public , protected , 缺省(默认) , private

当前类

当前包其他类

不同包的子类

不同包非子类

public

protected

自己调用自己的属性不行;

子类对象可以调用

×

默认(package)

×

×

private

×

×

×

访问修饰符可访问的范围: public > protected > package > private

默认访问修饰符-不使用任何关键字

使用默认访问修饰符声明的变量和方法,对同一个包内的类是可见的。

接口里的变量都隐式声明为 public static final,而接口里的方法默认情况下访问权限为 public

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值