J2SE视频着重讲解了java基本语法,本次学习掌握了java的基本语法规则,对面向对象以及死锁现象都有了更深层次的了解。本博文主要对面向对象,容器,流做出讨论。
任何语言的学习都是由数据和程序两部分组成,数据主要区分的是不同数据类型在何时使用,所占用的内存空间是多少以及数据类型转换。java的数据类型主要分为基本数据类型和引用类型两方面,引用数据类型是分配在堆空间的数据。数据类型转换遵循字节数小的向字节数大的类型转换可自动转换,字节数大的向字节数小的转换,则需要强制类型转换机制,且数据准确度降低,字节由小到大数据类型顺序为:byte,short,char->int->long->float->double
程序要考虑的三大结构:选择,顺序,循环。Java程序在执行过程中不得不考虑的一个重要因素是错误处理机制:
RuntimeException是运行时错误,出现频繁,由系统自动检测并将他们交给特定的异常处理程序,不需要我们去捕获,error有Java虚拟机生成并捕获,程序也不需要做处理。
错误处理过程中遵循先捕获小异常然后再捕获大异常,小异常详细具体,先捕获大异常的情况下,小异常就会被忽略不计。
abstract class Animal { private String name; Animal(String name) {this.name = name;} /* public void enjoy(){ System.out.println("叫声......"); } */ public abstract void enjoy(); } abstract class Cat extends Animal { private String eyesColor; Cat(String n,String c) {super(n); eyesColor = c;} /* public void enjoy() { System.out.println("猫叫声......"); } */ //public abstract void enjoy(); } class Dog extends Animal { private String furColor; Dog(String n,String c) {super(n); furColor = c;} public void enjoy() { System.out.println("狗叫声......"); } } class Bird extends Animal { Bird() { super("bird"); } 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();} //Lady内引用的只是pet的enjoy方法
} public class Test { public static void main(String args[]){ Cat c = new Cat("catname","blue"); Dog d = new Dog("dogname","black"); Bird b = new Bird(); Lady l2 = new Lady("l2",d); Lady l3 = new Lady("l3",b); l2.myPetEnjoy(); //输出为dog的叫声 l3.myPetEnjoy(); //输出为bird的叫声 } }