首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

20天jvava(六)

2012-10-19 
20天jvava(6)corejava day062011.7.221.面向对象的基本概念1)什么是面向对

20天jvava(6)
corejava day06
2011.7.22
=============================
1.面向对象的基本概念
  1)什么是面向对象?
    面向对象Object Oriented,OO,
    是软件开发过程的方法论,
    使用“对象”的思维方式来解决业务域,
    经常用到的一些术语:业务域、类、对象,
    java是一种OOP的编程语言
  2)面向对象的特征:
    a.抽象:把业务域中关键名词提取出来形成类,
            提取的过程是一个抽象分析的过程
    b.封装:把数据(特征)和行为(动作)封装在一个,
                 形成一个类,封装也是抽象思维分析的一个继续
    c.继承:通过定义子类扩展类的功能
    d.多态:一个类在运行时具有动态的行为
      通过OO方法开发的软件:适合于开发中大型的软件、
            具有较好的可维护性、可扩展性、健壮性。 
  3)类的定义
       类是业务域中一个关键的名词,它是对象的模板,
       类具有属性(数据)和方法(行为)
  4)类和对象的关系
      对象是一个个体,是类的一个实例
  5)引用和对象的关系
       引用变量:通过引用类型声明的变量
          Date d;  Book book; int[] arr;
   Java栈(stack):JVM中的一个内存区域,
                       用于存放各种类型的变量,包括引用变量、局部变量
      堆(heap):JVM中的一个内存区域,
                     用于存放对象,为对象分配内存空间
                    引用变量的值是对象在堆中的地址
      对象:通过new创建对象,对象存在于堆中
      d=new Date();
     对象的创建过程(通过new创建):
     a. java在堆中分配一块内存空间
     b. 将对象的内容放在对象的空间中
     c. 将对象在堆中的内存地址赋给其引用变量
       int[] arr1={1,2,3};
       int[] arr2=arr1;
       int[] arr3=Arrays.copyOf(arr1,3);
      
      Date d = new Date();
     引用变量、对象变量、对象在实际中通常我的并没有严格区分
      
                
2.类
  1)类定义,类的封装性
   [访问修饰符] class 类名{ //访问修饰符是public
           属性(成员变量)
           常量
           方法
   }
  2)属性的定义
    [修饰符] 数据类型  名称;又称为成员变量
  3)常量的定义
          常量一旦初始化就不能改变它的值
     public static final 数据类型 常量名称;
  4)方法的定义
    [访问修饰符] [static] 返回值类型 方法名称(
                                                                                参数列表){
                     方法体
    }  
        访问修饰符:代表访问范围,有默认\public\private三种                                                                            
    static:表示静态方法,可以通过类名直接访问,
           在静态方法内部不能访问非静态的成员(包括属性和方法)
  5)方法的重载及其意义
   具有相同的名称,但是参数不同的方法称为重载的方法
   意义:将类似功能定义成相同名称的方法,程序更加简洁
   
  案例:
  平面绘图坐标系中的一个点(Point),定义合理的属性
  坐标是int类型.
   O+-----------------------------> X
    |
    |
    |
    |
    |          . p(x,y)
    |
    |
    |
    |
   
    Y
    构造方法:public Point(int x, int y)
    计算当前点到原点的距离 方法:public double distance()
    计算当前点到另外点的距离: public double distance(Point other)

3.对象的生成
  1)创建对象
       类名 变量名称=new 类名([实参]);
   //创建一个Date对象
   Date d = new Data();
   //创建引用类型(Random)的变量
   Random rand = new Random(1);
   重点理解和掌握:对象的创建过程
  2)构造方法的定义
        构造方法:和类具有相同的名称,但没有返回值,
                          在创建对象时自动调用构造方法,
                         通常用于为类的属性提供初值
  3)构造方法的重载
        具有不同参数个数或参数类型的构造方法,
        在创建对象时根据new语句的参数调用对应的构造方法
   *无参构造方法通常称为默认构造方法,
        类中没有默认构造方法时,java会自动提供了一个默认构造方法,
    如果类中定义了非默认构造方法,
    java就不会再自动提供默认构造方法
   
  4)this关键字的用法
    this指代当前对象,通常用在类的各种方法中

4.以引用为参数的方法调用
  1) Java方法的值传递特性
    重点理解:在调用java方法时,
                     实参通过按值传递的方式传递给形参
  2) 引用类型值传递和基本类型值传递
       基本类型的按值传递只是传递了变量的数值,
    不能将方法中改变的值传递到方法调用之后.
   引用类型的按值传递传递的是对象的地址,
   在调用结束后对用的地址并没有改变,
   但对象的内容却可能发生变化
  3) 引用类型值传递的调用过程
    a. 实参将对象的地址传递给形参
    b. 方法修改对象的内容
    c. 在方法调用结束时,形参不会将对象的地址传回实参
    d. 此时实参指向的对象地址并没有改变,但内容却可以发生改变

 
 
 
 
 
 

热点排行