20145225《Java程序设计》 第4周学习总结
2016-03-27 23:02
435 查看
20145225《Java程序设计》
第4周学习总结
教材学习内容总结
第六章 继承与多态
6.1继承继承共同行为:存在着重复,可把相同的程序代码提升(pull up)为父类。extends关键字表示新建的类会扩充原有的类的行为。
多态与is-a:子类只能继承一个父类,并且子类与父类之间有一种is-a的关系,让不是一种的类扮演另一种类需要加上类似于 强制类型转换的语法。
重新定义行为:在继承父类之后,定义与父类中相同的方法部署,但执行内容不同。
抽象方法、抽象类:如果某个方法区块中真的没有任何程序代码操作,可以使用abstract标示该方法public abstract void fight,定义不完整的类就不能用来生成实例,内含抽象方法的类也一定要定义为不完整的抽象类,子类继承抽象类,对于抽象方法,一种是继续标示其为抽象类,另一种就是操作抽象方法。
6.2继承语法细节
protected成员:被声明为protected的成员,相同包中的类可以直接存取,不同包中的类可以在继承后的子类直接存取。
重新定义的细节:在调用方法前加上super关键字,重新定义父类中的方法在子类中权限只能扩大不能缩小,在jdk5之后返回类型也可以是父类中方法返回类型的子类。
构造函数。
垃圾收集:对于不再有用的对象,JVM的垃圾收集器会将其释放。不同的需求会有不同的垃圾收集算法。
抽象类:如果还有些方面没有确定,可以调用抽象方法,等到平台确定后,再对代码进行符合这个平台的完善就行。
public class Role1{
private String name;
private int level;
private int blood;
public int getBlood() { return blood; } public void setBlood(int blood) { this.blood = blood; } public int getLevel() { return level; } public void setLevel(int level) { this.level = level; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
、
public class RPG1 { public static void main (String[] args) { demoSwordsMan(); demoMagician(); } static void demoSwordsMan() { SwordsMan1 swordsMan1 = new SwordsMan1(); swordsMan1.setName("Justin"); swordsMan1.setLevel(1); swordsMan1.setBlood(200); System.out.printf("剑士 : (%s, %d, %d)%n",swordsMan1.getName(), swordsMan1.getLevel(),swordsMan1.getBlood()); } static void demoMagician() { Magician1 magician = new Magician1(); magician.setName("Moinca"); magician.setLevel(1); magician.setBlood(100); System.out.printf("魔法师 :(%s ,%d ,%d)%n",magician.getName(), magician.getLevel(),magician.getBlood()); } }
7.1接口
接口定义行为:对于定义行为,可以使用interace关键字定义,类要操作接口,必须使用implements关键字。
行为的多态:可以让一个对象强行扮演(cast)某种行为。
解决需求变化:在java中类可以操作两个以上的类,可以同时继承某个类并操作某些接口;于此同时,java中接口可以继承自另一个接口,也就是继承父接口行为,再在子接口中额外定义行为。
7.2接口语法细节
接口中的方法没有操作时,一定得是公开并且抽象。
在interface接口中常常可以定义枚举常数。
匿名内部类:主要是在临时继承某个类或操作某个接口并建立实例的需求。
使用enum枚举常数:public enum Action{}。
public class Submarine implements Swimmer{ private String name; public Submarine(String name){ this.name=name; } public String getName() { return name; } @Override public void swim(){ System.out.printf("潜水艇 %s 潜行%n",name); } }
、
public abstract class Fish implements Swimmer { protected String name; public Fish(String name){ this.name = name; } public String getName() { return name; } @Override public abstract void swim(); }
、
public class Human implements Swimmer { private String name; public Human(String name){ this.name=name; } public String getName() { return name; } @Override public void swim() { System.out.printf("人类 %s 游泳 %n",name); } }
、
public class Airplane implements Flyer{ protected String name; public Airplane(String name){ this.name=name; } @Override public void fly(){ System.out.printf("飞机 %s 在飞%n",name); } }
代码调试中的问题和解决过程
本周代码见代码托管https://git.oschina.net/nizaikanwoba/java-besti-is-2015-2016-2-20145225其他(感悟、思考等,)
没想法,好好学吧。学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 150/150 | 2/2 | 15/15 | |
第二周 | 150/300 | 1/3 | 15/30 | |
第三周 | 200/500 | 1/4 | 15/45 | |
第四周 | 200/700 | 1/5 | 15/60 |
参考资料
Java学习笔记(第8版)《Java学习笔记(第8版)》学习指导
毕向东java视频及教学pdf
相关文章推荐
- Spring MVC测试框架详解——服务端测试
- spring-aop相关术语
- 20145101《Java程序设计》第4周学习总结
- java接口 学习
- Java基础------知识点整理(五)-----多态
- java第四周学习总结
- java程序性能优化
- 20145237 《Java程序设计》第4周学习总结
- Java Regex中Matcher类的group(int m)方法
- java学习笔记16.3.27
- 20145235 《Java程序设计》第4周学习总结
- 浅说Java中的反射机制(一)
- 《JAVA高级程序设计》第三周作业
- 10张思维导图带你学习【JavaScript】
- java 求解字符串中第一次出现的字符的位置
- jdk动态代理和cglib动态代理
- Spring的@Resource注解及原理
- 20145213《Java程序设计》第四周学习总结
- 20145334赵文豪 《Java程序设计》第4周学习总结
- jmeter java sampler测试java接口(二)测试自己的代码