- 类的描述
- 一个源文件中可以有多个类,在编译之后每个类生成对应的.class文件
- 一个类中只能有一个主函数
- 一个源文件中只能有一个公开类,文件中如果有公开类,文件的名称必须和类名保持一致,包括大小写
- 变量的定义流程
- 先声明,再赋值
语法:数据类型 变量名;变量名=值;
例:int money; money=20; - 声明并赋值
语法:数据类型 变量名=值;
例:int age=20; - 同时声明多个变量并赋值
语法:数据类型 ,变量名1,变量名2=值
- 先声明,再赋值
- 数据类型
数据类型:基本数据类型,引用数据类型- byte 1字节 取值范围 -128~127
- short 2字节 取值范围 -32768~32767
- int 4字节 取值范围 -2147483648~2147483647
- long 8字节
- float 4字节
- double 8字节
- boolean 1字节
- char 2字节
- if和switch区别
1. if用于判断区间值
2. switch用于等值判断 - 局部变量
- 概念:定义在函数中,必须先赋值再使用。
- 作用范围:定义行到所在代码块结束
- 命名冲突:多个变量,作用范围重合的情况下不能重名。
- java中3个循环的区别?
- while ,for首次有入口条件,先判断再执行,适用于循环次数不明确的情况。
- do…while:没有入口条件,先执行再判断,适用于循环次数不明确的情况。
- for 比while语法更清晰,可读性更高。
- break和continue的区别
- break用在swith和循环中,表示结束switch和结束当前循环
- cintinue:用在循环中;表示跳出本次循环,继续执行下次循环。
- return的用法
- 应用在返回值类型为void函数中。
语法:return;//表示结束当前函数,直接回到调用位置。 - 应用在返回值类型除了void以外的函数中
语法;return value;//表示结束当前函数,并伴有一个结果返回到调用位置。
- 应用在返回值类型为void函数中。
- 数组的扩容
- 使用循环依次复制
int arr[]=new int[10];
System.out.println(arr.length);
int newArry[]=new int[arr.length*2];
for(int i=0;i<arr.length;i++){
newArry[i]=arr[i];
}
arr=newArry;
System.out.println(arr.length);
- system.arrycopy(原数组名,原数组起始,新数组名,新数组起始,复制的长度)
- java.util.Arrays.copyof(原数组名称,新数组长度)
注意:函数会返回一个新数组,新数组的数据类型和原数组一致。 - 可变长参数
概念:定义在函数上,可以接受多个相同类型的数据,使用方法和数组一样。
语法:数据类型 …形参名
注意:一个函数中只能存在一个可变长参数,并且必须在形参列表的最后。 - 数组的排序
- 冒泡排序
概念:相邻两个元素,两两进行比较,互换位置
- 冒泡排序
for(int i=0;i<arr.length-1;i++){
for(int j=0;j<arr.length-1-i;j++){
int temp;
if(arr[j]>arr[j+1]){
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
- 选择排序
概念:固定值与每一个值做比较,互换位置
for(int i=0;i<arr.length-1;i++){
for(int j=i;j<arr.length-1;j++){
int temp;
if(arr[j]>arr[j+1]){
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
- 实例变量
13. 对象的创建过程
1. 开辟对象空间
2. 初始化属性
3. 执行构造方法中的代码
4. 声明同类型的引用进行接收。
- 不可被继承的
- 构造方法
- private 修饰的属性和方法。
- 父子类不在同一个package中,使用default修饰的属性和方法
- 访问修饰符
- overload和overide的区别?
- 重载(overload):一个类中定义多个相同名称的方法。
要求: 1.方法名相同 2:参数类别不同(类型、个数、顺序)3:与访问修饰和返回值类型无关。 - 覆盖(override):父类方法无法满足子类的需要,需要进行覆盖。
要求: 1:返回值类型,方法名,形参列表和父类完全一致。2:修饰符合父类相同或比父类更宽。
- 重载(overload):一个类中定义多个相同名称的方法。
- 多态
- 概念:父类引用指向子类对象
注:1:父类引用只能调用父类中所定义的属性和方法,子类独有的属性和方法父类不能调用 。2:二者必须存在继承关系。 - 多态的应用
- 父类引用应用在形式参数上,能够接收本类类型+所有子类类型
- 父类类型应用在返回值类型上,能够返回本类类型+所有子类类型
好处:降低耦合性;屏蔽子类间的差异
- 概念:父类引用指向子类对象
- 静态(static)
- 概念:
- 静态可以修饰属性和方法。
- 修饰属性我们称为静态属性(类属性),修饰方法称为静态方法(类方法)
- 静态成员是全类所有对象共享的成员,只有一份,不因创建多个而产生多分。
- 静态成员应该使用类名访问。
- 特点
- 静态方法可以直接访问静态成员。
- 静态方法不能直接访问非静态成员,可以通过创建对象进行访问。
- 静态方法可以被继承,没有覆盖,没有多态。
- 抽象类
- 作用:为子类提供共性属性和方法;可以声明引用,强制使用多态。
- 特点:
1. 抽象类不能创建对象,可以声明引用。
2. 抽象类中不一定有抽象方法,而又抽象方法的一定是抽象类。
3. 继承下,子类必须覆盖父类中抽象方法,否则子类声明为抽象类。
4. 抽象方法:只有方法声明,没有方法实现。
- final可修饰的
- 类:表示最终类,不能被继承。
- 方法:表示最终方法,不能被覆盖。
- 变量:变量为常量,只能赋值一次。
局部变量:显示初始化。
实例变量:显示初始化,动态代码块,构造方法。
静态变量:显示初始化,静态代码块。
基本数据类型变量:值不可变。
- 概念: