栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

第二周总结

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

第二周总结

一,循环结构语句 1.for语句 for :使用最多: 普通for循环 格式 for(初始化语句;条件表达式;控制体语句或者步长语句){ 循环体语句; } 执行流程         1) 初始化语句:给变量赋值 (只执行一次)         2)然后执行条件表达式,看其是否成立,如果成立,执行的是循环体语句------>再次回到控制体语              句或者步长语句--->变量自增或者自减         3)再次执行条件表达式,是否成立,成立,继续循环体语句---->再次回到控制体语句或者步长语               句---->变量自增或者自减         4)一直执行到条件表达式不成立,for循环结束; 2.while语句 while:其次才是这个while while循环的格式
         经常使用的格式
         初始化语句;
         while(条件表达式){
             循环体语句 ;
             控制体语句或者步长语句;
         } 执行流程:
           首先,先初始化语句,对变量赋值;
           执行条件表达式,是否成立;成立,则执行循环体语句,依次控制体语句进行变量控制
           --->再次判断条件表达式是否成立,成立,执行循环体语句--->控制体语句进行变量控制
           ...
           ...
           当条件表达式不成立,while循环结束;
 
           注意事项:控制体语句不要忘了,否则死循环; 3.do...while语句 do-while 引入两个死循环 :一定要出口条件 for(;;){ 循环体; } 4.for循环的综合运用(for循环嵌套)

for(初始化语句1;条件中表达式1;控制体语句1){ //外层循环 // 循环体语句又是一个for循环for(初始化语句2;条件表达式2;控制体语句2){//内层循环 循环体语句... } } 5.死循环

死循环的两种格式  第一个格式  for(;;){  循环体语句;  }  第二个格式:while(true){ //死循环格式中使用比较多  循环体语句;  } 二,跳转控制语句 break ; looper循环或者switch中用 (中断,结束...) continue:继续 (循环中用,结束当期循环之后,立即进入下一次循环了) return ; // 结束方法用的 (很少单独使用, 引入 --Java中的方法(函数)) 三,switch语句

格式: switch(表达式或者某个变量值) { case 值 1: 语句1; break ; case 值2: 语句2: break ; ... default: 语句n; break ; } 执行流程 switch接收结果, 1)接收的结果和case后面的值1进行对比,成立,执行语句 1,break 结束语句; 2)值1和switch接收的结果不匹配,和值2进行比较,成立,执 行语句2, break,结束语句;* 3)... 如果上面case都不匹配,执行default语句,语句n,break ,结 束 注意事项: switch语句中的注意事项也是 (考点) 1)关于switch中的case语句后面只能常量,不能是变量 (体现Java是一种强类型语言) ----前端的javascript:它里面的swtich的case是可以是变量,可是个常量 2)在书写switch语句的标准结构,不忘了break,如果语句中忘了书写break,会出现一个现象:case穿透! 在有的需求里面利用 case穿透 来完成一些需求; 3)关于switch语句的结束条件         a)要么遇见break结束         b)程序默认执行到末尾 4)关于default语句可以在switch语句中的任何位置,不影响语句的执行流程; 不管在任何位置,只要case语句都不匹配,执行default; 如果default语句的末尾,break可以省略;         补充: Math的随机数使用                                  jdk提供了类:java.lang.Math                  java.lang包下的类不需要导包                  针对数学运算的工具类,提供了很多的方法;                  获取伪随机数,取值范围:[0.0,1.0)                  public static double random():                  快速使用:                  Math.random()---获取一个随机数 四,方法的定义格式

1)有具体返回值类型的方法定义和调用

有具体返回值方法的定义格式 固定写法: public static 返回值类型 方法名(形式参数类型1 参数名1,形式参数类型2 参 数名2,....){ //完成功能业务逻辑 ... return 具体结果; 有具体返回值类型的方法的调用格式 在main方中 赋值调用 接收的结果类型 变量名 = 方法名(实际参数1,实际参数2,...) ; 实际参数:直接赋值或者main中键盘录入 2) 没有具体返回值类型的方法定义和调用 定义格式: public static void 方法名(形式参数类型1 参数名称1,形式参数类型2 参数 名2,....){ 调用格式 单独调用 举例  public static void getMax(int a,int b){  //完成逻辑判断  //举例  if(a>b){  System.out.println(a+"是最大值");  }else{  System.out.println(b+"是最大值");  }  } 需求:  完成如下一个操作 键盘录入一个数据n,n为int类型 控制台输出 nn乘法表 public class FunctionDemo { public static void main(String[] args) { //创建键盘录入对象 Scanner sc = new Scanner(System.in) ; //提示并录入数据System.out.println("请输入一个数据(1-9):"); int num = sc.nextInt() ; //没有使用方法之前 //为了保证有数据从1开始 for(int x = 1 ;x<=num;x++) { //外层控制行数 for(int y =1 ; y <=x ;y++){ //内层循环控制列数, 列数随着行数的变化 第一行,1列,第二行,2列.... System.out.print(x+"*"+y+"="+(y*x) +"t"); //不换行 } System.out.println(); //换行 } System.out.println("------------------------------------------------- -"); //1)单独调用 // printNN(num); //8 //2)输出调用 //System.out.println(printNN(num)); //本身这个方法中就是输出给控制台, 输出语句套输出 :语法错误 // 3)赋值调用 //Void v = printNN(num) ; 错误的 这是void只是定义的方法格式,没有这个 类型 } //定义一个方法来完成上面的操作  定义 方法两个明确  1)明确返回值类型: java提供关键字 void  2)明确参数类型以及参数个数  int类型 1个参数 public static void printNN(int n){//8 for(int x = 1 ;x<=n;x++) { //外层控制行数 for(int y =1 ; y <=x ;y++){ //内层循环控制列数,列数随着行数的变化 第一行,1列,第二行,2列.... System.out.print(x+"*"+y+"="+(y*x) +"t"); //不换行 } System.out.println(); //换行 } }} 3)方法重载 方法重载:为了某个功能扩展性,多个方法方法名可以相同(完全相同),参数列表不同,与 返回值无关  参数列表不同  1)参数个数不同  2)参数类型不同  3)考虑参数类型的顺序 五,数组 Java中数组就是容器,这个容器 "只能存储同一种类型的元素"  在数组中定义格式  动态初始化和静态初始化  动态初始化:自己定义数组的长度,数组的元素有系统(jvm)默认分配 格式:  数据类型[] 数组名称 = new 数据类型[数组长度] ; 推荐第一种  数据类型 数组名称[] = new 数据类型[数组长度] ;  举例  int[] arr = new int[3] ;  int arr[] = new int[3] ; 所有的数组有一个特点:数组名称[角标或者索引值]:访问数组的元素 ,角标值/索引值从 0开始计算 静态初始化:直接我们自己给定的了元素内容,数组的长度由系统默认分配*  原生的格式写法:  数据类型[] 数组对象名 = new 数据类型[]{元素1,元素2,元素3.....} ;  数据类型 数组对象名[] = new 数据类型[]{元素1,元素2,元素3.....} ;  举例  int[] arr = new int[]{1,2,3} ;  int arr[] = new int[]{1,2,3} ;  静态初始化的简写格式  数据类型[] 数组对象名 = {元素1,元素2,元素3.....} ; 推荐的写法  数据类型 数组对象名[] = {元素1,元素2,元素3.....} ;  int[] arr = {1,2,3} ;  int arr[] = {1,2,3} ; 注: 在数组中有一个特有的属性:length  数组名称.length:获取数组长度  数组中的最大索引值: 数组名称.length-1  java.lang.ArrayIndexOutOfBoundsException:数组角标越界异常 :访问了数组中的不  存在的索引就会出现这种问题;  异常:Exception  编译时期异常:idea写代码的,编译通过不了,无法运行; 语法有问题;  运行时期异常: 开发者在编写代码的时候,大部分逻辑性不严谨,比如:  数组的5个元素,角标最大4,你访问角标5

1)最值问题:最大值

数组元素查表法 :通过数组名称[索引值]确定元素 基本元素查询:查询数组中某个元素的角标值 int[] arr = {87,56,13,24,17}; 弊端: 每次查询元素的时候,都是从头查到尾 高级数组中的元素:二分搜索法(折半查询) :高级查询算法

2)冒泡排序

 冒泡排序:
         两两比较,将较大的值往后放,第一次比较完毕,最大值出现在最大索引处;
         依次这样比较,可以得到排好序的数组;

规律
      1)两两比较,将较大的值往后放,
      2)第一次有0个不比
         第二次有1个不比
         ....
        每次比较,就会减少一次比较
        比较的次数:数组长度-1次

六,面向对象 面向对象思想特点: 1)更符号生活中的思想行为习惯 2)让复杂的事情简单化 3)让我们从执行者变成指挥者    举例:生活中的例子  面向对象的三大特征:    封装,继承,多态 1)基本类型作为形式参数和引用类型(数组,类,接口) 作为形式参数的特点?         基本类型作为形式参数,形式参数改变不影响实际参数;         引用类型作为形式参数,形式参数的改变直接影响实际参数; 2.类 描述现实世界事物的一组属性和 行为,代码体现出来对某个事物的描述 以及在对应的主方法中测试 描述学生事物
           属性:姓名,年龄,性别...
           行为:学习,玩游戏,抽烟...
 
           具体的学生:         ---- 描述具体的学生事物----代码中体现创建这个类对象:创建具体的对象的格式
                                                      类名 对象名  = new 类名();
 
 
                   张三,20,男                                         对象名.成员变量名 = 赋值;//成员变量赋值
                   学习JavaEE                                         对象名.成员方法名();  //调用成员
 
   使用面向对象方式描述这个学生事物   --定义一个类, 类Java中最基本单元 测试类: 里面就主方法main
 
 
          具体的学生:            ---- 描述具体的学生事物----代码中体现创建这个类对象:创建具体的对象的格式
                                                        类名 对象名  = new 类名();
 
 
                    张三,20,男                                  对象名.成员变量名 = 赋值;//成员变量赋值
                    学习JavaEE                                     对象名.成员方法名();  //调用成员方法 七,封装 以后:描述事务的时候,需要定义类,类中的所有的成员变量(现实世界事物的属性) ,必须都是私有化private; 封装:  就是将显示世界事物的属性隐藏了(加入一个关键字private),私有的,无法直接访问的,对外数据的安   全性!(外界不能访问的)对外提供一个方法,公共的(public)访问方法(setXXX()/getXXX()) 注意事项:  以后在书写的代码的时候,写一个类,描述真是存在事物的属性的时候,需要属性(英文单词字母全部   小写)全部加入private 面试题:
  private关键字的特点?
       1)被private修饰的成员变量以及成员方法只能在本类中访问
       2)可以修饰成员变量也可以成员方法,就是为了外界不能直接访问
       3)被private修饰的成员变量/成员方法可以间接的通过通过的方法访问;
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1036040.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号