20165205 2017-2018-2 《Java程序设计》第四周学习总结

本文总结了Java程序设计中的继承与多态概念,包括子类与父类的关系、多态的应用、抽象方法与抽象类的区别、接口的定义、权限关键字的作用以及super和final的应用。同时分享了代码调试中遇到的问题和解决方法。

20165205 2017-2018-2 《Java程序设计》第四周学习总结

教材学习内容总结

  • 相关概念:
    • 继承:避免多个类间重复定义共同行为
    • 子类与父类:
      • 父类:
        • 对有着共同特性的多类事物,进行再抽象成一个类,这个类就是多类事物的父类
        • 父类的意义在于可以抽取多类事物的共性
      • 子类既可以是一个子类,也可以是一个父类;父类既可以是一个父类,也可以是一个子类
      • 在Java中只有单一继承,即子类只能继承一个父类
      • 子类与父类间会有is-a的关系(子类 is a 父类
    • is-a
    • 多态:
      • 继承可以复用代码,更大的用处是实现「多态」
      • 封装是继承的基础,继承是多态的基础
      • 「用父类声明对象引用,用子类生成对象」就有了多态
    • 覆盖:子类中有和父类中可访问(可继承到子类)的同名同返回类型同参数表的方法,就会覆盖从父类继承来的方法
    • 抽象方法、抽象类:
      • Java中有抽象方法的类一定是抽象类,但抽象类中的方法不一定都是抽象方法
      • 抽象类不能使用new生成对象
    • 上转型对象:
      • 不要将父类创造的对象和子类对象的上转型对象混淆。
      • 如果子类重写了父类的静态方法,那么子类对象的上转型对象不能调用子类重写的静态方法。
    • 关于接口:
      • 接口(interface),在Java编程语言中是一个抽象类型,是抽象方法的集合
  • 关键字:
    • extends
      • 继承父类的行为,再扩充父类原本没有的行为
      • 继承时使用extends关键字,private成员也会被继承,但子类无法直接存取,必须通过父类提供的方法来存取(父类愿意提供访问方法的话)
    • 权限关键字:
      • public:权限最大
      • protected:被声明为protected的成员,相同包中的类可以直接存取,不同包中的类可以在继承后的子类直接存取
      • private:权限最小

        但实际上有四个权限范围(未定义权限关键字时默认为包范围):

        关键字类内部相同包类不同包类
        public可存取可存取可存取
        protected可存取可存取子类可存取
        可存取可存取不可存取
        private可存取不可存取不可存取

        设计时使用权限需根据经验或团队讨论而定,通常先使用private,以后视需求再放开权限。

    • super
      • 取得父类中的方法定义
      • 执行父类中某构造函数
      • this只能择一调用,而且一定要在构造函数第一行执行
    • final
      • 定义类:表示这个类是最后一个,不会再有子类,不能被继承
      • 定义方法:表示最后一次定义方法,子类不可以重新定义final方法
    • abstract:如果某方法区块中没有任何程序代码操作,可以用abstract标示该方法为抽象方法,该方法不用写{}区块,直接;结束即可

代码调试中的问题和解决过程

  • 问题1: 课本中多个代码都写了许多个java文件,这样就要求一定要放在同一个文件夹之下,假如不放在同一文件夹之下,编译也是十分麻烦的,
  • 问题1解决方法:所以我把书上的分开的java文件写在了一个文件里,这样比较方便,但是我不知道这样做到底好不好。但是确实方便一点是真的。
    1296460-20180325131234886-338863070.png

上周错题总结

  1. 3*4的值相等的是:3<<2。4的二进制是100,所以3*4是3左移2位和3<<2一样.
  2. 观察以下方法的定义,则该方法返回类型为的double.

     ReturnType method(byte x,double y) { 
    
     return (short)x/y*2;
    
     }

    short将byte类型的x强制转化为short类型,但y的精度更高,所以返回类型为double。

  3. Float和float不一样,Float是float提供的封装类,不是基本数据类型。以0开头是八进制表示法,十六进制是0x开头。

  4. “字符类型”中的“字符”指Unicode表中的一个字符。

  5. 错误的初始语句有:char str[]='hello';,char str[100]="hello";,char str[]={'hello'};

    代码托管

1296460-20180325132728103-2060764683.png

总结

在这次的博客里,我把知识总结和教材中的问题及解决方法合并在了一起,没有采用之前的只列知识点,而是把知识点和详细的内容写在了一起,这样我看的时候也容易一点。当然也有一些是我没有写到的。
随着时间推移我们学习的内容也越来越难,越来越深入了,但是只要我能紧跟老师的时间线,紧凑地学习,是可以掌握大部分知识的。

posted on 2018-03-25 14:23 mushroom1111 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/mushroomissmart/p/8644474.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值