JAVA 第四周学习总结

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

教材学习内容总结

  • 继承是一种由已有的类创建新类的机制。Java不支持多重继承,子类只能有一个父类。
  • 使用extends来定义一个类的子类,如:
class People{
.....
}
class ChinesePeople extends People{
....}

ChinesePeople类即被定义为People的子类。

  • 如果子类和父类都在一个包中,那么子类自然地继承了父类中不是private的成员变量/方法作为自己的成员变量/方法,且访问权限不变
  • 如果子类和父类不在一个包中,子类只继承父类中的protectedpublic访问权限的变量和方法。
  • [输入图片说明](https://images.gitee.com/uploads/images/2019/0322/233835_07436d8a_4786346.jpeg " .jpeg")
  • 子类对象可以调用继承的方法操作未被子类继承却分配了内存空间的变量。
  • instanceof运算符:如果左侧的对象由右边的类生成,运算结果为true否则为false
  • 子类声明的成员变量的名字和从父类继承来的成员变量的名字相同,此时,子类会隐藏所继承的成员变量。
  • 重写可以操作:1.继承的成员变量2.继承的方法3.子类新声明的成员变量4.新定义的其他方法
  • 重写不可以操作:被子类隐藏的成员变量和方法(如果想操作要加关键字super
  • 重写、重载的区分:
假设父类方法为:
【类型1】方法(参数1)
子类:(1代表一致,2代表修改)
【类型1】方法(参数1):重写
【类型2】方法(参数1):语法错误
【类型1】方法(参数2):重载

即重写一定要一模一样

  • 当在父类中定义多个构造方法时,应当包括一个不带参数的构造方法,防止子类省略super时出现错误
  • final类不能被继承,没有子类。例如String类就是不能扩展的final类
  • 当把子类创建的对象的引用放到一个父类的对象中时,就的到了该对象的上转型对象,那么这个上转型对象在调用这个方法时就可能具有多种形态不懂的子类
  • abstract类为抽象类,它只允许声明,但不允许实现,也不许用static修饰

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

  • 问题1:Integer类和int类的区别
  • 问题1解答:Integerint的包装类。一个非常简单的区分就是,Integer的初值为null(空),而int类的初值为0
  • 问题2:P125,思考如果UniverStudent子类的构造方法中省略super,程序的运行结果是怎样的?
    问题2解决方案:通过查阅相关资料,可知当父类不含无参构造方法时,子类构造方法必须显示父类带参构造方法,因为子类实例化时先要将父类实例化
package com.zero;

public class Son extends Father{

    private int age;

    //子类构造方法——必须先显式调用父类构造方法
    public Son(int i) {
        super(i);//必须先调用父类的构造方法,然后才能写子类构造方法的其他逻辑
        this.age = i - 20;
        System.out.println("实例化子类 age = " + age);
    }

    //main方法
    public static void main (String [] args) {
        //实例化子类Son
        Son so = new Son(40);
        Son so1 = new Son(50);
    }

}

运行结果为:实例化父类 ag = 40
实例化子类 age = 20
实例化父类 ag = 50
实例化子类 age = 30

代码托管


上周考试错题总结

19、下列代码中标注的(A,B,C,D)中,哪一个是错误的?(B)
abstract class Takecare {
protected void speakHello() {}     //A
public abstract static void cry();    //B
static int f()
{ return 0 ;}          //C
abstract float g();                //D
}
A .A
B .B
C .C
D .D

static和abstract不能一起修饰,该题属于记忆不清

感悟

java的学习越来越接近高潮部分,不再像大一时学C语言那般单纯写写小程序那般打打闹闹,Java作为面向对象语言的特点一点一点更加清晰的体现。我们更多的学习的是java与众不同的特点。越来越具有挑战性,也越来越有趣味性。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 41/41 2/2 20/20
第二周 391/432 1/3 18/38
第三周 841/1273 2/5 22/60
第四周 385/1712 2/7 30/90

参考资料

https://blog.csdn.net/huangzirong822/article/details/47264197

原文地址:https://www.cnblogs.com/darklord0604/p/10582133.html

时间: 2024-11-05 23:35:06

JAVA 第四周学习总结的相关文章

20165210 Java第四周学习总结

20165210 Java第四周学习总结 教材学习内容 第五章学习总结 子类与父类: 子类: class 子类名 extends 父类名 { ... } 类的树形结构 子类的继承性: 子类和父类在同一包中的继承性 子类和父类不在同一包中的继承性 继承关系的UML图 protected的进一步说明 子类与对象 子类对象的特点 关于instanceof运算符 成员变量的隐藏的方法重写 成员变量的隐藏: 子类对象以及子类自己定义的方法操作与父类同名的成员变量是指子类重新声明的这个成员变量. 子类对象仍

java第四周学习总结

学号20145336 <Java程序设计>第4周学习总结 教材学习内容总结 继承 继承符合(Don't Repeat Yourself)原则,即在自己的代码中不要重复自己编写的信息,这在多层框架中十分有用. 在上图中RPG.java是测试代码,继承的消除了SwordMan.java, Magician.java RPG.java中的重复代码 + 多态与is-a 编译程序就是语法检查器,要知道程序片段为何可以通过编译,为何无法通过编译,就是将自己当做编译程序,检查语法逻辑是否正确,方式是从=号的

java第四周学习

这一周学习的还是面向对象的方法和应用 Java中方法的使用和注意事项 如果没有返回值,就不允许通过return关键字返回结果 方法中不允许嵌套使用 Return返回值只允许返回一个值,不允许返回多个 逻辑代码不能写在方法的外面 一个类中允许出现两个相同的方法名,但是参数不能相同 方法的重载 指的是方法名一致,参数的类型不一致或者参数的个数不一致,参数类型的位置不一致,或者返回值类型不一致的定义方法 方法的重载可以提高编程效率 对象编程和面向过程编程 面向对象编程的好处: 1.更接近人类的一个思维

Java第四周学习日记(绪)

1.静态导入的作用:简化书写静态导入可以作用一个类的所有静态成员静态导入格式:import static 包名.类名静态导入要注意的事项:1.如果静态导入的成员与本类的成员存在同名的情况下,那么默认使用本类的静态成员,如果需要制定使用静态导入的成员,那么需要在静态成员前面加上类名. 2.增强for循环增强for循环的作用,简化迭代器的书写格式增强for循环的适用范围:如果是实现了Iterabl接口的对象或者是数组对象,,都可以使用增强for循环增强for循环的格式:for(变量类型 变量名:遍历

Java第四周学习日记

Day01 双列集合: 在现实生活中有些数据是以映射关系存在的,也就是成对存在的,比如夫妻等.单例集合无法表现出映射关系,所以学习双列集合. 双列集合无迭代器. 1.Map 双列集合: ————————| Map 如果是实现了Map类接口的集合类,具备的特点:存储的数据都是以键值对的形式存在的,键不可重复,值可以重复. ————————————| Hashmap 底层也是基于哈希表实现的. ————————————| Treemap ————————————| Hashtable 1-1 Has

20165220 Java第四周学习总结

教材学习内容总结 super:使用关键字super来访问和调用被子类隐藏的成员变量和方法. 接口:用关键字interface来定义一个接口.接口由类来实现以便使用接口中的方法,用关键字implements声明来实现一个或多个接口. 当子类新声明的变量名与继承的变量名相同时,继承的变量名会被隐藏.但是我们仍可以通过继承的方法来对隐藏的变量名进行操作.(继承的方法所操作的成员变量一定是被子类继承或隐藏的成员变量.) 上转型对象.通过把子类创建的对象的引用赋给父类创建的对象来得到上转型对象.上转型对象

20165221 JAVA第四周学习心得

教材内容总结 子类与继承 子类与父类 定义的标准格式为 class 子类名 extends 父类名 { ... } 如果一个类的声明中,没有使用extends关键字,则默认为Object类. 子类的继承性 判断是否继承的标准是看子类能否操作父类的该成员变量,若子类与父类在同一个包中,继承不是private的方法,不在同一个包中,子类只继承protected与public类. 子类与对象 关于instanceof运算符应该有左面的操作元是对象,右面的操作元是类 成员变量的隐藏和方法重写 编写子类时

201671010130 2016-2017-2 《Java程序设计》第四周学习小结

第四周学习小结 本次实验巩固了上次实验分隔数并求和的题,目前这个题有两种做法,一种是不断对数10求余,余数保存在sum中,然后左移一位,直到余数为零.另一种就是将数字强制转换成一个字符串数组String s=String.valueOf(num),根据方法s.toCharArray()将字符分离出来,据"x"-"0"=x,unicode码值相减即可得x的值. 父类和子类能够看两个交集,super关键字是否能够看做一个子类和超类的接口呢? 在子类中可以增加域.增加方法

201671010118 2016-2017-2《Java程序设计》 第四周学习心得

已经是第四周学习java课程了,但是自己还是有很多不足的地方,老师让编写一个程序"从键盘读取一个整数,如-123(不局限于该数),然后分离该整数的每位数字进行输出,数字之间空一格,并将每个数字加总求和."做这道题时,刚开始用的int方法,后来老师我们用string valueOf(num)和charAt(index)写这道程序,我对string valueOf(num)用的不是很熟练,老师讲了这道题的算法,我也不是很理解.这周的java作业我编程题也不怎么会做,我觉得自己掌握的东西太少