4.第二天的学习内容
-
所有变量、方法、类名:见名知意
-
类成员变量:首字母小写和驼峰原则:monthSalary除了第一个单词以外,后面的单词首字母大写
lastnamelastName -
局部变量:首字母小写和驼峰原则
-
常量:大写字母和下划线:MAX_VALUE
-
类名:首字母大写和驼峰原则:Man,GoodMan
-
方法名:首字母小写和驼峰原则:run(),runRun()
-
-
算数运算符:+,-,*,/,%,++,--
-
赋值运算符:=
-
关系运算符:>,<,<=,>=,==,!=
-
逻辑运算符:&&,||,!
-
位运算符:&,|,^,~,>>,<<,>>>
-
条件运算符:?:(三目运算符)
-
扩展赋值运算符:+=,-=,*=,/=
-
next
-
一定要读取到有效字符后才可以结束输入
-
对输入有效字符之前遇到的旁白,next()方法会自动将其去掉
-
只有输入有效字符后才将其后面的输入的空白作为分隔符或者结束符
-
next()不能得到带有空格的字符串
nextLine
-
重载就是在一个类中,有相同的函数名称,但形参不同的函数
-
方法重载的规则
-
方法名称必须相同
-
参数列表必须不同(个数不同、或者类型不同,参数排列顺序不同等)
-
方法的返回类型可以相同也可以不同
-
仅仅返回类型不同不足以成为方法的重载
-
-
实现理论
-
方法名称相同时,编译器会根据调用方法的参数个数、参数类型等去逐个匹配,以选择对应的方法,如果匹配失败,则编译器报错
-
可变参数
-
JDK1.5开始,java支持传递同类型的可变参数给一个方法
-
在方法声明中,在指定参数类型后加一个省略号(,,,)
-
一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明
package com.operator.scannar;
public class demo08 {
public static void main(String[] args) {
test(1,2,3,4,5);
}
public static void test(int... i){//可变参数,就是不规定它的数量
System.out.println(i.length);
}
}
递归
-
A方法调用B方法,我们很容易理解!
-
递归就是:A方法调用A方法!就是自己调用自己
-
利用递归可以用简单的程序来解决一些复杂的问题。它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合
-
递归结构包括两个部分
-
递归头:什么时候不调用自身方法。如果没有头,将陷入死循环
-
递归体:什么时候需要调用自身的方法
-
package com.operator.scannar;
public class demo09 {
public static void main(String[] args) {
int i =4;
System.out.println(fac(i));
}
public static int fac(int num){
if(num == 1){
return num;
}else {
return fac(num-1)*num;
}
}
}
数组
-
数组是相同类型数据的有序集合
-
数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成
-
其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问他们
-
首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法:
dataType[ ] arrayRefVar;//首选方法
或
dataType arrayRefVar[ ];//效果相同,但不是首选方法
-
java语言中使用new操作符来创建数组,语法如下:
dataType[ ] arrayRefVar = new dataType[arraySizee];
-
数组的元素是通过索引访问的,数组索引从0开始。
-
获取数组长度:
package com.operator.array;
public class demo01 {
public static void main(String[] args) {
int[] num = {1,2,3,4,};
for(int i:num){
System.out.println(i);
}
}
}
数组的四个基本特点
-
其长度是确定的。数组一旦被创建,它的大小是不可以被改变的
-
其元素必须是相同类型,不允许出现混合类型
-
数组中元素可以是任何数据类型,包括基本类型和引用类型
-
数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的
数组的三种初始化
package com.operator.array;
public class demo03 {
public static void main(String[] args) {
//静态初始化:创建 + 赋值
int[] a = {1,2,3,4,5,};
//动态初始化:包含默认初始化
int[] b = new int[10];
b[0] = 10;
System.out.println(b[0]);
}
}
-
数组的默认初始化
-
数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化
-
Arrays类
-
数组的工具类java.util.Arrays
-
由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本的操作
-
查看JDK帮助文档
-
Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用,而“不用”使用对象来调用(注意:是“不用”而不是“不能”)
-
具有以下常用功能
-
给数组赋值:通过fill方法
-
对数组排序:通过sort方法,按升序
-
比较数组:通过equals方法比较数组中元素值是否相等
-
查找数组元素:通过binarySearch方法能对排序好的数组进行二分查找法操作
-
-
浙公网安备 33010602011771号