数组
数组的概念:数组是一个变量,存储相同数据类型的一组数据 内存的分析:声明一个变量就是在内存空间划出一块合适的空间类似声明一个数组就是在内存空间划出一串连续的空间
如何声明数组:数组的类型 数组名[ ] 或者 数组类型[ ] 数组名 如:int score[ ] ; 或者 String [ ] name;
数组空间分配:作业告诉计算机分配几个连续的空间
格式:数据类型[ ] 数组名 = new 数据类型 [ 大小 ] ; 声明数组并分配空间
如何遍历数组 通常使用 .length 来遍历
写法使用循环-当然了使用语法不限哈;如for:for(int =1;i<score.length;i++){sum=sum+score[i] };
算法
冒泡排序:for(int i=1;i<arr.length -1 ; i++){
for(int j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+i]){
int temp = 0;
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
二维数组 概念:本质上就是存放了一维数组的数组 格式:int [ ] [ ] = new int [ ] [ ] 二维数组的遍历规则:外层循环控制一维数组的个数;内存循环控制每一个一维数组的元素个数
面向对象
面向对象的思想:提高代码的复用率,解决问题思考的方式与面向过程的思想有着本质的不同;面向对象解决问题的思想是先找到对象 如:人 、物、任何的对象,然后通过对象来调用相应的功能去实现,关心的结果而不是过程 。它基于面向过程的编程思想来开发的。
面向对象的特征:ooA--面向对象分析;分析有多少个对象,对象的功能分类
oop--面向对象编程;就是不断的创建对象,使用对象,指挥对象做事情
ooD--面向对象 设计;其实就是在管理和维护对象之间的关系--------三大特征:封装、继承、多态(抽象)
类和对象:类是对一类事物的描述,是抽象的,概念上的定义; 对象是实际存在的该类事物的每个个体,因而也称为实例
类的定义:语法 [访问修饰符] class 类名{ //放属性和方法的声明}
局部变量和成员变量区别:定义位置的不同,成员定义在类体内,方法体外,局部定义在方法体内或者方法的声明上
成员变量如:int a = 1; 先声明出来
局部变量 public int 长(int a){} 没有初始值
值传递和引用传递区别:值传递--只要是基本类型传递都是值传递
引用传递是针对于基本类型进行封装,对封装好的类型进行传递是引用传递。
private关键字 (私有的)
封装的概念:隐藏对象的属性和功能实现,仅对外提供公共访问方式。
特点:隐藏了功能实现过程,外界只需要通过公共的访问放式访问即可,提高了代码的复用性;提高了程序安全性;
this关键字(当前)
this:代表当前类的对象引用
this特点:每个类的每个非静态方法都会隐含一个this引用名称,指调用这个对象方法;
使用场景--当局部变量和成员变量同名时可以使用this关键字
构造方法
语法:【访问权限修饰符】 返回类型 方法名(参数列表){方法体;return 返回值;}
特点:*构造方法没有返回值,连void都没有啊!!! *方法名必须和类名相同 ;*方法体一般都是用来给成员赋值;
static关键字(静态) 修饰的变叫做静态变量/共享变量/类变量 static静态环境下不可以出现this和super( 极好的)
代码块的分类:局部代码块>构造代码块>静态代码块;定义在类的局部位置限定局部变量的作用域---->定义类在成员位置用来抽取多个构造方法重复的代码优先于构造方法执行--->static修饰的静态代码块一般用来初始化静态成员。
代码执行的顺序:静态代码块>构造代码块>构造方法>>>>>>>静态代码只执行一次,在类加载的时候执行,构造代码块可执行多次
package关键字(包) 作用:来声明包;
import关键字(进口)导入该包下所有的类,会降低编译速度,但不会降低运行速度。
extends关键字(继承)类是对对象的抽象,继承是对某一批类的抽象。继承的好处:*简化代码 *提高代码的可维护性和可扩展性 *让类与类之间产生关系,这是多态的必要条件。 继承的缺点:开发设计原则:高内聚低耦合
四个修饰符的特点:*public修饰的成员对一切类可见 *protected修饰的成员对子类可见 *default修饰的成员仅对同包下可见 *private修饰的成员仅对本类可见
访问权限修饰符的宽严关系
public>protected>default>private
重写:特点:*发生具有父类关系的两个类中 *方法名称相同 *参数列表相同 *返回类型相同或者是其子类 *访问权限修饰符不能严于父类 (注:私有方法不能被重写,因为私有方法不能够被继承,所以谈不上重写哦!)
final关键字 (表示最终) 特点:final修饰类不能够被子类继承 *final修饰的变量表示成量
多态:使用多态的前提条件:*一定要有继承关系(exteds),*一定要有重写 *父类引用指向子类对象;>>
父类 fu = new 子类();
abstract关键字(抽象) 抽象方法的现实没有任何的意义,但是存在有意义!存在的意义在于如果父类方法不存在,那么编译报错,所以抽象方法需要存在,但是实现没有意义,所以定义为抽象方法。
interface关键字(接口)接口是不能实例化的,义因为接口是完全抽象的,如果需要创建接口,那么必须使用多态。
内部类:提高类的安全性;概念:将类定义在类的内部,那么该类就成为内部类;