Java课程复习之面向对象(上)

Java课程复习之面向对象(上),第1张

Java课程复习之面向对象(上)

Java课程复习之面向对象(上)

一、面向对象思想

1.定义

面向对象:提出一种计算机世界里解决复杂软件工程的方法论,拆解问题复杂度,从人类思维角度提出解决问题的步骤和方案。

2.面向对象的世界

程序=对象+消息

3.三大特征

  • 封装:对象功能内聚
  • 继承:子类继承父类
  • 多态:抽象类与接口

4.优点

可维护、可重用、可拓展

软件大规模化成为可能,有效的较低软件开发、维护成本。

二、类与对象及其关系

1.抽象

是面向对象思想最基础的能力之一,正确而严谨的业务抽象和建模分析能力是后续的封装、继承、多态的基础,是软件大厦的基石。

2.类与对象及其关系

  • 对象是对客观事物的抽象。
  • 类是对对象的抽象,在语言中是一种抽象的数据类型
  • 类的定义可简述为class 类名{ }
  • 关系:对象是类的实例,类是对象的模板

三、类的定义

1.类中定义的属性(域)与方法( *** 作)

类和对象都有属性和 *** 作,属性是事物静态特征的抽象, *** 作是事物动态特征的抽象

关系:

  • 类中定义的域变量可以被类中的所有的方法访问
  • 方法中的形式参数和定义的局部变量的作用域仅限于方法,局部变量在使用前必须进行赋值初始化。如果局部变量和类中的属性变量重名,则在方法中对同名变量改变的是局部变量
  • 如果要使用类的域变量,则需要引入this关键字

四、对象

1.创建对象

举例:FighterPlane fp = new FighterPlane();

创建对象:new FighterPlane();//对象分配在堆上

声明一个对象引用:FighterPlane fp//fp作为局部变量分配在栈stack上,fp也称为引用变量

初始化对象引用:fp = new FighterPlane();//fp指向实际对象

实质是将新创建的FighterPlane对象的首地址赋给对象引用fp,从此fp与该对象关联,通过fp即可 *** 纵该对象

2.对象作为参数的特点

基本数据类型作为参数传递是值传递,而对象是引用传递

五、数组对象

1、数组的概念

  • 数组是存储同一类型元素的集合。
  • Java中的数组可以看作是一个对象,可以称为数组对象
  • 声明数组需要确定数组名维数元素的数据类型

2.一维数组的声明格式

  • 类型标识符 数组名[ ] 或者 类型标识符[ ] 数组名
  • 声明仅声明了引用变量,并未产生数组对象
  • 注意声明时不可在方括号内指定数组大小,如int [10] arr; 是错误的

3.一维数组的初始化方法

  • 3.1使用关键字new(将数组看成是一个特殊对象)
    例如: int[] arr = new int[10];
    类型标识符[ ] 数组名 = new 类型标识符[数组长度];
    类型标识符包括基本类型和引用类型
  • 3.2直接在声明的时候进行定义及初始化
    例如: String[] s={“ab”,“bc”,“cd”};
    注:这种初始化方法只能写在声明代码中(“{}”内用 , 号分隔),下面的写法是错误的: int[] a ; a= {3,4,5,6};
  • 3.3采用3.1和3.2相结合方式进行初始化
    例如:float[] f4= new float[] { 1.0f, 2.0f, 3.0f};

4.数组引用

  • 将数组整体看成一个对象,通过数组引用进行相应的 *** 作;
    float[] fl, f2;        //数组引用声明
    fl = new float[10];    //数组引用与新创建的数组对象相关联
    f2 = f1;               //引用赋值,f2和f1引用同一个数组对象
    
  • Java中数组的下标从0开始

5.一维数组的相关方法

  • 某些类的方法返回数组对象引用
    例如:一些集合对象如linkedList等可以调用方法toArray()返回Object[]数 组,此时数组中的元素为对象的引用
  • Arrays.sort方法:
    char,byte,short,int,float,double,long按升序排列,也可指定排序方法对对象进行排序
  • System.arraycopy():复制数组

6.二维数组的声明格式

类型说明符 数组名 [ ] [ ]; 或者 类型说明符[] [] 数组名;

7.二维数组的初始化方法

  • 使用new关键字
    数组名 = new 类型说明符[数组长度] [];
    数组名 = new 类型说明符[数组长度] [数组长度];
    举例: int arra[] []; arra=new int[3] [4];
  • 用指定的初值对数组初始化
    例如:int[][] arr1={{3,-9,6},{8,0,1},{11,9,8}}

六、构造方法

1.创建对象时的初始化顺序

  • 系统会对数据成员进行默认初始化
  • 执行数据成员定义处的初始化语句
  • 调用构造方法为数据成员指定初值

2.垃圾回收

Java虚拟机进行垃圾回收,清理所有的垃圾对象,即释放对象所占用的所有内存

垃圾对象:对象没有任何引用

七、类成员属性和方法的其他修饰符

1.static

  • 用static修饰符修饰的数据成员时不属于任何一个类的具体对象,而是属于类的静态数据成员
  • 保存在类的内存区的公共存储单元中,类的任何对象访问它时,存取到的都是相同的数值。
  • 访问方式为类名加点 *** 作符来访问
  • 静态数据成员仅在类加载时进行初始化且只执行一次初始化
  • static方法内部的代码,只能访问类中的static属性或方法,不能直接访问类中的非static属性或方法,但非static方法(对象方法)可以访问static数据成员。
  • main方法是特殊的静态方法,是Application程序入口点,必须写成public static void main(String [] args)的形式。

2.静态代码块

静态代码块用来对类中定义的属性进行初始化

举例:

class Test {
   static int value ;
   static {  
            value = 3;
            System.out.println("value="+value); 
   }
   public static void main(String[] args){   }
}
//程序输出结果为value=3

3.final

  • final修饰属性,则属性为常量
  • final修饰方法,则该方法在子类当中不能被覆盖,可防止任何继承类修改此方法,保证程序的安全性和正确性
  • final修饰类则该类不能被继承

八、包

  • JDK类库
    语言包:java.lang
    实用包:java.util
    输入输出流包:java.io
  • 自定义类库:包名为小写,单词中间用"."隔开,遵循互联网的逆向顺序

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5671517.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存