您的位置:首页 > 编程语言 > Java开发

面向对象基础==方法重载及继承09/11

2016-09-11 20:00 288 查看
                        学习报告

1、什么是重载?

解答:重载发生在一个类中,两个方法名相同,参数列表不同(包括参数类型,个数,顺序。)。与是否是返回类型的方法无关。调用方法时,根据方法的参数来决定调用那个重载方法。

2、什么是构造方法?构造方法的作用是什么?

解答:构造方法的方法名与类名相同,没有返回类型(一般也不加静态关键字修饰),利用构造方法可以产生该类的对象。

作用:1.为对象分配空间   2.初始化成员变量   3.返回该对象的引用

说明:如果一个类没有定义构造方法,虚拟机会默认分配一个无参构造方法给该类。如果一个类定义了构造方法,这时默认的无参构造方法就会消息。构造方法在产生对象的时候调用,通常使用构造方法做一些初始化动作。

3、说说下面的方法哪些重载了构造方法?

publicclass Test{

   public Test(int x){}

}

  a、public Test(int y){}                   不是

  b、public Test(String y){}                 是

  c、public void Test(Stringx){}         不是        

  d、public int Test(inty,String x){}    是(不是)

  e、public Test(int y,Stringx){}         不是(是)

  f、public Test(String x,inty){}          是

 

4、说出代码执行结果。

publicclass Test{

   public int x = 8;

   public void move(int x){

      System.out.println(x);

      System.out.println(this.x);//打印成员变量

   }

 

   public static void main(String[] args){

      Test t = new Test();

      t.move(6);

   }

}

执行结果是:6和8

5、说出下列代码执行结果

 a、public  class Test{   

   public static void main(String[] args){

   int  j;

   System.out.println(j);

   }

   }

执行结果:整形变量j没有初始化,编译报错(变量使用前必须初始化,编译出错)

 b、public  class Test{

   static int j;

   public static void main(String args){

   System.out.println(j);

   }

   }

执行结果:整形变量被声明为静态成员变量,被赋值为0,打印出为0(编译通过,运行时找不打程序入口点)

 c、public  class Test{

   int  j;

   public int getNum(){

   return this.j;

   }

   public static void main(String[] args){

//Test t =new Test();调用时,会对属性初始化

   System.out.println(getNum());

   }

   }

执行结果:静态的方法不能直接调用成员方法,直接报错(编译错误,静态方法不能直接调用成员方法与成员变量)

d、

public  class Test{ 

   public String x;

   public static void main(String[] args){

    Test t= new Test();

   String y = "";

   System.out.println(t.x.equals(y));

   }

   }

执行结果:抛出空指针异常,(编译正常,运行错误,构造方法会初始化成员变量,X属性是引用类型,所有初始化为NULL,当对null调用方法或者属性时,会抛出空指针异常)

6、什么继承?继承有什么优点?

解答:通俗的讲,观察我们要使用的类,确定他们之间在属性与行为具有的相同点与单独的类中差异的部分,将这些类中的相同属性或行为抽象到一个父类中,这样便于子类进行方法与属性的重用。

优点:1.重合的代码抽象到父类中,减少代码的繁琐与重写。

2. 便于子类进行方法与属性的重用。

3.对于不同行为与特征,在子类中可以重新定义。

4.父类的特征与行为可以在子类直接调用==通过继承的方式

7、继承使用什么关键字?

Extends

8、一个类可以同时继承多个类吗?所有类的父类是什么?

解答:不行,在C++可以,但是Java中不行。所有类的父类是Object
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  学习 面向对象 java