1.条件控制
1.if
固定格式
if(条件语句){
//条件成立需要执行的逻辑代码
}
2.if…else
固定格式
if(条件语句){
//条件成立需要执行的逻辑代码
}else{
//条件不成立需要执行的逻辑代码
}
3.if…else if…
固定格式
if(条件语句1){
//条件语句1成立需要执行的逻辑代码
}else if(条件语句2){
//条件语句1不成立条件语句2需要执行的逻辑代码
}//可以连接n个这样的语句以此类推
补充:条件的注意事项
(1)可以是常量表达式也可以是变量表达式
(2)输出必须为blooean类型
4.switch case
固定格式
switch(){
case 条件1://逻辑代码
break;
case 条件2://逻辑代码
break;
......
default://逻辑代码
}
补充:
(1)switch后面跟整形或者字符型
当是字符型时会转换成ascii码来比较
(2)case后面跟字面常量(1,2,’a’),常量表达式(2*3)
2.循环
1.while
while语句的固定格式
while(循环条件){
//循环体
}
代码示例如下
while(ture)
{System.out.println(i);}//这是一个死循环
while(false)
{System.out.println(i);}//代码不会执行
循环条件成立时执行循环体
控制语句
2.do…while
do{
//循环体
}while(循环条件)
//do...while中循环体至少会执行一次,再判断循环条件,若成立则执行循环体
do{
System.out.println(i);
}while(ture)//这是一个死循环
{
System.out.println(i);
}while(false)//代码会执行一次
3.for
for(循环变量初始化;循环条件判断;循环条件的改变){
//循环体
}
for(int i=0;i<10;i++){
System.out.println(i);
}//代码的作用是控制台打印1到10
循环变量初始化可以放在循环之外,代码格式如下
循环变量初始化
for(;循环条件判断;循环条件的改变){
//循环体
}
int i=0
for(;i<10;i++){
System.out.println(i);
}//同样可以实现控制台打印1~10
循环变量的改变可以放在循环体内
for(循环变量初始化;循环条件判断;){
循环条件的改变;
//循环体
}
示例如下
for(int i=0;i<10;){
System.out.println(i);
i++
}//代码的作用是控制台打印1到10
循环条件判断可以省略,
for(int i=0;;i++){
System.out.println(i);
}//死循环,可使用break跳出
4.循环控制中的两个关键字
(1)break
跳出整个循环
(2)continue
跳出当次循环进行下一次循环
3.数组
1.一维数组
(1)声明
//示例
int[] arr;//(建议使用)
int arr[];//不建议使用
(2)数组的初始化
动态初始化
定义数组和赋值分开进行
int[] arr=new int[2];//声明一个长度为10的数据
arr[0]=1;
arr[1]=1;//分别进行赋值
静态初始化
定义数组和赋值同时进行
int[] arr=new int[]{1,2};//直接进行赋值
(3)数组的遍历
for(int i=0;i<arr.length;i++)//arr.length可以拿到数组的长度
{
}
(4)内存模型
2.二维数组
(1)声明
int[][] arr;
(2)数组的初始化
int[][] arr=new int[][];
动态初始化
int[][] arr=new int[2][2];
arr[0]=new int[]{1,2};
arr[1]=new int[]{1,2};
静态初始化
int[][] arr=new int[][]{{1,2},{1,3}};
(3)数组的遍历
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr[i].length;j++){
}
}
(4)内存模型
4.方法i
1.方法书写格式
固定格式
[修饰符] 返回值类型 方法名(形参列表){
//方法实现的逻辑
}
示例
public static int sum(int a,int b){//定义一个方法实现两个数的和
int c=a+b;
return c;//方法的返回值我不为void是必须有返回值
}
2.调用
固定格式
方法名(形参列表);//形参列表必须和方法中的形参列表和类型高度一致
代码示例
sum(a,b);//调用sum方法,求a和b的和
补充:
方法参数的传递,对于基本类型传递的是值,对于引用类型传递的是引用(地址)
数组是引用类型
5.面向对象
1.变量的作用域
(1)成员变量(类的属性)
类中方法外定义的变量
(2)局部变量
方法中定义的变量,或者说方法的形式参数
补充:
java中对于变量的管理是通过块来控制的
块:一对{}包裹,该代码片段就是一个块
(1)对于当前块,不能再定义同一变量,即使类型不同也不行
(2)块类定义的变量块外不能访问
2.构造器)(类中特殊的方法)
(1)类中特殊的方法,不返回任何值,但是不能添加void
(2)在用new去创建一个新的对象的时候,会去调用它的构造方法,如果我们没有添加,编译器会默认添加一个默认构造器如下
类名(){
}
如果我们主动添加一个构造器那么在创建的时候会调用我们创建的构造器
当我们创建一个含有参数列表的构造器,而没有添加默认构造器,在通过new();创建队形就会出现问题
3.方法重载
1. 对于同名的方法,具有不相同的参数列表,我们在访问的时候,通过调用方法传入不同的参数列表,就可以找到我们特定的方法。
2. .当我们定义多个重载的方法的时候,在编译阶段的话,编译器可以根据我们方法形式参数数量以及类型来区别不同的方法,执行阶段可以
根据我们调用的时候传入的参数列表, 仅仅拥有不同的返回值类型,是不被视为重载的。
int sum(int a,int b,int c){
return a+b+c;
}
int getResult(int a,int b){
return a+b;
}
4.类之间的关系
(1)关联关系
(2)继承关系
(3)聚合关系
(4)实现关系
5类的继承
子类继承或者说派生自父类。子类可以享有父类的方法。在初始化一个子类对象的时候,调用其中的方法,如果该方法中在父类也有定义,并且参数列表不同,则调用到的是子类特有的方法。否则调用的是父类方法。
注意:如果仅仅是他们的返回值类型不同,则会出现编译错误。
public class User {//用户类
class Order extends User{//订单类继承用户类
}
class Product extends User{//产品类继承用户类
}}