• java笔试题(2)


    • 简述构造器的运行机制

    首先要注意的是的构造器并不是函数,所以他并不能被继承,这在我们extends的时候写子类的构造器时比较的常见,即使子类构造器参数和父类的完全一样,我们也要写super就是因为这个原因。

    构造器的修饰符比较的有限,仅仅只有public private protected这三个,其他的例如任何修饰符都不能对其使用,也就是说构造器不允许被成名成抽象、同步、静态等等访问限制以外的形式。

    因为构造器不是函数,所以它是没有返回值的,也不允许有返回值。但是这里要说明一下,构造器中允许存在return语句,但是return什么都不返回,如果你指定了返回值,虽然编译器不会报出任何错误,但是JVM会认为他是一个与构造器同名的函数罢了,这样就会出现一些莫名其妙的无法找到构造器的错误,这里是要加倍注意的。

    Java在构造实例时的顺序

    构造的粗略过程如下

    1、分配对象空间,并将对象中成员初始化为0或者空,java不允许用户操纵一个不定值的对象。

    2、执行属性值的显式初始化(这里有一点变化,一会解释,但大体是这样的)

    3、执行构造器

    4、将变量关联到堆中的对象上

    • 概述成员变量与局部变量有什么不同

    (1)成员变量可以被public,protect,private,static等修饰符修饰,而局部变量不能被控制修饰符及static修饰;两者都可以定义成final型。

    (2)成员变量存储在堆,局部变量存储在栈。

    (3)存在时间不同。

    (4)成员变量有默认值,(被final修饰且没有static的必须显式赋),局部变量不会自动赋值

    • 什么是封装,封装有什么特点

    封装是JAVA面向对象的特点的表现,封装是一种信息隐蔽技术它有两个含义,即把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位,以及尽可能隐藏对象的内部结构,封装的特点是:对象以外的部分不能随意存取对象的内部数据,从而有效的避免了外部错误对它的“交叉感染”,使软件错误能够局部化,大大减少查错和排错的难度。

    • 简述final修饰符的使用和作用

    final修饰符在定义常量时,通常采用大写形式。Final常量可以在声明的同时赋初值,也可以在构造函数中赋初值,总之,必须在使用前对其初始化,并且只能赋值一次。为了确保某个函数的行为在继承过程中保持不变,并且不能被覆盖,可以使用final方法。被final说明的类,不允许被继承的类。

    我是天王盖地虎的分割线                                                                

  • 相关阅读:
    【LA3461】Leonardo的笔记本
    【洛谷P3708】Koishi的数学题
    【Uva11762】Race to 1
    【uva11421】玩纸牌
    【反演复习计划】【51nod1594】Gcd and Phi
    【乱入】Uva11021麻球繁衍
    【反演复习计划】【bzoj4407】于神之怒加强版
    BZOJ3293: [Cqoi2011]分金币
    BZOJ2400: Spoj 839 Optimal Marks
    BZOJ1391: [Ceoi2008]order
  • 原文地址:https://www.cnblogs.com/yydcdut/p/3861759.html
Copyright © 2020-2023  润新知