java面向对象

来源:互联网 发布:艾克里里淘宝店链接 编辑:程序博客网 时间:2024/04/20 23:22

一、面向对象:

 对象:具体的实体

  属性(特征)

  方法(操作)

二、类和对象

 类是一组具有相同属性和方法的对象的集合

 类是对象的抽象,对象是 类的实例(具体)

三、使用类来创建对象

 类名对象名 = new 类名();

 对象名.属性;

 对象名.方法();

四、类的参数

 形参:方法定义处的参数

 实参:方法调用处传的值

 形参和实参名字可以不一样,但是数据类型要一样,个数要一样,顺序要一样

五、构造方法:构造对象的时候使用(初始对象时)

 public  类名(){ }

 注意:构造方法没有返回值、构造方法名字和类名一样

六、this:当前对象

 this.属性

 this.普通方法()

 本类构造方法的调用:this(参数)★必须放在第一句

七、方法重载:方法名相同、参数列表不同

 1、在同一类中

 2、方法名相同

 3、参数的个数或者类型不同

 4、与返回值、访问修饰符无关

八、成员变量和局部变量

 1、成员变量:类的范围内声明的,在类的整个范围内都能用。也叫全局变量
       局部变量:局部(方法里、代码体里)声明,在声明的范围内使用,叫局部变量
 2、局部变量在使用前必须赋初始值
       全局变量即使使用前没有赋初始值,系统默认会初始化
 3、局部变量可以和全局变量同名,也可以不同名。同名的时候,就近使用

九、面向对象三大特性:封装、继承、多态

 1、封装

  1-1:封装步骤

   1>把访问修饰符public改为私有访问修饰符private

   2>设置getter/setter()方法   

    get——取.........值   set——给.........赋值

   3>在set方法设置属性的存取限制

 1-2:包机制

  package 声明包

  import  导入报

 1-3:static关键字  在没有创建对象时,static初始化首先执行

  1>static修饰方法→静态方法

  2>static修饰成员变量→静态变量

  3>static修饰代码块→静态代码块

 2、继承:解决重用代码问题、符合is-a关系的设计

  2-1:步骤:

   1>定义父类

   2>定义子类,继承父类(extends)

  ★单根继承,每个类只能有一个直接父类

  2-2:子类访问父类成员

   1>访问父类构造方法 ★必须在第一句

    super(参数);

   2>访问父类属性 ★不能访问父类的private成员

    super.父类属性

   3>访问父类方法

    super.父类方法();

  2-3:方法重写:

   1>定义:

    子类根据需求对从父类继承的方法进行重新编写、重写时,可以用super.方法的方式来保留父类的方法、构造方法不能被重写

   2>规则

    方法名相同、参数列表相同、返回值类型相同或者是其子类、访问权限不能严于父类

  2-4:Object类

   1>Object类是所有类的父类

   2>equals()方法:是比较两个对象是否是同一个对象

   3>instanceof:用于判断一个引用类型所引用的对象是否算是一个类的实例

 3、多态:修改频繁,维护吃力 多态是一种行为

  3-1:定义:同一种引用类型,使用不同的实例而执行不同操作

  3-2:抽象方法:

   1>普通方法:

    修饰符 返回值 方法名(参数列表){  }

   2>抽象方法

    修饰符 abstract 返回值 方法名(参数列表);

   ★拥有抽象方法的类必须声明为抽象类(abstract)、但是,抽象类中不一定非要有抽象方法、抽象方法在子类中必须被实现,除非子类也是抽象类

    抽象类不允许实例化

  3-3:向上转型:

   父类型 引用变量名=new 子类型();

   ★可以调用子类重写父类后的方法、此时不能调用子类特有的方法

  3-4:向下转型

   子类型 子类引用变量名=(子类型) 父类型引用变量;

  3-5:多态应用

   1>使用父类作为方法的形参

   2>使用父类作为方法的返回值

十、接口:关键字:interface  接口是一种能力(方法),是一重约定

 1、用法

  1-1:变量:public static final

  1-2:方法:public abstract

  1-3:实现接口:implements

十一、异常 Exception

 1、常见异常

  InputMismatchException:数据格式不匹配的异常

  ArithmeticException:算数异常(/ by zero)

  NullPointerException:空指针异常

 2、异常处理机制

  2-1:关键字

   1>try→执行可能产生异常的代码

   2>catch→捕获异常

   3>finally→无论是否发生异常,代码总能执行

   4>throw→手动抛出异常

   5>throws→声明异常,声明方法可能要抛出的各种异常

  2-2:处理异常

   1>try { 

     //尝试运行的代码(可能发生异常的代码)

     } catch (异常类型ex) {   catch:多重、可以捕捉多种类型的、

      //对异常进行处理代码 

      ex.printStackTrace(); //打印异常堆栈信息  ex.getMessage(); //获得异常信息的提示,以字符串的形式返回

       }

   2>try { 可能发生异常代码 

    } catch(异常类型ex) { 对异常进行处理代码

    }finally { 关闭流}

    ★不管try...catch...是否发生异常,都执行finally里面的代码块;只有在catch代码块里面输入System.exti(1);才是中断程序

   3>try { 可能发生异常代码 

    }catch(异常类型ex) { 对异常进行处理代码;   return;

    }finally { 关闭流}

    ★执行顺序:try(发生异常对象)→catch(异常类型匹配)→finally→return(退出方法)

   4>throws:声明方法内抛出各种异常、跟在方法名后面写、多个异常用逗号隔开、调用者可处理异常,也可继续抛出

   5>throw:手动抛出异常  、位于方法体内部,可作为单独语句使用、抛出一个异常对象,且只能是一个异常

   6>自定义异常:

    继承Exception、RuntimeException、Throwable类

  2-3、异常链:创建了新的异常但却保留了原有异常的信息








0 0
原创粉丝点击