一、if
1) if (逻辑表达式){}... else{}:只有逻辑表达式为true才会执行代码块,否则执行else
2)if(逻辑表达式){}:只有逻辑表达式为true才会执行代码块,否则执行其他语句不执行if语句
3)if(逻辑表达式){}else if(逻辑表达式){}…else{}:只有逻辑表达式为true才会执行代码块,逐层匹配,如果有个逻辑表达式符合条件,则其他if语句将不会执行,匹配时以顺序结构执行。
注:必须有一条是逻辑表达式,整体语句返回值应该是boolean类型。
二、switch
switch(表达式) {
case value1:
statements;
break;
...
default:
statements;
break;
}value是所有可选择的值,是具体的值,default是默认。Break跳出执行,表达式可以是任意表达式或有返回值的方法,语句等。
a. 当switch表达式的值不与任何case子句匹配时,程序执行default子句,假如没有default子句,则程序直接
退出switch语句。default子句可以位于switch语句中的任何位置。
b. 如果switch表达式与某个case表达式匹配,或者与default情况匹配,就从这个case子句或default子句开始执行。
假如遇到break,就退出整个switch语句,否则依次执行switch语句中后续的case子句,不再检查case表达式的值。
c. switch语句的功能也可以用if...else语句来实现。但switch语句会使程序更简洁,可读性更强。而if...else功能更为强大。
循环语句
for(表达式1;表达式2;表达式3){//执行循序1243,其中2必须的逻辑表达式
代码体4 //3可以放在代码体中,表达式可以放for循环外面
} //可以写为for(;逻辑表达式;)
while(逻辑表达式){ //表达式为true时执行循环体
} //如果是true则是死循环
do{
循环体; //至少执行一次do语句块
}while(逻辑表达式); //表达式为true则继续执行do语句
注:适用与循环次数明确的。While适合于条件不明确的。
. 初始化部分:用来设置循环的一些初始条件,比如循环控制变量的初始值;
. 循环条件:这是一个布尔表达式,每一次循环都要对该表达式求值,以判断到底继续循环还是终止循环。
. 循环体:这是循环操作的主体内容,可以是一条语句,也可以是多条语句;
. 迭代部分:用来改变循环控制变量的值,从而改变循环条件表达式的值;
8. 循环语句中流程跳转
1)break: 终止当前或指定循环;
2)continue: 跳过本次循环,执行下一次循环,或执行标号标识的循环体。
3)label: 标号用来标识程序中的语句,标号的名字可以是任意的合法标识符。(取名)
数组中的元素可以是任意类型(包括基本类型和引用类),但同一个数组里只能存放类型相同的元素。
. 声明一个数组类型的引用变量,简称为数组变量;
. 用new语句构造数组的实例。new语句为数组分配内存,并且为数组中的每个元素赋予默认值;
. 初始化,即为数组的每个元素设置合适的初始值。
1) 一个存放同一类型数据的集合
a. 即可以是基本类型,也可以是对象类型;
b. 数组中的每个数据为元素;
2) 数组是一个对象,成员的数量是数组长度、成员数组中的元素;
3) 声明了一个数组变量并不是创建了一个对象;
4) 声明数组的方式:
Int[] a或者int a[]
注意:1) 声明数组变量的时侯,不能指定数组的长度
1. 创建数组对象;(new)
a. 在堆区中为数组分配内存空间,以上代码创建了一个包含2个元素的int数组
b. 为数组中的每个元素赋予其数据类型的默认值。
byte/short/int/long 0
float 0.0f
double 0.0d
String null
char '\u0000'
boolean false
c. 返回数组对象的引用
用new语句创建数组对象时,需要指定数组长度。数组长度可以用具体的数值表示,也可以用变量表示。数组的长度可以为0,此时数组中一个元素也没有。数组对象创建后,它的长度是固定的。数组对象的长度是无法改变的,但是数组变量可以改变所引用的数组对象。数组间进行赋值。
数组中的每个元素都有一个索引,数组下标从0开始,利用下标可以访问数组中的任意元素
或者给数组赋值。
1) 声明、创建、初始化分开
2) 声明、创建的同时并初始化数组;
多维数组:采用数组中的数组来声明
ArrayIndexOutOfBoundsException数组下标越界,说你下标超出了数组长度-1
数组都有一个length属性,表示数组的长度. 该属性只能读取,但是不能修改。
a. 数组变量必须在指向(new)一个数组对象之后,才能访问其元素,否则NullPointerException
b. 当数组的元素为引用类型时,数组中存放的是对象的引用,而不是对象本身;
3) 数组内容排序
冒泡排序:值较小的数逐渐向数组的顶部(即朝第一个元素)冒上来,就像水中的气泡上升一样,同时,值较大的数据逐渐向数组的底部(即朝最后一个元素)沉下去。这种算法用嵌套的循环对整个数组进行数次遍历,每次遍历都要比较数组中相邻的一对元素,如果这对元素以升序(或者值相等)的顺序排列,那么保持它们的位置不变;如果这对元素以降序的顺序排列,那么交换它们的值。
4)java.util.Arrays辅助类的使用。sort(int[] n)以及binarySearch(int[] n,int key)方法的使用。
注意: a. 这二个方法均为static方法,可直接通过类名使用;
b. binarySearch方法必须保证数组中的元素已经按照升序排列,这样才能得到正确的结果;
toCharArray();讲一个字符串转成字符数组
5. 数组的拷贝:
我们可以通过复制数组的内容变通实现改变数组长度。在System类中提供一个辅助的arraycopy方法提供复制数组内容的功能:
6、可变参数
可变参数前面可以加其他参数,可变参数后面不能加任何参数。
7、格式化出输出数据
System.out.printf是JDK1.5之后加入的新的方法,可以给我们格式化输出内容
// "%"表示进行格式化输出,"%"之后的内容为格式的定义。
// "f"表示格式化输出浮点数。
// "%+9.2"中的9表示输出的长度,2表示小数点后的位数。"+"表示输出的数带正负号。
// "-"表示输出的数左对齐(默认为右对齐)。
// "+-"表示输出的数带正负号且左对齐。
// "d"表示输出十进制整数。
// "o"表示输出八进制整数。
// "x"表示输出十六进制整数。
// "#x"表示输出带有十六进制标志的整数。
// "s"表示输出字符串。
System.out.printf("输出一个浮点数:%f,一个整数:%d,一个字符串:%s")
采用面向对象语言进行编程称为面向对象编程(Object-Oriented Programming, OOP)
Java是面向对象的,Java的编程单位是类,对象最后要通过类进行实例化(即“创建”)。
1) 类是一种类型:是引用类型;
2) 类是元数据:描述数据的数据,因为数据在面向对象领域里以对象的形式存在,所以类是对象共有属性和方法的抽象描述。
注:Java程序是各种对象相互交互作用、而不是类。
方法:
格式:修饰符返回类型 方法名(参数列表)异常抛出类型{...}
1) 必须有返回值,如果方法没有返回值,必须用void申明返回类型。
2) 构造器无返回类型,方法名和类名一致。
3) 方法的修饰符可以同时有多个(多个修饰符之间没有先后顺序)
注意:return_type:如果方法定义了返回类型,那么在方法体里面就必须出现return语句,而且返回的数据类型要和声明一致,如果没有返回类型的话(void),那么方法体里面可以写return,也可以不写return。当代码执行了return语句,那么代码就不往下执行了,直接退出这个方法并返回
1返回值为void 也能写return; 代表方法结束
2return下方不能写代码
3如果方法返回值类型部位void
且有if else 那么每一个分支都写return要么在if else外面写return
方法中定义的参数我们通常叫做形参,调用有参数的方法时,我们通常会
传递一些实参给方法,参数只要传递数据类型兼容的数据即可,即可以自动转换或者匹配。
参数传递分为两种:
1) 值传递:对于基本数据类型,参数通过值传递。(把实参的值复制一份再传给形参)
2) 引用传递:对于引用类型,参数通过引用(对象的引用)传递。(把实参引用中地址值复制一份再传给形参)
this关键字
在方法调用、参数传递过程中,极有可能出现参数名称与实例变量名同时的情况。在一个方法内,可以定义和成员变量同名的局部变量或参数,此时成员变量被屏蔽。
作用3: 在类的构造器中用this关键字可以调用类的其他的构造器
1.this只能出现在构造函数代码块中的第一句(前提是this这个时候代表的是调用其他构造器)
2.由this调用的构造器不会再创建新的对象
3.不能调用本身构造器
数据隐藏
在前面封装的属性前面用private修饰,表示该属性不能被其它类访问和修改,它只能被本类访问和修改,范围限制在本类内。
使用get/set方法来访问类中被private修饰的属性。
这样做的目的就是隐藏数据信息,保证数据的安全.
方法重载(overload)
有时侯,类的同一种功能有多种实现方式,换句话说,有很多相同名称的方法,参数不同。这给用户对这种功能的调用使用提供了很大的灵活性。