2016-2017 2 20155335《java程序设计》第四周总结

#  20155335    《Java程序设计》第四周学习总结

 

##  教材学习内容总结

继承,在本职上是特殊到一般的关系,即is—a关系,子类继承父类,表明子类是一种特殊的父类,并且具有父类所不具有的方法和属性。

Java中所有的类都是通过直接或间接地继承java。Lang。Object类得到的,继承得到的称为子类,被继承的称为父类。

从类的结构看,子类不能继承父类访问权限为private的成员变量和方法,子类可以重复父类的方法,及的成员变量的命名可以与父类同名,java只支持单项继承,即一个类从多个超类派生的能力。其内部有四种形态(包括类属性和实例属性),方法(包括类方法和实例方法),构造器和初始化块(包括类的初始化和实例初始化块),对于继承中的初始化块顺序,又具体分为类的初始化和对象初始化。

类的初始化:

        首先为类的所有类属性和类的初始化块分配内存空间,并在类首次初始化阶段中为其初始化,类属性和始化块之间的定义时顺序决定了初始化的顺序。若类存在父类,父类的类属性和类初始化块首先被初始化。

对象初始化

在new创建对象时,首先对对象属性和初始化快分配内存,并执行默认初始化,如果存在父类,则先为父类对象属性和初始化块先分配内存并执行初始化。

继承的语法是

修饰符    sth1  extends  sth2

{

        //类定义部分

}

继承通过extends  关键字来实现的,前为子类,后者为父类。

如何理解多态

分装和继承为多态而准备,对多态的定义是允许不同类的对象对同一个命令作出相应,即同一命令可以根据发送对象的不同采用多种不同的行为方式(发送消息及函数调用)。只有满足三个必要条件,在能有多态的定义,这三个条件是(1)要有继承(2)要有重写  (3)父类引用指向子类对象。

如何理解接口

定义一个接口,接口定义同类的定义类似,也是分为接口的声明和接口体,其中接口体由常量定义和方法两部分组成。定义接口的基本格式如下:

  [修饰符]interface  接口名  [extend  父接口名列表]{

[public][static][final]常量;

[public][abstract]    方法;

}

修饰符:可选,用于指定接口的访问权限,可选值为public

。接口名需要选择参数,用于指定接口的名称,接口必须是合法的java标识符,一般情况下要求首字母大写。Extends  父接口名列表:可选参数,用于指定定义的接口继承那个父接口。当extends被使用时,父接口名必选参数。

      注意

      与java类文件一样,接口文件的文件名必须与接口名相同。

接口被定义后,就可以在类中实现这个接口。在类中实现接口可以使用关键字,基本格式为

[修饰符]class<类名>[extends  父类名][接口列表]{

}

对于多态的理解:

      同一操作作用于不同对象,可以有不同的解释,有不同的执行结果,简单来说就是:父类的引用指向子类对象。

多态的分类

      多态有四小类,强制的,重载的,参数的,参数的和包含的。

      *强制的:一种隐式做类型转换的方法。

      *重载的:将一个标志服作用域多个意义。

      *参数的:为不同类型的参数提供相同操作。

      *包含的:类包含关系的抽象操作。

 

    

##  教材学习中的问题和解决过程

-  1问题

          操作数组对象P102页的运行结果前三个都为null

-  xx1解决方案

已知类类型的初始值都为null。

Integer  []  scores=new  Integer[3];建立的对象个数为0,。

 

 

-  xx2问题

      如何让p135页的重载正确?

-  xx2解决方案

      将第六行中public  double  someMethod(int  i)改为

Public  double  someMethod(float  i)

 

-  ...

 

-  ...

 

##  [代码托管](链接)

-  代码提交过程截图:

-  运行  git  log  --pretty=format:"%h  -  %an,  %cd  :  %s"  并截图

-  代码量截图:

        -  运行  find  src  -name  "*.java"  |  xargs  cat  |  grep  -v  ^$  |  wc  -l  并截图

 

##  上周考试错题总结

-  错题1及原因  第4题

System.out.printf(“”52+25)的结果是5225

-  错题2及原因  第16题int  []  scores=Arrays.copyof(scores1,scores1.length),输出的第二行只有前五个元素,修改后的代码为int[]scores=Arrays.copyOf(scores1,5)

-  错题3  第27题

Java中如果将一个方法申明为私有,即通过private关键字来修饰,也就意味着该方法只能由这个类本身调用,构造方法类似于常规,同样可以被三个关键词修饰,但是不能有返回值,可以人为地申明为private,其他类不能直接调用该类生成新的对象,这种情况,该类只有一个对象实例。

 

posted on 2017-03-19 23:24  愤怒的小鸟哭了  阅读(101)  评论(0编辑  收藏  举报