对象,引用和构造方法

举报
@小红花 发表于 2022/02/25 11:37:47 2022/02/25
【摘要】 变量必须先声明,在赋值才能访问。注意:对于成员变量来说,没有手动赋值时,系统默认赋值。引用数据类型默认值为:nullnull是一个java关键字,全部小写,表示空,是引用数据类型的默认值。 成员变量可以说是实例变量。实例变量是对象级别的变量。不能通过类名来直接访问实例变量。new对象的变量也叫作引用 访问变量的语法:引用.变量名 对象和引用的区别?对象:通过new出来的,在堆内存存储。引用:...

变量必须先声明,在赋值才能访问。

注意:对于成员变量来说,没有手动赋值时,系统默认赋值。

引用数据类型默认值为:null

null是一个java关键字,全部小写,表示空,是引用数据类型的默认值。


 

成员变量可以说是实例变量。

实例变量是对象级别的变量。

不能通过类名来直接访问实例变量。

new对象的变量也叫作引用

 

访问变量的语法:

引用.变量名

 

对象和引用的区别?

对象:通过new出来的,在堆内存存储。

引用:但凡是变量,并且该变量中保存了内存地址指向了堆内存的对象。

 

  • 成员变量必须通过创建对象的方式进行访问
  • 引用不一定是局部变量
  • 给对象设置空值,编译不会出现问题,运行会报错(空指针异常)
  • 你的对象被JVM判定为垃圾回收了。
  • 创建新对象的时候,必须赋值,不然那就是空值。

 

问题:java中的垃圾回收器GC主要针对回收的是堆内存当中的垃圾数据,那么什么时候会被垃圾回收呢?

答:没有任何引用指向该对象的时候。

 

java中规定:

参数传递的时候,和类型无关,不管是基本数据类型还是引用数据类型,统一都是将盒子中保存的那个值赋值一份,传递下去。传递后,本方法的值不变。参数传递的时候,一定是将盒子中的东西复制一份传递过去,内存地址也是值,也是盒子中保存的一个东西。方法的参数可以是基本数据类型,也可以是引用数据类型,只要是合法的数据类型就行。

问题:程序在什么情况下会出现空指针异常呢?

答:空引用 访问对象相关的数据时,会出现空指针异常

 

  • 构造方法:
    • 什么是构造方法?有什么用?
    • 构造方法是一个比较特殊的方法,通过构造方法可以完成对象的创建,以及实例变量的初始化。
    • 换句话说:构造方法是用来创建对象,并且同时给对象的属性赋值。(实例变量没有手动赋值的时候,系统会赋默认值)
    • 当一个类没有提供任何构造方法,系统会默认提供一个无参数的构造方法。
    • 而这个构造方法被称为缺省构造器

 

构造方法怎么调用呢?

使用new运算符来调用构造方法

构造方法的语法结构是:

修饰符列表    构造方法名(形式参数列表){

构造方法体;

}

 

  • 注意:
    • 1.修饰符列表目前统一写:public    千万不要写:public  static
    • 2.构造方法名和类名必须一致。
    • 3.构造方法不需要指定返回值类型,也不能写void,写上void表示普通方法,就不是构造方法了。

 

  • 构造方法的注意事项:
    • 当一个类中没有提供任何构造方法,系统默认提供一个无参数的构造方法。这个无参数的构造方法叫做缺省构造器。
    • 当一个类中手动的提供了构造方法,那么系统将不再提供无参数的构造方法。
    • 无参数的构造方法和有参数的构造方法都可以调用。

 

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

 

方法重载特点:

在同一个类中,方法名相同,参数列表不同。

 

  • 实例变量是在构造方法执行的过程中完成初始化的,完成赋值的。
  • 手动定义有参数的构造方法,无参数构造方法将消失。
  • 调用不同的构造方法需要创建不同的对象。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。