Java学习:面向对象(上)课后题整理

1.名词解释:构造方法、抽象

构造方法:是一个与类名相同的类方法。每当使用new关键字创建一个对象,为新建对象开辟内存空间后,Java系统将自动调用构造方法初始化这个新建对象,它不能通过对象引用来调用。它只属于类,不属于任何一个对象。定义时,构造方法没有返回类型;它具有多态性,可以被重载(参数不同)。如果用户没有在自定义类中定义构造方法,系统将为该类添加一个默认的空构造方法
抽象:从被研究对象中舍弃个别的、非本质的或与研究主旨无关的次要的特征,而抽取与研究有关的共性内容加以考察,形成对研究问题正确、简明扼要的认识。抽象与具体,就是一般性与特殊性,个性与共性的关系。在Java中,对象就是对客观事物的抽象,而类则是对对象的抽象。

2.对象位于内存何处?声明能引用对象的实质是什么?

对象被存储在内存中。
声明能引用对象的实质是在中存储了对象的地址

3.对象和基本数据作为参数传递时,有什么不同?

对象作为参数传递,是引用传递,即传的是这个对象的地址;基本数据作为参数传递,是值传递

4.在自定义对象中写finalize方法,什么情况下被调用?


如上图,当novel=null;时,对象没有任何引用,成为垃圾对象,但此时并没有执行finalize方法使垃圾回收,当执行了System.gc();,“提醒”系统进行一次垃圾释放,才调用了finalize方法。

5.对象在什么条件下成为垃圾?什么情况下释放垃圾对象,如何证明一个对象被释放了?

如上题当对象没有任何引用时,成为垃圾对象,但此时并没有被释放;当内存不够用时才会执行垃圾回收,或者当执行了System.gc();,“提醒”系统进行一次垃圾释放,系统才会有可能执行垃圾回收。如何证明一个对象被释放了?? 目前还没想到方法。

6.final修饰符有什么作用?

以final修饰类属性,则该属性为常量;如果修饰方法,则方法成为最终方法,在子类当中不能被覆盖。保证了程序的安全性正确性

7.static修饰属性和方法有什么特点?

static修饰的域变量不属于任何一个类的具体对象,而专属于类,特点为:它被保存在类的内存区(堆中)的公共存储单元中,而不是保存在某个对象的内存区中。
static修饰的方法称为静态方法,它属于类方法。不属于类的任何对象,具有如下特点:

  • static方法是类方法,但可以被所有对象所访问。调用这个方法时,可采用“对象应用.方法名”,也可采用“类名.方法名”。
  • static方法内部的代码,只能访问类中的static属性或方法,不能访问类中的非static属性或方法(因为它们属于对象);但非static方法(对象方法)可以访问static属性或方法。
  • main方法是特殊的静态方法。
8.Application程序执行时,为什么不能带后缀名?

因为用java运行Application时,时执行一个类,如果若写 java xxx.yyy,是代表要运行 package xxx 中的class yyy 里面的 main(String[]),所以当写 java xxx.class 时, 它会以为要找一个叫xxx的package里面的一个叫class的class.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值