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 - 自定义类库:包名为小写,单词中间用"."隔开,遵循互联网的逆向顺序
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)