面向对象编程(OOP)三大特点

来源:互联网 发布:二级c语言加油站 编辑:程序博客网 时间:2024/04/30 02:22

 

--------------------------------------------------------------------------------------------------------------------------------------------
                                                                08/04/28 开学的第四天安排:
--------------------------------------------------------------------------------------------------------------------------------------------

数组的回顾:
 a.数组的声明方式:type[] var;type var[];数组的初始化: var = new type[length] type[] var={,,}  
 b.数组的跌代:使用array.length和使用增强for循环
 c.多维数组:二维数组 type[][] var = new var[2][] ; var = new var[4][5] type[][] var = {{,,},{,,},};
      三维数组 type[][][] var = new var[2][][] //多维数组至少初始化一维

面向对象的特性:

 1.POP(Procedure Oriented Program) 面向过程的编程 :只通过控制结构解决问题,数据与函数分离

   OOP(Object Oriented Program) 面向对象的编程 :数据(属性)与函数(方法)封装在一起
   AOP(Aspect Oriented Program)面向切面的编程:可以做到对程序的透明过滤
 2.面向对象编程(OOP)的三大特点:
  封装(保证了属性与方法的关联性)
  继承(代码复用)
  多态(在代码复用的同时,强化了个性差异)
 3.包的概念:package相当于名字空间,其实就是组织了文件夹的层次结构
  在类中使用了不是同一个包中的文件就要显示的声明文件的位置用 import
  编译的时候:  javac -d . Name.java 在当前的目录下生成文件夹
  运行的时候:  java packageName.Name 完整的类名
  //可以使用 -classpath 指定引用类文件所在的路径
 4.类:是对现实世界事件的抽象,代表一类事务
  a.类中可以定义的内容包括:属性、方法(构造方法)、内部类、内部接口、静态块、非静态块
  类中的声明时与顺序无关

  b.属性:代表对象所具有的一种特性,例如:人的姓名,年龄
  属性的声明语法: <修饰符>* <类型> <名称>[=<初始值>];
  属性可以不声明就使用,也称为实例变量
  属性的类型:可以是任何类型包括引用类型就是类类型
  属性的赋值的执行顺序:是按在类中的先后顺序,然后再在构造方法中

  c.方法:代表对象的所有行为,例如人的吃、走等
  方法的声明的语法:<修饰符>*<返回类型><名称>(<参数>*){<语句>*}
  JDK1.5中引入了可变长的参数的概念定义:(type ... variableName)
  访问:得到的是指定类型的数组 for(type t:variableName)
  每个类至少有一个构造方法,如自己编写的过程中不写,编译的时候自动增加缺省的构造函数
   缺省的构造函数不带参数,缺省的构造函数内容为空,如果用户自己定义构造函数,缺省的构造函数就不能使用
  构造函数的作用:就是在使用类创建对象的实例时使用 new Constructor();创建对象
  d.属性和方法的调用:
   类内部直接调用,或使用this关键字;类外部需使用类的对象来访问//注意静态成员
   在子类中调用需要使用super
   构造方法的调用:需要使用this或super关键字代替,尽可在构造函数中调用,必须放在第一句
 5.访问权限:
  a.类的访问权限两种 public(公共) 所有的文件都可见 和 默认的(友元)之后包内可见
   一个java源文件中只能有一个public 的类 且必须与文件名相同
  b.成员的访问权限四种:
   public(公共的) 所有文件可以使用
   protected(受保护的)包内及子类内可以使用
   默认的 包内可以使用
   private (私有的) 只有类内可以使用
  c.将构造函数私有化涉及的问题:
   类不能被初始化,类不能被继承,可以使用私有的构造函数实现单利的设计模式