数组、面向对象和面向过程

JAVA基础(数组、对象)

一、数组

​ 1、只能储存同样类型的数据,支持数据类型有基本数据类型和引用数据类型。数据也属于引用数据类型

​ 2、数组也是一个容器,长度一旦确定不可改变

​ 3、数组中的数据是有序的 下标从0开始 通过下标来操作数组中的数据

​ 4、数组声明格式

数组类型[] 数组名;  //推荐  数组名符合标识符命名规则
数据类型 数组名[];
5、数组初始化

​ 一、动态 初始化:

指明数组的大小,并创建数组,在内存中为其分配空间,后续动态赋值

数据类型[] 数组名=new 数据类型[长度]
//数组命名属于局部变量 有默认值

​ 二、静态 初始化

创建的同时赋值,根据数据的个数确定数组的长度

数据类型[] 数组名=new 数据类型[]{1,2,3...};
			数据类型[] 数组名={1,2,3...};
5、数组的长度

数组名.length表示数组的长度 , 数组中的最后一个索引表示: 数组名.length-1

6、数组的遍历

​ 数组的遍历就是查看数组中所有的数据

​ 方法:

一、普通for循环
for(int i=0;i<=数组名.length-1;i++){
    System.out.print(数组名[i])
}//特点 能获取数组值和其索引
二、增强for循环
for(数据类型 变量:数组名){
     System.out.print(变量);
}//数据类型和数组的数据类型保持一致  只能获取数组的值
7、常见的异常

​ 1、数组索引越界:ArrayIndexOutOfBoundsException

8、二维数组

数组中放数组称为二维数组,当然也可以三个数组嵌套 基本上用到二维数组就差不多了

​ 一、二维数组声明

		数据类型[][] 数组名;  --推荐使用
		数据类型 数组名[][];
		数据类型[] 数组名[];

​ 二、二维数组初始化

数据类型[][] 数组名 = new 数据类型[长度1][长度2];
			长度1:外层数组的长度
			长度2:没一个内层数组的长度(每一个小数组的长度一致)
		数据类型[][] 数组名 = new 数据类型[长度1][];
		
		数据类型[][] 数组名 = new 数据类型[][]{{1,2,3},{4,5},{6}...};
		
		数据类型[][] 数组名 = {{1,2,3},{4,5},{6}...};

​ 三、二维操作数组

数组名[外层数组的索引][内层数组的索引]

​ 四、二维遍历数组

​ 用双重循环来遍历二维数组

		arr2[0]=new int[3];
		arr2[0][0]=0;
		arr2[0][1]=1;
		arr2[0][2]=2;

	for(int i=0;i<=arr2.length-1;i++){
			//内层每一个小数组的索引 arr2[i]
			for(int j=0;j<=arr2[i].length-1;j++){
				System.out.println(arr2[i][j]);
			}
		}

二、面向对象|面向过程

1、面向对象和面向过程的区别:

​ 面向过程是具体的,流程化,解决一个问题你需要一步一步分析,一个个实现。

​ 优点:性能比面向对象好,因为类调用的时候需要实例化,比较消耗资源
​ 缺点:不易维护、不易复用、不易扩展

​ 面向对象的底层其实还是面向过程,把面向过程抽象成类,然后封装,方便我们我们使用的就是面向对象了

​ 优点:易维护、易扩展、易复用,由于面向对象有封装、继承、多态的特性,更加灵活易与维护。

​ 缺点:性能比面向过程差

2、面向对象的更贴近于管理者,面向过程跟符合执行者

3、面向对象可以吧复杂的问题简单化

4、那么面向对象怎么使用呢??

对象需要通过类来创建;类就是一个对象的一个模板 你要什么样的对象,对象的属性 方法都在类中体现;

5、类—>对象—>使用

类的定义:

public class 类名{
			//成员变量|属性
			修饰符 数据类型 变量名 =;
			
			//成员方法|功能
			修饰符 返回值类型|void 方法名([参数列表]){
				功能体;
				[return 数据;]
			}
		}

6、当类创建好了之后就可以在main方法之后调用类创建对象
调用类需要注意的是:

​ 1、导包 同包下的类不需要导包,lang包下的内容不需要导包

​ 2、创建类型的引用 new对象 : 类名 变量名=new 类名();

​ 3、使用类的 属性和方法

​ 变量名.属性名; 变量名.方法名();

7、面向对象的三大特性:

​ 一、封装

隐藏对象的属性和实现细节,仅对外提供访问方式,将变化隔离,便于使用,提高复用性和安全性

​ 二、继承

提高代码复用性;继承是多态的前提

​ 三、多态

父类接口定义的引用变量可以指向子类或具体实现类的实例对象。提高了程序的扩展性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值