Java入门到精通视频学习总结
2017-01-24 17:49
441 查看
章节2
课时51 对象转型_1
基本概念
一个基类的引用类型变量可以“指向”其子类的对象。一个基类的引用不可以访问其子类对象新增加的成员(属性和方法)。
【引用变量 instanceof 类名】可以用来判断该引用类型变量所“指向”的对象是否属于该类或该类的子类。
子类的对象可以当作基类的对象来使用称作向上转型(upcasting),反之称作向下转型(downcasting)。
对象转型实例I
代码public class Test { public static void main(String[] args) { Animal a = new Animal("name"); Cat c = new Cat("catname","blue"); Dog d = new Dog("dogname","black"); System.out.println(a instanceof Animal);// true System.out.println(b instanceof Animal);// true System.out.println(c instanceof Animal);// true System.out.println(a instanceof Cat);// false a=new Dog("bigyellow","yellow"); System.out.println(a.name);// bigyellow System.out.println(a.furname);// error Dog d1 = (Dog)a; System.out.println(d1.furcolor);// yellow } }
内存分析
课时52 对象转型_2
对象转型实例II
对象转型对于可扩展性带来的好处public class Test { public static void main(String[] args) { Test test = new Test(); Animal a = new Animal("name"); Cat c = new Cat("catname","blue"); Dog d = new Dog("dogname","black"); test.f(a); test.f(c); test.f(d); } public void f(Animal a){ System.out.println("name: "+a.name); if(a instanceof Cat){ Cat c = (Cat)a; System.out.println("" + "c.eyesColor"+" eyes"); }else if(a instanceof Dog){ Dog d = (Dog)a; System.out.println("" + "d.furColor"+" fur"); } } }
运行结果
name:name name:catname blue eyes name:dogname black fur
课时53 多态_1
基本概念
动态绑定是指“在执行期间(而非编译期间)”判断所引用对象的实际类型。根据其实际的类型调用其相应的方法。多态产生的必要条件
1、要有继承
2、要有重写
3、父类引用指向子类对象(这样当父类调用子类被重写的方法的时候时,多态就会派上用场)
动态绑定和多态
代码package TestPolymoph; class Animal { private String name; Animal(String name) { this.name = name; } public void enjoy() { System.out.println("叫声······"); } } class Cat extends Animal { private String eyesColor; Cat(String n, String e) { super(n); this.eyesColor = e; } public void enjoy() { System.out.println("猫叫声······"); } } class Dog extends Animal { private String furColor; Dog(String n, String f) { super(n); this.furColor = f; } public void enjoy() { System.out.println("狗叫声······"); } } class Lady { private String name; private Animal pet; Lady(String name, Animal pet) { this.name = name; this.pet = pet; } public void myPetEnjoy() { pet.enjoy(); } } public class Test { public static void main(String[] args) { Cat c = new Cat("catname", "blue"); Dog d = new Dog("dogname", "black"); Lady l1 = new Lady("l1", c); Lady l2 = new Lady("l2", d); l1.myPetEnjoy(); l2.myPetEnjoy(); } }
内存分析
课时54 多态_2
课堂练习
分析上面的程序,体会“多态特性”对于系统可扩充性的重要性。分析游戏物体的多态包装。
游戏图
课时55 抽象类
修改课时53的代码以讲解本节课内容
abstract class Animal { private String name; Animal(String name) { this.name = name; } public abstract void enjoy(); }
概念
含有抽象方法的类必须被声明为抽象类,抽象类必须被重写。抽象类不能被实例化。
抽象方法只需声明,而不需实现。
课时56 final关键字
代码路径:java\mashibing\TestFinal\TestFinal.java概念
final的类不能被继承。
final的方法不能被重写。
final变量的值不能被改变(final的成员/局部变量)。
错误说明
课时57 interface_1
接口
概念是抽象方法和常量值的定义的集合
从本质上讲,接口是一种特殊的抽象类,这种抽象类只包含常量和方法的定义,而没有变量和方法的实现。
特性
接口可以多重实现。
接口中声明的属性默认是public static final的;也只能是public static final。
接口中只能定义抽象方法,而这些方法默认为public的,也只能是public的。
接口可以继承其他接口,并添加新的属性和抽象方法。
多个无关的类可以实现同一个接口。
一个类可以实现多个无关的接口。
与继承关系类似,接口与实现类之间存在多态性。
定义java类的语法格式:
class [extends ] [implements [,] *]{ * }
接口举例
interface Singer { public void sing(); public void sleep(); } class Student implements Singer { private String name; Student(Strng name) { this.name = this.name; } public void study() { System.out.println("studying"); } public void sing() { System.out.println("student is singing"); } public void sleep() { System.out.println("student is sleeping"); } public String getName() { return name; } public void setName(String name) { this.name = name; } }
课时58 interface_2
代码路径:java\mashibing\TestInterface\Valuable.java课时59 总结
第三章总结练习(工人、农民、国家干部实现照顾宠物的接口)
public interface Valuable { public void feeding(); public void playing(); } class worker implements Valuabl 95c5 e { public void feeding() { System.out.println("worker is feeding the pets!"); } public void playing() { System.out.println("worker is playing with the pets!"); } } class farmer implements Valuable { public void feeding() { System.out.println("farmer is feeding the pets!"); } public void playing() { System.out.println("farmer is playing with the pets!"); } } class official implements Valuable { public void feeding() { System.out.println("official is feeding the pets!"); } public void playing() { System.out.println("official is playing with the pets!"); } }
章节3
课时60 异常的概念_1
异常的概念
程序运行过程中出现的一些异常事件。try-catch用来捕获异常。
错误的堆栈信息(e.printStackTrace();)
课时62 异常的分类
需要记住
一幅图五个关键字
try catch finally throw throws
先逮小的,再逮大的
异常和重写的关系
章节4
课时67 一维数组内存分析
一维数组的声明
声明方式type var[];
type[] var;
java语言中声明数组时不能指定长度。
int a[5];// 非法的
数组对象的创建
元素为引用数据类型的数组
数组元素的创建和使用
public class TestArray { public static void main(String[] args) { int[] a = { 2, 4, 6, 8, 1, 5, 9 }; for (int i = 0; i
相关文章推荐
- JavaSE视频学习阶段性总结 一(java入门,原生数据类型及使用注意,运算符)
- Java学习从入门到精通[原创]
- Java学习从入门到精通
- [转]Java学习从入门到精通
- [转]Java学习从入门到精通
- 【资料】Java学习从入门到精通 转载
- [java学习.载] Java学习从入门到精通.书籍篇
- 【转载】Java学习从入门到精通
- 真正的Java学习从入门到精通
- Java学习从入门到精通
- Java学习从入门到精通
- Java学习如何从入门到精通(一)
- Java学习从入门到精通
- Java学习从入门到精通[z]
- 真正的Java学习从入门到精通
- Java学习从入门到精通(转贴)
- Java学习从入门到精通[转]
- Java学习从入门到精通
- Java学习从入门到精通[转]
- Java学习从入门到精通