*****--------------面向对象课程大纲-----------*****

面向对象概述

类的构造方法

静态变量、常量和方法

类的主方法

对象

类的继承

object类

对象类型的转换

使用instanceof操作符判断

方法的重载

多态

抽象类与接口

Java类包

final

内部类

异常概述

处理程序异常错误

Java常见异常

自定义异常

在方法中抛出异常

运行时异常

异常的使用原则

======================================================================

<一>面向对象概述


概述:现实世界中所有的事物都是对象,对象都具有某些特征,并展现某些行为

对象的两个要素:

(1)属性 :用于描述对象静态特性(结构特性)的一个数据项。如描述一个人可用姓名、性别、×××号等属性。 

(2)方法(也称服务):用于描述对象动态特性(行为特性)的一个操作系列。如每个人都具有工作、学习等行为特性。 


<二>类的概念

(1)同一类中的对象有相同的属性(也称为成员变量,它描述该类的静态特性或结构特性) 

(2)同一类中的对象有相同的方法(也称服务,它描述该类的行为特性或动态特性) 

(3)同一类中的对象遵守相同的语义规则。(共同的约束或规则) 


<三>类与对象

1.对象:对象表示现实世界中某个具体的事物

对象具有两方面的含义:

(1)在现实世界中:是客观世界中的一个实体

(2)在计算机世界中:是一个可标识的存储区域

2.类(class):类是具有共同属性和行为的对象的抽象

Java类的基本语法:

<修饰符> class <类名>{

    [<属性声明>]

    [<构造器声明>]

    [<方法声明>]

}

注:1.<类名>可以是任何合法的标识符,并且是所声明类的名字。

    2.有几种可使用的<修饰符>,但现在只使用public,声明类可被任

      意访问。

    3.类的正文声明了与类相关的数据属性、构造器和方法的集合。


<四>面向对象

类是由属性(成员变量)和方法(成员方法)组成的 。

创建对象步骤:

1.设计类:设计成员变量和成员方法

2.通过类,去创建类的对象

3.通过“对象.属性(成员变量)” 或者“对象.方法 ”

 来调用,完成相应的功能。


 例:人类

特征:能直立行走,制作并使用工具高级动物

属性:名字、年龄、性别、身高等等

行为:制作使用工具、工作、吃饭、睡觉等等

 

   成员变量(字段、属性):定义在类里面,并在方法外的变量。


<五>声明方法


方法的基本语法:


   <修饰符>  <返回类型>  <名称>([<参数表>]){

       [<语句>]

   }


注:

1.<修饰符>是可选项,并可有很多不同的修饰符,包括public、protected和private等。public访问修 饰符表明可从其他代码调用该方法。private表明方法只能在由该类中其他方法调用。

2.<名称>可以是任何合法的标识符,但限制使用那些已经在使用的名称。


<六>类、对象与方法(步骤)


1、设计类:设计成员变量和成员方法


语法:class 类名{  }


例:class Person{//类

         String name;//成员变量

       void speak(){//成员方法

       System.out.println(name);

}

}

2、通过类,去创建类的对象

   语法  : 类名 对象名称=new 类名();

   例    : Person p=new Person();


   解析:Person:创建Person类的实例对象,

             p:对象的引用,

             new Person():实例化Person对象,调用构造方法Person()

             =:Person在内存中的地址赋值给P,所以可以通过变量p引 

                    用对象访问对象成员(对象被实例化后,jvm自动为其成 

                   员变量赋初值)


内存:根据数据类型划分内存空间;new的空间


例:


public class Ch01{

      public static void main(String[] args){

            Person p=new Person();//创建P对象并实例化

     }

     }

class Person{//类

    String name;//成员变量

    void speak(){//成员方法

    System.out.println(name);

    }


    }


3、通过“对象.属性(成员变量)” 或者“对象.方法 ”来调用,完成相应的功能。

public class Ch01{

          public static void main(String[] args){

                Person p=new Person();//创建P对象并实例化

                 p.speak();//访问对象的成员,调用speak()方法

          }

           }

class Person{//类

         String name;//成员变量

           void speak(){//成员方法

          System.out.println(name);

           }

            }


<七>构造函数特点


构造函数作用:

(1)完成类对象的初始化工作,即初始化成员变量


(2)构造函数的名称必须与类名相同


(3)构造器没有返回值并且不可被继承


(4)一般将构造函数的修饰符声明为public


(5)构造函数中不能有return语句


1、一个类可以定义多个不同的构造方法


2、每个类都有自己默认构造方法,如果没有定义,系统会自动生成

   若定义,则直接覆盖

   例:public Person(){

          //  默认构造方法

                  }


<八>有无参数的构造函数


1.构造函数的参数:


(1)参数表与方法声明中的一样。可以像方法一样向构造函数传递参数。

(2)构造函数可以有0个、1个或者多个参数。


2.无参数的构造函数:


(1)没有构造函数——使用默认的构造函数(没有参数,没有方法体)


(2)如果使用没有参数的构造函数,则创建的对象具有相同的初始值


<九>构造函数的重载

一个类可以有多个构造函数,叫做构造函数的重载。条件(满足其一):

(1)参数的个数不同

(2)参数的类型不同


<十>构造函数的使用

(1)不能由编程人员显式调用。

(2)在创建一个类的新对象的同时,系统会自动调用该类的构造函数为新对象初始化。

(3)构造函数只能和new关键字一起使用。

格式:类名 对象名=new 构造函数名称(成员变量的初始值)

构造函数小结:

(1)构造函数(方法)名和类名相同

(2)构造方法没有返回值(void)

(3)主要作用是完成新对象的初始化

(4)在创建新对象时,系统自动调用该类的构造方法

(5)一个类可以有多个构造方法(参数个数和类型不同)

(6)每个类都有一个默认的构造方法
注:构造方法的主要作用:初始化成员变量(属性)

<十一>this关键字

作用:区分成员变量(属性)

原因:java虚拟机会给每个对象分配this代表当前对象

this注意事项:只能在类定义中使用(包括打印,如:this.name=name:this.name属于成员变量)

<十二>类变量static/类方法

1.定义:类变量是gailei的所有对象共享的变量

2.语法:访问修饰符 static 数据类型 变量名;

3.访问:(1)类名.类变量名;(2)对象名.类变量名

4.类变量原则上用类方法去访问

注:静态变量区不能访问非静态变量,非静态则都可去访问.

5.类变量与实例变量的区别:

(1)加上static称为类变量或静态变量

(2)类变量是与类相关的公共属性

(3)实例变量属于每个对象个体的属性

(4)类变量可以通过类名.类变量名直接访问

<十二>面向对象四大特征(封装、继承、多态、加抽象包含)

  1. 封装

(1)定义:数据被保护在内部

(2)封装思想:属性全部为私有

  通过1个成员方法去控制和访问私有属性

(3)访问控制修饰符

定义:控制方法和变量的访问权限

public:公开

protected:受保护

default:默认

private:私有

2.抽象:

(1)概念:定义类将共有的属性和行为提取出来,形成1个模板(类),称为抽象

(2)抽象类:只能被继承,不能实例化的类。

(3)定义格式:

 abstract class 类名{

     abstract 返回值类型  方法名([参数表]);

     …

 }

(4)说明:


*抽象类中可以包含抽象和非抽象方法

*也可以不包含抽象方法和非抽象方法

*只要有一个抽象方法,就是抽象类

*不能创建抽象类的对象 (抽象类不能被实例化)

*使用时必须用其创建子类

*子类可以定义自己的成员变量及方法,但必须将父类中所有抽象的方法代码写完

*如果子类只是实现了部分抽象的方法,则该类仍是抽象类

3.异常分类

(1)Java程序运行过程中所发生的异常事件可分为两类:

(Error: JVM系统内部错误、资源耗尽等严重情况

((Exception: 其它因编程错误或偶然的外在因素导致的一般性问题,§例如: 空指针访问 试图读取不存在的文件 网络连接中断

4.异常处理机制

(1)捕获异常:在Java中如果需要处理异常,必须先对异常进行捕获,然后再对异常情况进行处理。使用try和catch关键字即可,结构如下:

try{}catch(){}finally{}

try块包围的代码说明这段代码可能会发生异常,一旦发生异常,异常便会被catch捕获到,然后需要在catch块中进行异常处理,finaly块中的代码一定会执行

(2)抛出异常:任何Java代码都可以抛出异常,如:自己编写的代码、来自Java开发环境包中代码,或者Java运行时系统。无论是谁,都可以通过Java的throw语句抛出异常。从方法中抛出的任何异常都必须使用throws子句。在方法声明上使用throws来表示该方法会有异常抛出,在方法体中使用throw来表示可能会发生的异常

5.自定义异常

使用Java内置的异常类可以描述在编程时出现的大部分异常情况。除此之外,

用户还可以自定义异常。用户自定义异常类,只需继承Exception类即可。

    在程序中使用自定义异常类,大体可分为以下几个步骤。

创建自定义异常类。

在方法中通过throw关键字抛出异常对象。

如果在当前抛出异常的方法中处理异常,可以使用try-catch语句捕获并处理;否则在方法的声明处通过throws关键字指明要抛出给方法调用者的异常,继续进行下一步操作。

在出现异常方法的调用者中捕获并处理异常。