------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
二维数组
元素为一维数组的数组,数组存储的还是数组 int arr[] = { 数组 }
定义格式:
数据类型[][] 变量名 = new 数据类型[3][2];
数据类型[][] 变量名 = new 数据类型[3][]; // 每个小数组的长度不确定
数据类型[][] 变量名 = new 数据类型[][] { { },{ , },{ , , } };
简化格式:数据类型[][] 变量名 = { { },{ , },{, , } };
注意两种不同的定义格式:
int[] x, y[]; // x 是一维数组,y 是二维数组
[] 跟随数据类型,所有变量都拥有
[] 跟随变量走,只有该变量自己拥有
遍历二维数组
int[][] array= { { 1, 2 }, { 3, 4 }, { 5, 5 } };
// 先遍历外面大数组,遍历过程中,遍历里面小数组
for (inti = 0; i < array.length; i++) {
//内循环是小数组的长度j < array[i].length
for (intj = 0; j < array[i].length; j++) {
System.out.println(array[i][j]);
}
}
面向对象
面向对象开发:创建对象,使用对象,指挥对象做事情
面向对象设计:管理和维护对象之间的关系
面向对象三大特征:封装 encapsulation、继承 inheritance、多态 polymorphism
类和对象:
类是描述用来描述现实生活中具体事物的抽象描述,描述的是事物的属性和行为的集合体
对象是确实存在的事物
类和对象的关系:
类是一组相关的属性和行为的集合,是抽象的概念
对象是该类食物的具体体现,是对类的一种具体化
类的定义:
1. class类名{
2. 成员变量类型变量名称;
3. … … …
4. 返回值类型方法名称(参数列表){
5. 方法体………
6. }
7. …… …
8. }
定义类就是定义类的成员(成员变量和成员方法,又叫属性和行为)
成员变量:描述类所具有的特征
成员方法:描述类能够实施的行为
创建并使用对象
使用 new 关键字创建对象,创建对象的过程通常称为实例化 格式:new 类名();
引用类型变量:为了能够对实例化的对象进行访问控制,需要使用一个特殊的变量――引用。
引用类型变量可以存放该类对象的地址信息,通常称为“指向该类的对象”;当一个引用类型变量指向该类的对象时,就可以通过这个变量对对象实施访问。
除8种基本类型之外,用类、接口、数组等声明的变量都称为引用类型变量,简称“引用”。
Student stu = new Student(); //stu 就是引用,指向创建的对象“newCell()”;
通过引用访问对象的成员变量、调用方法
stu.name = “张三”;
stu.age = 22;
stu.study();
引用类型变量的赋值:
引用类型变量存储的是对象的地址信息。相同类型的引用类型变量之间也可以相互赋值。
引用类型变量之间的赋值不会创建新的对象,但会使两个以上的引用指向同一个对象。
Student stu1 = stu;
// 将 stu 的值(对象的地址信息)赋给 stu1,stu1和stu指 向相同的对象
stu1.name = “李四”;
// 通过引用 stu 和 stu1 操作的是相同的对象
成员变量和局部变量的区别
定义上:
成员变量 定义在类中
局部变量 定义在方法中
作用域:
成员变量 整个类中
局部变量 方法中或者语句中
内存位置:
成员变量 跟随对象,进入堆内存存储
局部变量 跟随方法,进入栈内存存储
生命周期:
成员变量 跟随对象的存在而存在,随着对象的消失而消失,生命相对较长
局部变量 一旦方法或者语句结束,变量就消失,生命最短
初始化值:
成员变量 都有默认值
局部变量 没有默认值,必须手动赋值
匿名对象 没有变量名(引用)的对象 格式:new Student();
匿名对象可以调用成员,只能使用一次,但是可以当作参数传递
封装 隐藏对象的属性和实现细节,仅对外提供公共访问方式
好处:提高安全性;提高代码复用性;隔离变化和隐藏内部实现细节。
实现封装
private 关键字权限修饰符 修饰的成员只能在本类中访问
修饰类的成员,不能修饰方法的局部;提供 get set 方法
this 关键字 代表所在类的对象引用区分成员变量和方法中的参数重名的情况
this 关键字用在方法体中,用于指向调用该方法的当前对象,简单说,哪个对象调用方法,this值得就是哪个对象。
对成员变量赋值的几种方式:定义变量直接赋值,set 方法赋值,对象调用赋值