Java基础练习2(构造方法)

1.以下关于面向对象概念的描述中,不正确的一项是() A.在构造方法中,this()只能出现在构造方法第一行位置 B.在构造方法中,super()只能出现在构造方法第一行位置 C.this()和super()可以同时...

1.以下关于面向对象概念的描述中,不正确的一项是()

A.在构造方法中,this()只能出现在构造方法第一行位置

B.在构造方法中,super()只能出现在构造方法第一行位置

C.this()和super()可以同时出现在同一个构造方法中,this()指代调用本类中其他构造方法,super()指代调用父类构造方法

D.this()和super()不能同时出现在同一个构造方法中,否则编译器会报错

答案:C

解析:this()和super()不能同时出现在一个构造函数里面,因为this()和super()会争抢第一行的位置,并且都必须放在第一行位置,所以在同一个构造函数里面不能同时出现shit()和super(),否则编译器也不会通过

2.以下程序的输出结果是:()

class Super {
      public Super() {
            System.out.println("Super ");
      }
}

public class Sub extends Super{
      public Sub() {
              System.out.println("Sub");
      }

      public static void main(String[] args) {
              Super fc = new Super();
              Sub cc = new Sub();
      }
}  

A.Super                     B.Super                C.Sub                       D.Super

   Super                         Sub                      Super                        Sub

   Sub                                                                                          Sub

答案:A

解析:子类继承父类,先构造父类构造方法,再构造自己的构造方法,子类构造方法中默认有super(),且位于第一行

每日笔记:

  构造方法和成员方法的区别:

    1) 业务方面:

         构造器: 是描述"对象创建"过程, 如: 创建一个Student

         方法: 是描述对象的行为, 对象的功能, 如: 学生学习 study()

    2) 语法层面:

         构造器: 构造器名字与类名一致, 不能定义返回值

         方法: 名字一般与类名不同, 一定声明返回值C

    3) 使用:

         构造器是使用 new 调用构造器. 如: new Student()

         方法则是使用对象的引用调用. 如:stu.study()

         方法签名=方法名+参数类型列表,java同一个类中不能存在相同方法签名的方法

    4)默认构造器:java类一定有构造器

        当使用new 关键字时,JVM必定调用构造方法创建对象

        如果类没有声明任何构造器,javac自动提供一个无参默认,而如果你自己建了一个有参的构造方法,那么就不会再提供默认的无参构造了

  

  • 发表于 2019-04-25 22:00
  • 阅读 ( 249 )
  • 分类:网络文章

条评论

请先 登录 后评论
不写代码的码农
小编

篇文章

作家榜 »

  1. 小编 文章
返回顶部
部分文章转自于网络,若有侵权请联系我们删除