学号 20175201张驰 《Java程序设计》第4周学习总结

教材学习内容总结

第5章

继承:避免多个类间重复定义共同行为,用我们已经有的类,去创建新的类

任何子类都可以继承它的父类的成员变量,来作为自己的成员变量

在Java中只有单一继承,即子类只能继承一个父类

子类继承的方法只能操作子类继承和隐藏的成员变量!

「用父类声明对象引用,用子类生成对象」就有了多态。

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

问题1:private 与 protected 的用法?

问题1解决方案:private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有财产神圣不可侵犯嘛,即便是子女,朋友,都不可以使用。

protected:可以被子类,同package下类使用,不对外公开的访问修饰符。protected对于子女、朋友来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private。

问题2:extends的用法?

问题2解决方案:查阅后总结为:继承父类的行为,再扩充父类原本没有的行为。继承时使用extends关键字,private成员也会被继承,但子类无法直接存取,必须通过父类提供的方法来存取(父类愿意提供访问方法的话)

问题3:super的用法?

问题3解决方案:总结为:1.取得父类中的方法定义

2.执行父类中某构造函数

3.与this只能择一调用,而且一定要在构造函数第一行执行

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

问题1:有关abstract的用法

问题1解决方案: 在输入代码的过程中,总是对这个abstract不明白不了解,故上网查询,参考:https://blog.csdn.net/weixin_41715295/article/details/79319805

逐渐了解1,abstract修饰类,会使这个类成为一个抽象类,这个类将不能生成对象实例,但可以做为对象变量声明的类型,也就是编译时类型,抽象类就像当于一类的半成品,需要子类继承并覆盖其中的抽象方法。

2,abstract修饰方法,会使这个方法变成抽象方法,也就是只有声明(定义)而没有实现,实现部分以";"代替。需要子类继承实现(覆盖)。

3.注意:有抽象方法的类一定是抽象类。但是抽象类中不一定都是抽象方法,也可以全是具体方法。

4.abstract修饰符在修饰类时必须放在类名前。

5.abstract修饰方法就是要求其子类覆盖(实现)这个方法。调用时可以以多态方式调用子类覆盖(实现)后的方法,也就是说抽象方法必须在其子类中实现,除非子类本身也是抽象类。

课后练习

所谓“实践是检验真理的唯一标准”,所以为了检查和巩固自己的学习,我用IDEA讲课后习题联系了一遍

(9)选A:A类没有不带参数的构造方法

class A {

public int i=0;

A(int m) {

int i = 1;

}

}

public class B extends A {

super();

B(int m) {

int i = 2;

}

public static void main(String args[])

{

B b = new B(100);

System.out.println(b.i);

}

}

3(1)15.0;8.0

class A{

double f(double x,double y) {

return x+y;

}

}

class B extends A {

double f(int x,int y) {

return x*y;

}

}

public class E {

public static void main(String args[]) {

B b=new B();

System.out.println(b.f(3,5));

System.out.println(b.f(3.0,5.0));

}

}

3(2)11;11

class A{

public int getNumber(int a) {

return a+1;

}

}

class BB extends A {

public int getNumber(int a) {

return a+100;

}

public static void main(String args[]) {

A a= new A();

System.out.println(a.getNumber(10));

BB b=new BB();

System.out.println(a.getNumber(10));

}

}

3(3)98.0;9

class A{

double f(double x,double y) {

return x+y;

}

static int g(int n) {

return n*n;

}

}

class B extends A {

double f(double x,double y) {

double m = super.f(x,y);

return m+x*y;

}

static int g(int n){

int m = A.g(n);

return m+n;

}

}

public class EE {

public static void main(String args[]) {

B b=new B();

System.out.println(b.f(10.0,8.0));

A a= new B();

System.out.println(a.g(3));

}

}

3(4)120;120;120

class A {

int m;

int getM() {

    return m;

}

int seeM(){

    return m;

}

}

class B extends A {

int m;

int getM() {

    return m+100;

}

}

public class EEE {

public static void main(String args[]) {

    B b = new B();

    b.m = 20;

    System.out.println(b.getM());

    A a = b;

    a.m = -100;

    System.out.println(a.getM());

    System.out.println(b.getM());

}

}

代码托管

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长

目标 4000行 30篇 400小时

第三周 2197 4/4 10/10 java学习

学号 20175201张驰 《Java程序设计》第4周学习总结的更多相关文章

  1. 学号 20175329 2018-2019-3《Java程序设计》第九周学习总结

    学号 20175329 2018-2019-3<Java程序设计>第八周学习总结 教材学习内容总结 第十五章 泛型 可以使用"class 名称"声明一个类,为了和普通的 ...

  2. 学号:201521123116 《java程序设计》第二周学习总结

    1. 本章学习总结 一:学习了string的类型,string的对象是不可变的,创建之后不能再修改 二:SET PATH/CLASSPATH和-cp的用法. 三:学习了Java API 文档的使用方法 ...

  3. 学号:201521123116 《java程序设计》第九周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己 ...

  4. 学号:201521123116 《java程序设计》第一周学习总结

    #1. 本章学习总结了解了班级的纪律和期末成绩组成.本周重点学习了java语言的特点具有简单性和结构中立.明白了jdk是java开发人员使用的一种工具,以及编写一个java程序的所需步骤,懂得了jdk ...

  5. 2018-2019-3《Java程序设计》第二周学习总结

    学号20175329 2018-2019-3<Java程序设计>第二周学习总结 教材学习内容总结      第二三章与我们所学习的C语言有很多的相似点,在这里我想主要就以我所学习的效果来讨 ...

  6. 学号 20175201张驰 《Java程序设计》第8周学习总结

    学号 20175201张驰 <Java程序设计>第8周学习总结 教材学习内容总结 第十五章 知识总结: 1.泛型类声明:可以使用"class 名称"声明一个类,例如:c ...

  7. 学号 20175201张驰 《Java程序设计》第7周学习总结

    学号 20175201张驰 <Java程序设计>第7周学习总结 教材学习内容总结 第八章 String类能有效地处理字符序列信息,它的常用方法有: public int length()可 ...

  8. 学号 20175201张驰 《Java程序设计》第6周学习总结

    学号 20175201张驰 <Java程序设计>第6周学习总结 教材学习内容总结 第7章 ·1.Java支持在一个类中声明另一个类,这样的类称作内部类,而包含内部类的类称为内部类的外嵌类 ...

  9. 学号 20175201张驰 《Java程序设计》第5周学习总结

    学号 20175201张驰 <Java程序设计>第5周学习总结 教材学习内容总结 第六章 ·1.接口的接口体中只可以有常量和abstract方法. ·2.和类一样,接口也是Java中一种重 ...

随机推荐

  1. Python的单例模式

    一.何为单例模式 单例模式:保证一个类仅有一个实例,并提供一个访问他的全局访问点. 实现某个类只有一个实例的途径: 1.让一个全局变量使得一个对象被访问,但是他不能防止外部实例化多个对象. 2.让类自 ...

  2. 经典合集 - WP8.1数据源

    [内容说明:] 这里是一个页面类型的数据源,在开发WP应用程序中,因为目前没有数据库服务器等网络资源,突发奇想,通过博客园提供的WCF接口访问该博文地址获取文章内容,在应用程序中使用正则表达式解析并转 ...

  3. python 代理

    1.参考 http://docs.python-requests.org/en/master/user/advanced/ Using Python’s urllib2 or Requests wit ...

  4. AtCoder Grand Contest 030 (AGC030) C - Coloring Torus 构造

    原文链接https://www.cnblogs.com/zhouzhendong/p/AGC030C.html 题解 才发现当时是被题意杀了. 当时理解的题意是“对于任意的 (i,j) ,颜色 i 和 ...

  5. Python:爬虫之利用Python获取指定网址上的所有图片—Jaosn niu

    # coding=gbk import urllib.request import re import os import urllib def getHtml(url): #指定网址获取函数 pag ...

  6. ef core的外键约束笔记

    ef core设置可选外键,有如下几种方式:1.在依赖实体AAA中,并不显式设置外键属性XXXId 2.手动设置外键属性XXXId为可空类型(int?等类型) 3.在实体类与数据表进行映射时,配置狭隘 ...

  7. python 的 virtualenv 环境搭建及 sublime 手动创建运行环境

    一.安装 virtual env sudo pip install virtualenv二.进入一个空白的目录初始化 virtual env 的环境cd ~/workspace/python/virt ...

  8. css3实现水平垂直居中

    1.transform实现居中(未设宽高) <div id="wrap">内容</div> <style> #wrap{ padding:50p ...

  9. Django表单字段汇总

    Field.clean(value)[source] 虽然表单字段的Field类主要使用在Form类中,但也可以直接实例化它们来使用,以便更好地了解它们是如何工作的.每个Field的实例都有一个cle ...

  10. Java 接口 新特性(Java8)

    Java8新特性之接口增强 在Java7以及以前的版本中,接口里的方法都是抽象的,并且不存在静态方法,属性默认修饰符是public static final.所有方法的声明都是public [返回类型 ...