第四周学习总结 补充

1.构造方法不能被子类所继承,但子类对象创建时,会调用父类的构造方法产生对象。

2.由于子类对象中包含完整的父类对象,所以父类对象中的所有属性和方法都是可以继承的(包括私有属性和私有方法)。只是私有属性和私有方法不能被子类直接访问,可以通过公有方法调用。

3.静态代码块

static{

}

在类加载时自动执行,而且只执行一次。

当需要导入例如Scanner和FileReader这一类只需要一次导入或一次操作时,可以使用静态代码块,会比放在构造方法里好。

4.实例化代码块

{

}

对象每产生一个,就执行一次实例化代码块,执行时机是紧接着子类构造方法中的super()之后执行,在其他语句之前执行。

5.多态

允许一个父类变量引用子类的对象(相当于允许double x=int类型的3,小类型转变成大类型);允许一个接口类型变量引用实现类对象。反过来却不行。

一句话描述:相同的行为,却有不同的实现。

举例:

public class animals(){

}

public class dog extends animals(){

}

public class cat extends animals(){

}

Animals an1=new dog();

Animals an2=new cat();

由于子类中包含一个完整的父类对象,所以父类变量中定义的方法和属性在子类对象中都能找到。

所以父类对象可以指向子类对象。但是反过来,子类对象的方法和属性可能多于父类,所以子类变量不能指向父类对象。

多态调用时,用父类变量指向子类对象,只能调用父类变量中定义的方法和属性,不能调用子类特有的方法和属性。

多态调用方法时,优先调用子类重写的方法。

同理,所以object作为所有类的父类 可以指向任何类的对象 例如:object ob1=new Animals();object ob1=new dog();object ob1=new cat();

6.内部类

在类的内部定义类 就叫内部类 包含内部类的就是外部类

内部类相当于外部类的属性 内部类对象的产生必须依赖于外部类对象的产生

内部类的命名规则:外部类比如是a.class  内部类名为b 那么内部类class名为 a$b.class

例子:

public class student{

public student(){system.out.println(“学生类创建完成”)};

public class goodstudent{

public goodstudent(){

system.out.println("好学生内部类创建完成");

}

}

public static void main(String [ ]  args){

Student stu1=new Student();

Student.Goodstudent  gs1=stu1.new goodstudent();

}

}

7.多态的实现

高内聚 低耦合(暂时不理解)

8. for each循环 用于遍历数组元素

举例:

Animals [ ] arr1=new Animals [8 ];

for(Animals a:arr1){

a.eat();

}

9. a(变量名) instanceof type(如:student) 返回boolean值  注意 instanceof是连在一起的

举例:

if (arr[2] instanceof Human) {
System.out.println("同类");
}

对于一个变量 他属于自己的类 也属于父类  都 返回true

10.面向对象的特征

继承、封装、多态

补充:静态多态和动态多态

静态多态性指的是程序在编译时,系统就能决定调用哪个函数,如重载。 动态多态性指在运行中才能动态确定操作指针所指的对象,主要通过虚函数和重写来实现。 

11.抽象类

如果一个类中的方法只有定义,没有具体的实现,那么这个方法就叫做抽象方法。

采用关键字abstract定义,拥有抽象方法的类就必须是抽象类,也必须用abstract修饰。

抽象类不能实例化对象。(比如人类,本身就是一个抽象类。不能说实例化一个人类出来,而应该说实例化一个人出来,这个人是抽象类人类的子类,实例化也由这个子类去实现。)如果要实现只能通过指向子类对象 Human hu1=new Man();

抽象类的抽象方法由子类根据子类的自身特点分别实现。

抽象方法的一般形势:public abstract void getmoney();

不能带有大括号{},否则报错,因为带有{}也是一种实现,而抽象方法是不能实现的。

在子类继承了抽象类以后,快捷添加抽象方法的方式是点击红叉,选择 add unimplement methods选项进行添加。

而且抽象类有几个抽象方法,子类就必须全部实现几个。如果不全部实现,那么就只能定义这个子类也是一个抽象类。

补充:一个文件里可以创建多个类,但只能有一个public 类    而且主方法必须放在这个public类里

时间: 2024-08-08 18:04:29

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

2017-2018-1 20155305 《信息安全系统设计基础》第四周学习总结(课堂提交作业未来得及提交码云链接myod补充博客)

2017-2018-1 20155305 <信息安全系统设计基础>第四周学习总结(课堂提交作业未来得及提交码云链接myod补充博客) 课堂提交题目要求 编写MyOD.java 用java MyOD XXX实现Linux下od -tx -tc XXX的功能 代码码云链接补交 源代码main函数 #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.

信息安全设计系统第十四周学习总结

信息安全系统设计基础第十四周学习总结 [学习时间:5小时] [学习内容:第九章——虚拟存储器] 一.课本内容梳理 1.虚拟存储器 作用: 将主存看作是一个存储在磁盘上的地址空间的高速缓存,在主存中只保护活动的区域,并根据需要在磁盘和主存之间来回传送数据: 为每个进程提供了一致的地址空间,从而简化了存储器管理: 保护了每个进程的地址空间不被其它进程破坏 地位: 虚拟存储器是中心的:它是硬件异常.硬件地址翻译.主存.磁盘文件和内核软件的交互中心: 虚拟存储器是强大的:它可以创建和销毁存储器片.可以映

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

20165115 2017-2018-2 <Java程序设计>第四周学习总结 教材学习内容总结 第五章主要是围绕子类的继承展开,并在此基础上介绍了一系列的方法与关键字.第六章主要讲述的内容是接口的实现. 代码托管 上周考试错题总结 完成后补充 参考资料 Java学习笔记(第8版) <Java学习笔记(第8版)>学习指导 ... 原文地址:https://www.cnblogs.com/zcy20165115/p/8643294.html

20172311 《程序设计与数据结构》第四周学习总结

20172311 <程序设计与数据结构>第四周学习总结 教材学习内容总结 教材学习中的问题和解决过程 问题1:不理解compareTo()方法 问题1解决方案: 网上查找的较易理解的实例 public class Test{ public static void main(String args[]){ Integer x = 5; System.out.println(x.compareTo(3)); System.out.println(x.compareTo(5)); System.ou

20172304 《程序设计与数据结构》第四周学习总结

20172304 <程序设计与数据结构>第四周学习总结 教材学习内容总结 第六章主要介绍了列表,这个列表是一种概念上的笼统的定义. 列表包括链表和数组. 列表分为:有序列表,无序列表,索引列表. 有序列表 其元素按照元素的某种内在特性进行排序. 无序列表 其元素件不具有内在顺序,元素按照他们在列表中的位置进行排序 索引列表 其元素可以用数字索引来引用 有序列表和无序列表在插入式有区别,有序列表需要做到插入之后还是有序的.而无序列表不是这样的.而索引列表虽然可以通过索引进行插入,删除操作,但是还

八月份第四周学习总结

八月第四周学习总结 一,本周,坚持了每天学习Java一小时的要求复习了java第四章:表达式和流控制:第五章:数组和字符串:复习了变量及变量的初始化和作用域,算术运算符.关系运算符.逻辑运算符.位运算.和程序控制流中的分支语句.循环语句.和java中数组的定义及字符串的应用如:一维数组的定义和初始化方法,二维数组的定义和引用方法以及数组的复制方法等.此外,继续在PTA平台上用java重新做了一些简单的题目,还在网上补充学习了String 类.StringBuffer 的创建.一般应用.所属方法等

第十四周学习进度

时间 十四周 学习时间 78小时 代码量 1623行 所学知识 临近期末,学习任务越来越重,用在专业技术学习上的时间相对减少了很多.不过这周还是有些收获的.首先是数据结构作业的完成,我头一次使用Qt写了一个图形界面.以前我学习Qt是总觉得它晦涩难懂,但是这次我只是看了看学习视频,觉得容易多了.虽然当下图形界面不是很热门,但是学了两年的计算机,连一个图形界面都写不出来还是很尴尬的,所以以后若是有时间还是应该好好学学.

20140256985《嵌入式程序设计》第三、四周学习总结

1.第三四周学习情况 上课能跟上,而且新的虚拟机非常好使,编辑代码的时候很是方便,没有上一个虚拟机那么复杂,非常好用! 2实验楼学习内容    (1).安装并解压arm-linux-gcc交叉编译工具 (2).测试arm-linux-gcc是否可运行 (3).解决64位系统下安装32位软件的问题和 (4).将arm-linxu-gcc加入环境变量PATH中 (5).bootboader的配置,移植和编译 解压文件 建立板级支持包 修改eduk2410文件 修改Makefile文件 编译U-Boo

20145301第四周学习总结

20145301第四周学习总结 教材学习内容总结 第六章 6.1 何谓继承 何谓继承 面向对象中,子类继承父类,避免重复的行为定义,不过并非为了避免重复定义行为就使用继承,滥用继承而导致程序维护上的问题时有所闻.如何正确判断使用继承的时机,以及继承之后如何活用多态,是学习继承时的重点.: 通过extends继承的父类可以是不加abstract关键字的普通类,也可以是加了abstract关键字的抽象类.继承普通类时可以覆写父类的方法,或者创建自己独有的方法,或者这两者都不使用.继承抽象类时,必须覆