this关键字。 在类的方法定义中使用的this关键字代表使用该方法的对象的引用。 当必须指出当前使用方法的对象是谁时要使用this。 有时使用this可以处理发生成员变量和参数重名的情况。 this可以看作是一个容器,它的值是当前对象的引用。 static关键字。 在类中,用static声明的成员变量为静态成员变量,它为该类的公用变量,在第一次使用时被初始化,对于该类的所有对象来说,static成员变量只有一份。 用static声明的方法为静态方法,在调用该方法时,不会将对象的引用传递给它,所以在static方法中不可访问非static的成员。(静态方法不再是针对于某个对象调用,所以不能访问非静态成员。) 可以通过对象引用或类名(不需要实例化)访问静态成员。 属于整个类,而不是某个对象。 为了便于管理大型软件系统中数目众多的类,解决类的命名冲突问题,java引入(package)机制,提供类的多重类命名空间。 package语句作为java源文件的第一条语句,指明文件中定义的类所在的包。(若缺省该语句,则指定为无名包)。 java编译器把包对应与文件系统的目录管理,package语句中,用‘.’来指明包(目录)的层次。 编译出的class文件必须和包的层次完全一致;若调用包中的类必须写全包名。 必须class文件的最上层包的父目录于classpath下。 package 倒置的域名; public class A{ } 打包 jar-cvf xx.jar *.* java中使用extends关键字实现类的继承机制。 通过继承,子类自动拥有了基类(superclass)中的所有成员(成员变量和方法)。 java只支持单继承,不允许多继承。(一个子类只能有一个基类;一个基类可以派生出多个子类。) 对于class的权限修饰符只能是public或default。 方法的重写 在子类中可以根据需要对从基类中继承来的方法进行重写。 重写方法必须和被重写方法具有相同的方法名称、参数列表和返回值。 重写方法不能使用比被重写方法更严格的访问权限。 super关键字。 在java中使用super引用基类的成分。 继承中的构造方法 子类的构造的过程中必须调用其基本的构造方法; 子类可以在自己的构造方法中使用super(argument_list)调用基类的构造方法。使用this(argument_list)调用本类的另外的构造方法如果调用super,必须写在子类构造方法的第一行。 如果子类的构造方法中没有显式地调用基类构造方法,则系统默认调用基类无参数的构造方法。 如果子类构造方法中既没有显式调用基类构造方法,而基类中又没有无参的构造方法,则编译出错。 Object类 Object类是所有java类的根基类 如果在类的声明中未使用extends关键字指明其基类,则默认基类为Object类 toString方法 Object类中定义有public String toString()方法,其返回值是String类型,描述当前对象的有关信息。 在进行String与其他类型数据的连接操作时,将自动调用该对象类的toString()方法 可以根据需要在用户自定义类型中重写toString()方法。 equals方法 public class B{ public static void main (String args []){ Cat c1 = new Cat(1,2,3); Cat c2 = new Cat(1,2,3); System.out.println(c1==c2); System.out.println(c1.equals(c2)); } } class Cat{ int color,height,weight; public Cat(int color,int height,int weight){ this.color=color; this.height=height; this.weight=weight; } public boolean epuals(Object obj){ if(obj==null) return false; else{ if(obj instanceof Cat){ Cat c = (Cat)obj; if(c.color == this.color&&c.height==this.height &&c.weight==this.weight) {return true;} } } return false; } } 对象转型 一个基类的引用类型变量可以“指向”其子类的对象。 一个基类的引用不可以访问其子类对象新增加的成员(属性和方法)。 可以使用引用变量instaanceof类名来判断该引用型变量所“指向”的对 象是否属于该类或该类的子类。 子类的对象可以当做基类的对象来使用称作向上转型(upcasting),反 之称为向下转型(downcasting)。 增强程序可扩展性。 动态绑定和多态 动态绑定是指“在执行期间(而非编译期)判断所引用对象的实际类型, 根据其实际的类型调用其相应的方法。” 条件:1.要有继承; 2.要有重写; 3父类引用指向子类对象。 抽象类 用abstract关键字来修饰一个类时,这个类叫做抽象类;用abstract来修 饰一个方法,该方法叫做抽象方法。 含有抽象方法的类必须被声明为抽象类,抽象类必须被继承,抽象方法必 须被重写。 抽象类不能被实例化。 抽象方法只需声明,而不需实现。 final关键字 final的变量不能够被改变。 final的方法不能被重写 final的类不能被继承 接口(interface) 多个无关的类可以实现同一个接口。 一个类可以实现多个无关的接口。 与继承关系类似,接口与实现类之间存在多态性。 特性:1.接口可以多重实现; 2.接口中声明的属性默认为public static final 的;也只能是 public static final的; 3.接口中只能定义抽象方法,而且这些方法默认为public的、也只 能是普遍立场的; 4.接口可以继承其他的接口,并添加新的属性和抽象方法。
finally语句 finally语句为异常处理提供一个统一的出口,使得在控制流程转到程序的其他部分以前,能够对程序的
状态作统一的管理。 无论try所制定的程序块中是否抛出例外,finally所制定的代码都要被执行。 通常在finally语句中可以进行资源的清除工作,如:(关闭打开的文件,删除临时文件...) 使用自定义的异常步骤: 1.通过继承java.lang.Exception 类声明自己的类。 2.在方法适当的位置生成自定义异常的实例,并用throw语句抛出。 3.在方法的声明部分用throws语句声明该方法可能抛出的异常。