- 声明数组变量
Dog[] pets; pets = new Dog[7]; pets[0] = new Dog() ...
- JAVA是通过值传递的,也就是说通过拷贝传递
- 实例变量(声明在类中)永远都有默认值
integer 0,float 0.0,boolean false, reference null
局部变量(声明在方法中)没有默认值 - ==用来比较两个primitive主数据类型,或者判断两个引用是否引用同一个对象,equals()用来判断两个对象是否引用同一个对象
- ArrayList只能携带对象
- import和include不同,运用import只是省下每个类前面的包名称,程序不会因为import而变大或者变慢
- java.lang已经被预先引用
- public成员会被继承,private成员不会被继承
- 继承
public class Surgeon extends Doctor
- 多态数组,方法参数和返回值也可以用多态
Animal[] animals = new Animal[2]; Animal[0] = new Dog(); Animal[1] = new Cat();
Animal[0]是Dog类型,调用Dog类中的方法,但是使用方法的时候,必须是Animal类中有的方法(即按照引用类型判断哪些method可用) - 防止某类被作为子类
- 存取控制。就算类不能标记为私有,但是还是可以不标记为公有。非公有的类只能被同一个包的类作为子类
- 使用final修饰符。表示它是继承树的末端,不能被继承
- 让类拥有private的构造程序
- 覆盖:子类必须返回父类一样类型或者该类型的子类,不能降低存取权限重载:不能只修改返回类型
- abstract public class ... 抽象类不能创建实例
- 不能在非抽象类中含有抽象方法抽象的方法没有实体,但是抽象的方法必须在继承树结构下的第一个具体类中实现所有的抽象类
- 任何从ArrayList<Object>中取出的东西都被当作Object类型而不管它原来是什么
-
if(O is instanceof Dog)
类型检查 - 接口
public interface Pet {}
方法使用abstractpublic class Dog extends Canine implements Pet {}
必须实现接口的方法 - 栈:方法调用和局部变量 堆:所有的对象
- 构造函数不会被继承
- this() 从某个构造函数中调用同一类的另一个构造函数super() 调用父类构造函数都必须在第一行,不能兼得
- final:变量不能改变它的值,method不能覆盖该method,类不能继承
- String -> 数字:
Integer.parseInt("3"); Double.parseDouble("250.45")
数字 -> String:Double.toString(3.4); "" + 3.4
String.format("%, d", 10000000)
-
Calendar cal = Calendar.getInstance()
Calendar是一个抽象类,不能取得Calendar的实例,但是可以取得它的具体子类的实例 - 异常处理
public void takeRisk() throws BadException { if (abandonAllHope) throw new BadException(); }
void go()
throws BadException{ try{ ... }catch (BadException ex){ //只有try、finally必须声明异常 ex.printStackTrace(); //打印出详细异常名称、位置 ex.getMessage(); //获得具体异常名称 }finally { ... 一定会执行,即使try/catch中有return}}
- 内部类可以使用外部类的变量
不断更新~~~
网友评论