java基础知识点

jiang1 贡献于2012-05-10

作者 微软用户  创建于2011-12-23 08:53:00   修改者微软用户  修改于2012-02-09 06:25:00字数5259

文档摘要:方法的重载的不同点:1.参数个数不同2.参数顺序不一致3.参数数据类型不一样数据类型转换:newInteger(“”).intValue();Integer.parseInt(“”);其他数据类型也是按照这两种方法进行转换。多态的定义:相同类型的不同对象,在调用同一个方法时(做同一件事情)时,呈现出多种的行为特征.Animala1=newPerson();Animala2=newFish();a1.swimming();a2.swimming();上面代码中a1、a2都是Animal类型的对象,都在调用swimming()方法。
关键词:

方法的重载的不同点:1. 参数个数不同 2. 参数顺序不一致 3. 参数数据类型不一样 数据类型转换: (1) new Integer(“ ”).intValue(); (2) Integer.parseInt(“ ”); 其他数据类型也是按照这两种方法进行转换。 多态的定义:相同类型的不同对象,在调用同一个方法时(做同一件事情)时,呈现出多种的行为特征. Animal a1 = new Person(); Animal a2 = new Fish(); a1.swimming(); a2.swimming(); 上面代码中a1、a2都是Animal类型的对象,都在调用swimming()方法——但执行a1、a2的方法时, 它们实际表现出Person、Fish的行为特征,也就是有两种行为特征,这就是多态。 final关键字: 可以用来 修饰变量 表示该变量不能被修改 是常量 一般 变量名都会全部大写 并且设置为static static final double PI = 3.14; 方法 该方法不能被重写 可以使用,可以被重载 类 该类是最终类 不能被继承 俗称"太监类" 静态方法中不能使用非静态变量 静态方法属于类 不属于对象 一、 final关键字 常量的标识符必须全部大写 声明类: 声明方法: 声明变量: 全局常量 二、 抽象类 1 抽象类的概念:包含一个抽象方法的类称为抽象类,抽象方法是只声明而未实现的方法,所有的抽象方法必须使用abstract关键字声明,所有的抽象类也需要使用abstract关键字声明。 2 抽象类不能直接实例化,但是可以声明,如果要想使用抽象类,则必须依靠子类,抽象类必须被子类继承,而子类要实现抽象类中所有的抽象方法。(注意访问权限) 3、 思考:抽象类能否使用final关键字声明呢? 抽象类中能不能存在构造方法? 4、抽象类的用处:模版设计 三、接口(重点) 接口是一个特殊的类,在Java中接口是由抽象方法和全局常量组成的。 在Java中使用interface定义一个接口 范例:在接口中定义两个抽象方法,一个全局常量。 接口与抽象类一样,需要有子类,那么这时子类不在称为继承类,而是实现接口。通过implements关键字完成。 接口中声明的方法默认都是public abstract类型的方法。 2、 类实现多个接口,使用接口完成多继承的能力。 一个类虽然只能继承一个类,但是一个类可以实现多个接口,使用接口完成多继承的能力。 3、 一个类既要实现接口又要继承抽象类的话必须按照以下形式: 先继承抽象类,再实现接口。 语法:class A extends B implements C,D.... 4、一个抽象类可以实现多个接口,但一个接口不能继承一个抽象类。 5、一个接口可以同时继承多个接口(在日后的开发中会经常看到) 接口的应用:定义一系列标准 Static关键字 static关键字用来修饰变量、方法和内部类,称这些变量、方法和内部类为静态变量、静态方法和静态内部类 static关键字声明一个属性或方法是和类相关的,而不是和类的某个特定的实例相关,因此,这类属性或方法也称为“类属性”或“类方法” 在static修饰的方法里,只能调用用static修饰的静态变量,普通变量不可用。 如果访问控制权限允许,可不必创建该类对象而直接使用类名加“.”调用 static 不可用于修饰构造器 对象的多态性 在整个Java中有一个最重要的特性就是多态性。因为有了多态性的存在,才可以让程序变的灵活。 多态性是面向对象的最后一个特性: 1、 方法的重载和方法的重写实际上就属于多态性的一种体现。 方法重载实现静态多态性(编译时多态)。 在编译阶段,编译器根据参数的不同来静态确定调用相应的方法,即具体调用哪个被重载的方法。 方法覆盖实现动态多态性(运行时多态)。 由于子类继承了父类的所有的属性(私有的除外),所以子类对象可以作为父类对象使用。 2、 真正的多态性中还包含了一种称为对象多态性的概念。 对象多态性主要指的是子类和父类对象的互相转换关系。 向上转型:父类 父类对象= 子类实例 -->自动完成 向下转型:子类 子类对象= (子类)父类实例-->强制完成 对象多态性的作用: 范例:现在要求设计一个方法,那么此方法可以接收A类的所有子类的实例。 Instanceof关键字: 语法:对象 instanceof 类 --> 返回boolean 类型的数据,值是true或者false 结论:为了保证对象的向下转型操作正确,在操作之前最好加上instanceof关键字进行判断。 在继承关系中,父类的设计非常重要。只要父类设计合理了,则代码开发就非常的简单。 四、抽象类与接口的区别(绝对重点) NO 比较点 抽象类 接口 1 组成 抽象方法、普通方法、常量、变量、构造方法、全局常量 抽象方法、全局常量 2 英文单词 abstract interface 3 子类 子类通过extends继承抽象类 子类通过implements实现接口 4 限制 一个子类只能继承一个抽象类 一个子类可以实现多个接口 5 关系 一个抽象类可以实现多个接口 一个接口不能继承抽象类只能继承多个接口 6 实例化 都是通过对象的多态性,通过子类进行对象的实例化操作 7 实现限制 存在单继承局限 不存在局限 8 特性 表示一个模板 表示一系列标准 从以上表格中可以发现,如果抽象类和接口可以同时使用的话,优先使用接口,因为接口可以避免单继承的局限。 String类 一、 String的两种实例化方式 String本身是一个类,在String类中定义了如下的构造方法: public String(String original) 可以接收一个String类的对象,并且重新实例化String对象,除了此方法之外,String还可以采用直接赋值的方式进行对象的实例化。 二、 一个字符串实际上是一个匿名对象 字符串是一个常量,一旦声明,就不能更改。 三、 常用的方法(重点) public char charAt(int index): public int indexOf(String str) public int length() public String replace(char oldChar,char newChar) public String[] split(String regex) public String substring(int beginIndex) public char[] toCharArray() public String toLowerCase() public String toUpperCase() public String trim() StringBuffer的效率比String高的原因是String 对象是不可变对象,每次操作Sting 都会重新建立新的对象来保存新的值.这会影响性能的。StringBuffer 类则结果就不一样了,每次结果都会对 StringBuffer 对象本身进行操作,而不是生成新的对象,再改变对象引用。所以在一般情况下我们推荐使用 StringBuffer ,特别是字符串对象经常改变的情况下。 引用传递深入(重点) 通过三道引用传递的范例,来加深对引用传递的基本应用。 范例一: class Demo{ int x = 10 ; } public class RefDemo01{ public static void main(String args[]){ Demo d = new Demo() ; d.x = 30 ; fun(d) ; System.out.println(d.x) ; } public static void fun(Demo temp){ temp.x = 100 ; } } 答案:100 范例二: public class RefDemo02{ public static void main(String args[]){ String str = "hello" ; fun(str) ; System.out.println(str) ; } public static void fun(String temp){ temp = "world" ; } } 答案:hello 范例三: class Demo{ String x = "mldn" ; } public class RefDemo03{ public static void main(String args[]){ Demo d = new Demo() ; d.x = "hello" ; fun(d) ; System.out.println(d.x) ; } public static void fun(Demo temp){ temp.x = "world" ; } } 答案:world java设计模式 模式:就是前人对常见的问题作出了一个通用的解决方案。 一共有23种设计模式 但是常用的就七八种 单例模式: 1 构造方法私有化 2 创建一个对象 自己实例化自己 private static Student s = new Student(); 3 通过一个方法 返回Student的实例(对象) public static Student getInstance(){ return s; } 异常 一个try可以对应多个catch 但最好不要超过三个 否则 程序的可读性不强 一般 建议使用具体异常类捕获异常信息 不要统一都用Exception 注意捕获的顺序 小的异常在大的前面 finally块的特点 不管是否发生异常 都执行该语句块,而且在return之前执行。 一般用户读写文件 以及连接数据库操作的时候用 1、为什么要有异常处理? 异常 != 错误 先看一段代码: int num1 = 10 / 0; 计算机的发展史中有两大杀手:断电和除数为0 所谓的异常处理,就是指程序在出现问题时依然可以正确的执行完。 2、异常处理的格式 try { 可能出现异常的语句 } Catch(异常类 异常对象) { 异常处理 } ... finally { 异常的出口 } 范例:初始化两个参数,让用户来输入,使程序健壮。 3、异常处理流程 每当程序出现了异常,实际上都是产生了一个异常类的实例化对象。 这种处理格式实际上非常类似于方法传参,只要参数类型匹配了,则可以使用此catch进行处理。 实际上异常处理的最大父类:Throwable,一般开发中不会使用这种方式处理,因为其下有两个子类: Error:Error表示jvm错误,与程序无关。 Exception:一般指程序中过的错误,一般在开发过程中如果要想进行程序的处理,基本上都是使用此类表示。 一般在程序捕获的时候不要出现Throwable,应为范围太大了。 但是,在异常捕获的时候,有一个注意:捕获更细的异常要放在捕获更粗的异常之前。 捕获多个异常的时候要注意异常类的次序。 4、throws关键字 使用此关键字最大的好处是在方法中不处理任何的异常,而交给被调用者处理。 如果在主方法使用了throws关键字的话,则所有的异常交给最大的:JVM进行处理。 5、throw关键字和自定义异常 在程序中可以使用throw关键字人为抛出一个异常。 人为抛出一个异常,多用于自定义异常。 自定义异常就是写一个类继承Exception类,重写父类的构造方法。 6、异常中的return: 一个带返回值的方法内需要捕获异常在什么地方写return? 可以在try块中写return,也可以在finally块后写。 7、RuntimeException 之前学习过将字符串变成int类型的方法, 此方法中有throws关键字,那么既然有关键字,则意味着程序中应该使用try....catch进行处理。 但是在使用时发现程序中根本没有必要进行异常处理。 那么也就是说只要是RuntimeException的异常对象,虽然使用了throws,但是在程序中可以不使用try...catch进行处理。 8、throws作用: 有些方法中的异常 由于不知道会产生哪些异常,所以可以向上抛出异常 或者 可以在本方法中不处理异常 交给调用者进行处理 用途 一般在接口的方法中使用 public interface Dao{ //对对象进行增删改查的接口 public void add(Object obj)throws Exception; public void del(int id) throws Exception; } 9、throw作用:手动引发一个异常 需要一定自定义 异常类 写一个类 这个类 来继承Exception 或者RuntimeException 重写父类的构造方法(两个 一个无参的 一个带String类型的参数) NullPointerException:是java中最常见的异常之一 记住 如果你做java开发的话,此异常就伴随你开发一生 该异常的原因:对象实例化未成功,为null 然后调用了该对象的非静态方法 10.自定义异常类: (1)自定义异常类继承Exception, 需要try/catch捕获或抛出。 (2)自定义异常类继承RuntimeException一般由JVM抛出,即即使你不检查,JVM也会在运行时检查到并抛出。 RuntimeException 是属于unchecked (java 编译器允许不catch)表示一类 未知的不确定的只有在运行时才会出现的异常。 而非RuntimeException 是checked (java 编译器必须要求 catch),大概指一类可以预知的,当发生异常后知道如何处理的异常,所以需要捕获。

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 5 金币 [ 分享文档获得金币 ] 1 人已下载

下载文档