阶段性总结1
函数:就是定义在类中,具有特定功能的一小段程序。
格式:
修饰符 返回值类型 函数名(参数类型形式参数1,形式参数2,……)
{
执行语句;
return 返回值;
}
“{}”功能需要定义一个区间,独立的功能,独立的区间,。
函数的命名规则,单个单词单词小写,第二个单词开始每个单词手写字母大写。
函数的特点
定义函数可以讲功能代码进行封装
便于对该功能进行调用
函数只有被调用才会被执行
函数提高了代码的复用性
当函数中没有具体返回值时,返回值类型用void表示,该函数的最后一行return可以省略
注意:函数只能调用函数,不可以在函数中定义函数
定义函数时,函数的结果返回给调用者处理。
函数在定义时有
两个明确
明确定义的功能最后的结果是什么
明确在定义该工恩给你的过程,是否需要未知变量产于运算
注意:
返回值类型和参数类型没有直接关系。
函数的重载:
在同一个类中,允许同时出现一个以上的同名函数,只要他们的参数个数和参数类型不同
特点:与返回值类型无关,只看参数列表
好处:方便与阅读,优化了程序设计。
数组
同一种类型数据的集合。其实数组就是一个容器。
数组的好处 可以自动给数组中的元素从0开始编号,方便调用。
格式1:
元素类型[] 数组名 = new 元素种类[元素个数或者元素长度]
需要一个容器,但是不确定容器的具体数据
格式2:
元素种类[] 数组名 = new 元素类型[]{元素,元素,元素…….}
需要一个容器,储存已知的具体数据。
Int[] arr = newint[5];
Int[] arr = newint[]{1,2,3,4,5};
Int[] arr ={1,2,3,4,5};
创建一个新数组在内存中的分析
错误异常
ArrayIndwxOutofBoundsException 当访问到数组中不存的角标时,就会发生角标越界异常
NullPointerException 当引用型变量没有任何实体指向时,还在用其操作实体,就会发生该异常。
直接打印数组名[I@c17164 “[”带代表数组,I代表数组中寸的是int类型的元素,@右边的是地址哈希值,当直接应用数据类型时,可以测试对象是什么实体
数组是对象实体,当数组被创建时,数组中的元素都有默认初始化值,int类型的初始化值为0,char类型的初始化值为\u0000
引用型数据类型,指向实体,不能写成 arr =0,当不需要指向时,arr = null,当对象被释放,就变成垃圾,由java垃圾回收机制进行处理。
堆中有变量, Null是个常量,关键字,null,跟true一样,固定不变。代表空没有任何指向
内存结构
栈内存,用于储存局部变量,当数据使用完后,会自动释放
堆内存
数组和对象,通过new关键字建立的实体都存放在堆内存中
每一个实体都都有内存地址
实体中的变量都有默认初始化值
实体不在被使用,会被视为垃圾,有垃圾回收机制处理
数据一多就用数组存储
数组的操作 对数组操作最基本的动作就是存和取
核心思想:就是对角标的操作。
使用arr.length获取数组的长度
使用角标获取最值(最大值,最小值),排序(选择排序,冒牌排序),折半查找(二分查找),折半查找的数组必须是有序的,当max小于min时就结束,返回min就是数据要插入的位置
创建数组时, int[] arr = new int[x] ,可使用x去参加循环得到所需要数组长度然后创建所需要长度数组。
数组的应用 获取一个整数的16进制,8进制,2进制表现形式。
何时想到使用数组
如果数据中出现了对应关系,并且对应关系的一方是有序的数字编号,并作为角标使用时,这时就必须要想到数组的使用,就可以将这些数据存储到数组中,根据运算的得到的角标直接去查数组中对应的元素,这种发放称为查表法,查表发其实就是使用数组方法操作,建立了一个映射关系。
Arr[pos++] = chs[temp];将变量直接放到数组角标中自增,便于阅读,简化代码。
二维数组
数组本身的元素还是数组,数组中的数组,二维数组。
定义格式
数据类型[][] 数组名 = new 数据类型[][]
Int[][]arr = new int[3][2];创建一个二维数组,该数组中有三个一维数组,每一个一维数组中有2个元素。
Int[] arr[], intarr[][]
Int[] y[],x;
二维数组中arr[][],arr[]储存的是一维数组对应的内存地址,arr[]就是数据类型。Arr[]初始化的值都为null。Arr[]开辟一块空间,创建arr[][]时有创建各自的内存空间储存各自的一维数组。
二维数组的什么时候使用,数据要分类储存时,就用二维数组储存,每一个一维数组的长度可以不等。
面向对象
面向对象是相对面向过程而言的,面向对象和面向过程都是一种思想。
面向过程强调的实现功能的过程和行为,面向对象将功能封装到对象内部,强调的具有功能的对象。
面向对象是基于面向过程的
面向对象的特点
1,就是一种常见的思想,符合人的思考习惯
2,面向对象的出现,将复杂的事情简单化
3,让曾经在过程中的执行者,变成了对象中的指挥者。
关注问题的对象,不重视动作。
常做的是有对象用对象,没有对象创建对象,维护对象之间的关系。
对象的三个特性
1, 封装 2,继承 3,多态
类就是JAVA语言中对现实生活中的事物进行描述。
对事物的描述通常只关注两方面
一个是属性,一个是行为
类与对象之间的关系
类:对事物的描述。
对象:该类事物的实例,在java中通过new来创建。
类是对一系类有相同属性或者行为的对象的抽象描述,对象是通过类来创建,有类描述的共有属性和功能的实体。
成员 这个事物中的组成部分,分为两种,一个是成员函数(行为),一个是成员变量(属性),定义类其实就是在定义类中的成员。
类对象的一些特点
类描述事物,不需要独立运行,所以不需要主函数,只要在创建对象的类中使用主函数来运行对象即可。
一旦创建对象,这个对象肯定具备着该类中的内容
成员变量和局部变量的区别
1, 成员变量定义在类中,整个类都可以使用
局部变量定义在函数,语句,局部代码块中,只有在所属的区域有效。
2, 成员变量存在于堆内存的对象中。
局部变量存在于栈内存的方法中。
3, 成员变量随着对象的创建而存在,随着对象的消失而消失。
局部变量随着所属区域的执行而存在,随着所属区域的结束而释放。
4, 成员变量都有默认初始化值
局部变量没有默认初始化值
注意:当类中定义了一个成员变量,在函数中又有一个同名的局部变量,当在这个函数中调用这个数据时,这时调用的是局部变量。类被调用时才运行
函数中的参数类型可以使普通类型,也可以使引用数据类型,可以传入一个Public static void show(Car c);
匿名对象
没有名字的对象
匿名对象的使用
1, 当对象对方法仅进行一次调用的时候
2, 匿名对象可以作为实际参数进行传递,当作为实际参数进行传递后,就有了应用数据类型变量指向了匿名对象
封装(Encapsulation)
封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
好处:将变化隔离
便于使用
提高重用性
提高安全性
封装原则
将不需要对外提供的内容隐藏起来
将属性都隐藏,提供公共方法对其访问。
Private 私有 关键字
是一个权限修饰符,用于修饰成员,成员变量和成员函数。
被私有化的成员只能在本类中有效
常用情况之一
将成员变量私有化,对外提供设置和获得方法对其进行访问,提高数据访问的安全性。
注意 私有仅仅是封装的一种体现而已,不是所有的封装都是私有。
---------------------- android培训、 java培训、期待与您交流! ----------------------详细请查看: http://edu.youkuaiyun.com/heima